Macro Excel para generar bucle. Ayuda
Buenas Noches.
Tengo este código:
Este código abre un libro que el nombre del libro esta dado por un listado que comienza en la hoja 2 del mismo Libro, los nombres están desde la celda B1 hasta la B5, según las semanas que contengan un mes.
Yo necesito que el valor contenido en esta línea que hace referencia a la celda B1 y ejecute el código por cada celda con datos que puede ir hasta B5.
La Línea es esta: ThisWorkbook.Sheets(2).Range("B1").Select
Este es el código.
Sub Copia_de_Datos() Dim strArchivo As String Dim oLibro As Workbook Dim nombre As String ThisWorkbook.Sheets(2).Range("B1").Select nombre = ActiveCell.Value carpeta = ThisWorkbook.Path 'Creamos la variable de la ruta strArchivo = carpeta & "\" & nombre 'Comprobamos si el archivo existe en la ruta indicada If Dir(strArchivo) = "" Then MsgBox "No existe el archivo en la ruta indicada." Exit Sub End If 'Deshabilitamos la actualización de pantalla Application.ScreenUpdating = False 'Comprobamos si el libro ya esta abierto, 'y, si no lo esta, lo abrimos 'Deshabilitamos los avisos de error On Error Resume Next 'Intentamos asignar a la variable un libro 'abierto con el nombre que buscamos Set oLibro = Workbooks(Dir(strArchivo)) 'Habilitamos los avisos de error On Error GoTo 0 'Si la variable no tiene nada asignado 'le asignamos el libro abriendolo directamente If oLibro Is Nothing Then Set oLibro = Workbooks.Open(strArchivo) 'Definimos Rango de Datos 'Fila_Final = Range("A" & Cells.Rows.Count).End(xlUp).Row 'Se busca la ultima fila con datos 'Range("A2:I" & Fila_Final).Select Fila_Final = Range("J" & Cells.Rows.Count).End(xlUp).Row 'Realizamos la copia (se supone que el libro Total Horas.xls 'estaría siempre abierto a la hora de ejecutar el código oLibro.Worksheets(4).Range("B41:J" & Fila_Final).Copy _ ThisWorkbook.Worksheets(1).Range("A" & Rows.Count).End(xlUp).Offset(1) 'Cerramos sin guardar cambios oLibro.Close False 'Vaciamos la variable Set oLibro = Nothing 'Habilitamos la actualización de pantalla Application.ScreenUpdating = True End Sub
1 respuesta
Respuesta de Elsa Matilde
2