Como detener el proceso de una macro cuando encuentre una celda vacía

He creado un formato en una hoja donde pongo la fecha, el numero de documento, el solicitante "Celdas Fijas".
luego utilizo 4 columnas con el código, nombre, cantidad y costo, con filas donde ingreso los datos utilizando los siguientes códigos

Esto para las celdas fijas
Sub DATOSCLIENTE()
'COPIA DATOS DEL CLIENTE A LA HOJA Facturación
Sheets("Salidas").Range("L6").Copy
Sheets("out").Range("A5").Insert Shift:=xlDown
Sheets("Salidas").Range("L8").Copy
Sheets("out").Range("B5").Insert Shift:=xlDown
Sheets("Salidas").Range("N8").Copy
Sheets("out").Range("C5").Insert Shift:=xlDown
Application.CutCopyMode = False
End Sub
Este código para las filas
Sub ARTICULO1()
'lleva a facturación
DATOSCLIENTE
Sheets("Salidas").Range("K12:N12").Copy
Sheets("out").Range("D5").Insert Shift:=xlDown
DATOSCLIENTE
Sheets("Salidas").Range("K13:N13").Copy
Sheets("out").Range("D6").Insert Shift:=xlDown
DATOSCLIENTE
Sheets("Salidas").Range("K14:N14").Copy
Sheets("out").Range("D7").Insert Shift:=xlDown
DATOSCLIENTE
Sheets("Salidas").Range("K15:N15").Copy
Sheets("out").Range("D8").Insert Shift:=xlDown
DATOSCLIENTE
Sheets("Salidas").Range("K16:N16").Copy
Sheets("out").Range("D9").Insert Shift:=xlDown
DATOSCLIENTE
Sheets("Salidas").Range("K17:N17").Copy
Sheets("out").Range("D10").Insert Shift:=xlDown
DATOSCLIENTE
Sheets("Salidas").Range("K18:N18").Copy
Sheets("out").Range("D11").Insert Shift:=xlDown
DATOSCLIENTE
Sheets("Salidas").Range("K19:N19").Copy
Sheets("out").Range("D12").Insert Shift:=xlDown
DATOSCLIENTE
Sheets("Salidas").Range("K20:N20").Copy
Sheets("out").Range("D13").Insert Shift:=xlDown
DATOSCLIENTE
Sheets("Salidas").Range("K21:N21").Copy
Sheets("out").Range("D14").Insert Shift:=xlDown
DATOSCLIENTE
Sheets("Salidas").Range("K22:N22").Copy
Sheets("out").Range("D15").Insert Shift:=xlDown
DATOSCLIENTE
Sheets("Salidas").Range("K23:N23").Copy
Sheets("out").Range("D16").Insert Shift:=xlDown
DATOSCLIENTE
Sheets("Salidas").Range("K24:N24").Copy
Sheets("out").Range("D17").Insert Shift:=xlDown
DATOSCLIENTE
Sheets("Salidas").Range("K25:N25").Copy
Sheets("out").Range("D18").Insert Shift:=xlDown
DATOSCLIENTE
Sheets("Salidas").Range("K26:N26").Copy
Sheets("out").Range("D19").Insert Shift:=xlDown
DATOSCLIENTE
Sheets("Salidas").Range("K27:N27").Copy
Sheets("out").Range("D20").Insert Shift:=xlDown
DATOSCLIENTE
Sheets("Salidas").Range("K28:N28").Copy
Sheets("out").Range("D21").Insert Shift:=xlDown
DATOSCLIENTE
Sheets("Salidas").Range("K29:N29").Copy
Sheets("out").Range("D22").Insert Shift:=xlDown
DATOSCLIENTE
Sheets("Salidas").Range("K30:N30").Copy
Sheets("out").Range("D23").Insert Shift:=xlDown
DATOSCLIENTE
Sheets("Salidas").Range("K31:N31").Copy
Sheets("out").Range("D24").Insert Shift:=xlDown
DATOSCLIENTE
Sheets("Salidas").Range("K32:N32").Copy
Sheets("out").Range("D25").Insert Shift:=xlDown
Application.CutCopyMode = False
End Sub
Ahora tengo un problema que me copia las filas vacías, como puedo hacer para que se detenga en la siguiente fila vacía.
Gracias por la atención

1 Respuesta

Respuesta
1

Cambia tu macro por esta:

Sub ARTICULO1()
'Mod.Por.DAM
f = 5
For i = 12 To 32
    DATOSCLIENTE
    If Sheets("Salidas").Range("K" & i) <> "" Then
        Sheets("Salidas").Range("K" & i & ":N" & i).Copy
        Sheets("out").Range("D" & f).Insert Shift:=xlDown
    Else
        Exit For
    End If
Next
Application.CutCopyMode = False
End Sub

Saludos. Dante Amor
No olvides finalizar la pregunta.

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas