Como realizar una macro cíclica

Tengo una macro que me realiza archivos que le solicito de una lista, lo que necesito es que la macro se repita hasta que encuentre una celda en blanco de esa lista:

Sub Errores_2()
'
' Errores_2 Macro
'
' Acceso directo: Ctrl+Mayús+M
'
AppScreenUpDating = False
Sheets("A.de puestos").Select
Selection.Copy
Sheets("Errores Página de Ent").Select
Range("A11").Select
Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _
:=False, Transpose:=False
Sheets("Usuarios-1").Select
Range("A4").Select
Range(Selection, Selection.End(xlToRight)).Select
Application.CutCopyMode = False
Selection.AutoFilter
Range("A4").Select
ActiveSheet.Range("$A$4:$U$3868").AutoFilter Field:=1, Criteria1:= _
Range("B3")
Range("A4").Select
Range(Selection, Selection.End(xlDown)).Select
Range(Selection, Selection.End(xlToRight)).Select
Range("A4:P3868").Select
Selection.Copy
ActiveSheet.Previous.Select
Selection.End(xlToLeft).Select
Range("A17").Select
ActiveSheet.Paste
Application.CutCopyMode = False
Range("A17").Select
Sheets("Errores Página de Ent").Copy
ActiveWorkbook.SaveAs Filename:= _
"C:\Users\portatil\Documents\Errores Pagina de Entrenamiento\Bases de errores generadas\" & Range("A11") & " - Errores Página de Entrenamiento Toyota Julio 2015.xlsx" _
, FileFormat:=xlOpenXMLWorkbook, CreateBackup:=False
Range("B11:AF11").Select
Selection.Copy
Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _
:=False, Transpose:=False
Range("A1").Select
ActiveWorkbook.Save
ActiveWindow.Close
Range("A18").Select
Range(Selection, Selection.End(xlDown)).Select
Range(Selection, Selection.End(xlToLeft)).Select
Rows("18:92").Select
Selection.Delete Shift:=xlUp
Range("A11").Select
Sheets("A.de puestos").Select
AppScreenUpDating = True
ActiveCell.Offset(1, 0).Select
End Sub

Espero me puedan Ayudar con esta duda y les agradezco de antemano

1 Respuesta

Respuesta
1

Es muy fácil, coloca tu código donde te indico en la siguiente macro:

While ActiveCell.Value <> ""
    'TU CODIGO AQUI
    ActiveCell.Offset(1, 0).Select
Wend

Utilizamos un ciclo while, con la condición de que la celda activa no este vacía, luego coloca tu código, luego movemos el cursor de Excel a la siguiente celda (abajo), volvemos a comenzar el ciclo hasta llegar a una celda vacía.

Estoy asumiendo que las celdas que permiten funcionar a tu código, se encuentran en una misma columna.

Si mi suposición es correcta, prueba y dime como te fue; de lo contrario avisame para poder ayudarte.

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas