Como copio de 3 diferentes rangos de celdas, en una misma hoja, de diferentes hojas, las celdas no vacías en otro libro.

Tengo un libro de excel por cada mes, con tantas hojas como días del mes, las cuales tienen el mismo formato y necesito copiar los datos de tres diferentes rangos de celdas en un libro diferente y que cada hoja de cada día, se vaya agregando a la ultima del día anterior. Los rangos son B10-G73; H10-M73; B93-G109 y H93-M109...

1 respuesta

Respuesta
1

Te anexo la macro, guarda el archivo en una carpeta diferente a donde están tus archivos de meses.

Cambia en la macro "C:\trabajo\meses" por la carpeta en donde tienes tus archivos de meses. Cuando ejecuta la macro te crea una hoja nueva en el libro que tiene la macro y lee todos los archivo, todas sus hojas y te copia el rango que mencionaste, y te lo va copiando uno abajo del otro en la misma hoja nueva.

Sub CopiarRangos()
'Por.Dante Amor
    'copia rangos de hojas de libros en un libro
    Application.ScreenUpdating = False
    Set l1 = ThisWorkbook
    l1.Sheets.Add
    Set h1 = l1.ActiveSheet
    '
    Set nav = CreateObject("shell.application")
    carp = nav.browseforfolder(0, "SELECCIONA CARPETA", 0, "C:\trabajo\meses").items.Item.Path
    If carp = "" Then Exit Sub
    ChDir carp
    '
    archi = Dir("*.xls*")
    j = 2
    Do While archi <> ""
        Set l2 = Workbooks.Open(archi)
        For Each h In l2.Sheets
            h.[B10:G73].Copy h1.Range("B" & j)
            j = j + 65
            h.[B93:M109].Copy h1.Range("B" & j)
            j = j + 18
        Next
        l2.Close False
        archi = Dir()
    Loop
    Application.ScreenUpdating = True
    MsgBox "Hojas concentrados"
End Sub

Sigue las Instrucciones para ejecutar la macro

  1. Abre tu archivo de excel
  2. Para abrir Vba-macros y poder pegar la macro, Presiona Alt + F11
  3. En el menú elige Insertar / Módulo
  4. En el panel del lado derecho copia la macro
  5. Para ejecutarla presiona F5

Saludos. Dante Amor

Si es lo que necesitas.

Hola Dante, gracias por tu interés...lo realice el paso a paso que me enviaste y me da sale este pantallazo de error...

Ejecuta nuevamente la macro, en la pantalla de error presiona el botón Depurar y dime qué línea de la macro se pinta de amarillo.

Dime si en tus libros de meses tienes imágenes o algo diferente a texto.

hola, dentro de los rangos a copiar solo existe texto. Fuera de los rangos existen celdas combinadas que son títulos y ninguna gráfica.

Tal vez se llenó la hoja!

¿Dime qué versión de excel tienes?

Puedes probar solamente con un archivo.

Copia solamente uno de tus archivos de meses a una carpeta nueva.

Ejecuta la macro y selecciona la carpeta nueva que contiene solamente un archivo.

Utiliza esta macro, le hice un cambio al código.

Sub CopiarRangos()
'Por.Dante Amor
    'copia rangos de hojas de libros en un libro
    Application.ScreenUpdating = False
    Set l1 = ThisWorkbook
    l1.Sheets.Add
    Set h1 = l1.ActiveSheet
    '
    Set nav = CreateObject("shell.application")
    carp = nav.browseforfolder(0, "SELECCIONA CARPETA", 0, "C:\trabajo\meses").items.Item.Path
    If carp = "" Then Exit Sub
    ChDir carp
    '
    archi = Dir("*.xls*")
    j = 2
    Do While archi <> ""
        Set l2 = Workbooks.Open(archi)
        For Each h In l2.Sheets
            h.Range("B10:G73").Copy h1.Range("B" & j)
            j = j + 65
            h.Range("B93:M109").Copy h1.Range("B" & j)
            j = j + 18
        Next
        l2.Close False
        archi = Dir()
    Loop
    Application.ScreenUpdating = True
    MsgBox "Hojas concentrados"
End Sub

Hola Dante, vuelve y falla en la misma línea y la versión de excel es 2010 .xlsx

¿Probaste con un sólo archivo?

Envíame ese archivo para revisarlo y también envíame tu archivo con la macro, envíame los 2 archivos:

Mi correo [email protected]

En el asunto del correo escribe tu nombre de usuario "Edinson Maestre” y el título de esta pregunta.

Si pudiste probar la macro con menos archivos y que esos archivos tengan menos hojas.

Recuerda que el archivo de la macro no debe estar en la misma carpeta.

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas