Extraer Hoja de varios Libros Excel!

Les comento tengo una carpeta llamada Rendiciones y dentro de esta tengo unos 50 libros excel con diferentes nombres (el nombre es la fecha en que se creo el libro), los libros son todos iguales tienen 5 hojas de la cuales hay una de ellas que me interesa que es la hoja llamada "Créditos Cancelados", lo que necesito es pasar todas esas hojas a un solo libro, si alguno de ustedes pudiese ayudarme a solucionar esto les estaré agradecido.

Uso el Excel 2010.

Respuesta
3

Te puedo preparar una macro, la preparo y te la envío.

¿El libro donde se van a pasar todas las hojas es nuevo o ya tienes como se llama?

gracias por responder, te comento que el libro donde se pasaran las hojas es uno nuevo yo le puse "Rendiciones". algo manejo acerca de las macros asi que si me envías una la probamos y vemos.

Indicaciones:
En estas líneas de la macro se estable dónde están los datos, la carpeta de los archivos, como se llama la hoja y como se llama tu libro.
Todos los libros que están en la carpeta rendiciones deberán estar cerrados, únicamente deberás tener abierto el libro “rendiciones”. Sigue las instrucciones para ejecutar la macro.
ruta = "C:\Rendiciones\"
hoja = "Créditos Cancelados"
archi = Dir("*.xls")
Set actual = Workbooks("rendiciones")
Instrucciones para ejecutar macro
1. Abre tu hoja 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

Sub libros()
'Lee archivos del directorio
'Por.Dam
'Copia una hoja
ruta = "C:\Rendiciones\"
ChDir ruta
hoja = "Créditos Cancelados"
archi = Dir("*.xls")
Set actual = Workbooks("rendiciones")
On Error Resume Next
Do While archi <> ""
    Workbooks. Open archi
    Sheets(hoja). Cells. Copy
    If Err.Number = 0 Then
        Actual. Activate
        Worksheets. Add
        ActiveSheet. Paste
    Else
        Err.Number = 0
    End If
    Application.DisplayAlerts = False
    Workbooks(archi).Close
    Application.DisplayAlerts = True
    archi = Dir()
Loop
    Application.DisplayAlerts = False
    Workbooks(archi).Close
    Application.DisplayAlerts = True
End Sub

1 respuesta más de otro experto

Respuesta

Me gustaría saber los parámetros que debo modificar si la hoja que me interesa extraer se llama "AX" y son archivos xlsx de los que quiero sacar la información.

ruta = "C:\Rendiciones\" acá deberías reemplazar esta ruta por la de la carpeta en que tienes los libros

hoja = "Créditos Cancelados" acá te quedaría   hoja = "AX"
archi = Dir("*.xls") acá quedaría  archi = Dir("*.xlsx")
Set actual = Workbooks("rendiciones") y acá reemplaza el nombre por el de la hoja en la que quieres se copien las hojas.

Saludos.

He aplicado los cambios que me comentaste, pero excel me indica un error:

Se ha producido el error "9" en tiempo de ejecución.

Subindice fuera del intervalo

Estos son los cambios que hice a la macro, y creo que hice lo que me indicas. ¿Sabrás por qué me marca este error?

Muchas gracias por tu ayuda.

Sub libros()
'Lee archivos del directorio
'Por.Dam
'Copia una hoja
ruta = "C:\Altas\"
ChDir ruta
hoja = "AX"
archi = Dir("*.xlsx")
Set Actual = Workbooks("01")
On Error Resume Next
Do While archi <> ""
    Workbooks. Open archi
    Sheets(hoja). Cells. Copy
    If Err.Number = 0 Then
        Actual. Activate
        Worksheets. Add
        ActiveSheet. Paste
    Else
        Err.Number = 0
    End If
    Application.DisplayAlerts = False
    Workbooks(archi).Close
    Application.DisplayAlerts = True
    archi = Dir()
Loop
    Application.DisplayAlerts = False
    Workbooks(archi).Close
    Application.DisplayAlerts = True
End Sub

ruta = "C:\Altas\" asegúrate que esta es efectivamente la ruta donde se encuentra la carpeta con los archivos, por ejemplo si esta en el escritorio podría ser la ruta así C:\Users\Nombreusuario\Desktop\Altas\"

Set actual = Workbooks("01") y acá debería ser el nombre del libro en que quieres se copien las hojas. 

por ultimo sigue las indicaciones que me dejo el experto que me ayudo a preparar la macro:

En estas líneas de la macro se estable dónde están los datos, la carpeta de los archivos, como se llama la hoja y como se llama tu libro.
Todos los libros que están en la carpeta Altas deberán estar cerrados, únicamente deberás tener abierto el libro “01”. Sigue las instrucciones para ejecutar la macro.
ruta = "C:\Altas\"
hoja = "AX"
archi = Dir("*.xlsx")
Set actual = Workbooks("01")
Instrucciones para ejecutar macro
1. Abre tu hoja 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

Muchas gracias, ya funcionó, saludos!

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas