Como interumpo una macro

Hola que tal de antemano te agradezco el tiempo dedicado a esta pregunta.
Tengo una macro para generar hojas de loteo estas requieren de cierta información que requieren forzosamente esto con el fin de evitar omisiones y errores en las hojas de loteo.
El código es el siguiente, como podrás ver a continuación tengo en mi macro varias celdas que no pueden quedar vacías, posteriormente le pongo nombre a la hoja de trabajo por medio del texto de una celda, selecciona la impresora y aplico un filtro y la mando a imprimir, por ultimo la protejo contra escritura.
Mi problema es que al ejecutar la macro me nanda los mensajes que las celdas están vacías al terminar estos sigue ejecutando la macro y lo que quiero que interrumpa la macro si no se cumplen uno o unos de los campos requerido
Sub PrintRSeca()
'
' PrintE-Loteo Macro
'
'Impide segir con la macro si esta la celda vacia
'If Range("J1") = "" Then MsgBox "La celda J1 esta vacia !!!":
If Range("M1") = "" Then MsgBox "La celda M1 esta vacia !!!":
If Range("M3") = "" Then MsgBox "La celda M3 esta vacia !!!":
If Range("M4") = "" Then MsgBox "la celda M4 esta vacia !!!":
If Range("M5") = "" Then MsgBox "la celda M5 esta vacia !!!":
If Range("M6") = "" Then MsgBox "la celda M6 esta vacia !!!":
If Range("M7") = "" Then MsgBox "la celda M7 esta vacia !!!":
If Range("M8") = "" Then MsgBox "la celda M8 esta vacia !!!":
Sheets("ERS- (2)").Select
'Pone el Nombre a la hoja de Excel dependiendo del valor de la celda M4
Application.ScreenUpdating = False
ActiveSheet.Name = Range("M4").Value
Application.ActivePrinter = "EPSON FX-2190 ESC/P en Ne01:"
ActiveSheet.Range("$J$14:$J$42").AutoFilter Field:=1, Criteria1:="1.00"
ExecuteExcel4Macro "PRINT(1,,,1,,,,,,,,2,,,TRUE,,FALSE)"
ActiveSheet.Protect DrawingObjects:=True, Contents:=True, Scenarios:=True
Range("M1:N2").Select
Application.ScreenUpdating = True
Exit Sub
End Sub
Sin más por el momento y en espera de tu apoyo nuevamente gracias

1 Respuesta

Respuesta
1
Pues yo lo haría así:
Dim celda As Range
For Each celda In ActiveSheet.Range("a1,j2,k3,k22")
If celda = "" Then
MsgBox "celda vacia " & celda.Address
Exit Sub
End If
Next
Etc etc
Abraham

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas