Tengo un archivo con 490 hojas (Table 1 hasta la Table 490) quisiera saber como unir todas las hojas en una sola hoja

Tengo un archivo con 490 hojas (Table 1 hasta la Table 490) quisiera saber como unir todas las hojas (desde las 1 hasta las 490) en una sola hoja con cualquier nombre de defecto, la fila empieza por A1 misma columna A y terminan los datos en A25, no contiene títulos solo datos que se encuentran en texto los cuales deseo que se coloquen se unan en una sola hoja obviamente que cada hoja desbajo de otra, ejemplo hoja 1 - empieza a1 se copian todos los datos en diferentes filas misma columna a1, hasta que finalice esa hojas con todo el contenido, luego hoja 2 - y asi sucevamente, que empiece a1 se copian y el final de los datos ingresados en cada hoja son indistintos pero estan todo en la misma columna A1 empezando por la fila 1 y termina en cualquier fila.

2 Respuestas

Respuesta
1

Gacias por tu aporte! ¿Cómo realizar una macro sino conociera de programación?, ¿Tengo la pestaña de programador en Excel activa puesto que seguí un tutorial pero se necesita Apoyo para saber como y porque se utiliza la macro? ¿Y cómo ejecutarla de forma efectiva? ¿Respecto al archivo Excel indicar si se pega en una hoja nueva creada en Excel o en un Libro nuevo? ¿Y desde que línea según lo que has enviado? Por favor si pudieranndae unnpoxo más de detalle de programación es para nivel intermedio, el archivo de 490 no se ha unido aún se recurrió a otras fórmulas y filtros más fáciles de realizar, en otra pregunta quisiera saber si esta puede buscar datos específicos de una celda puesto que esto se hace con formula Apoyo

Respuesta
1

Te dejo una macro para esto. Estoy considerando que 'todas' las hojas se deben capturar, sino ajusta en la línea marcada (*). El programa creará una hoja y la llamará Resumen.

Sub unificaHojas()
'x Elsamatilde
'se crea una hoja y se le asigna por nombre 'Resumen'
Sheets.Add After:=Sheets(Sheets.Count)
ActiveSheet.Name = "Resumen"
Set hor = Sheets("Resumen")
'recorre el total de hojas exceptuando Resumen
For Each Sh In Sheets
    'se omite la hoja Resumen y cualquier otra que no deba ser capturada(*)
    If Sh.Name <> "Resumen" Then
        '1er fila libre de hoja Resumen
        ini = hor.Range("A" & Rows.Count).End(xlUp).Row + 1
        'busca el fin de rango en col A
        With Sh
            fini = .Range("A" & Rows.Count).End(xlUp).Row
            .Range("A2:A" & fini).Copy Destination:=hor.Range("A" & ini)
        End With
    End If
Next Sh
MsgBox "Fin del proceso.", , "INFORMACIÓN"
End Sub

Vamos por parte.

No es necesario que valores la respuesta si recién estamos aclarando detalles... eso debes hacerlo recién al final cuando tengas una valoración justa según cómo se resolvió tu consulta.

Puedes enviar 'aclaraciones' no generar una respuesta... pero así está y paso a aclarar los puntos.

1- Desde la sección Macros de mi sitio tengo explicados los temas: el Editor de macros o espacio de trabajo, cómo crear una macro, dónde colocarlas, cómo ejecutarlas y principales instrucciones para empezar. Todo detallado y con imágenes lo que te responderá a las primeras inquietudes. No lo voy a repetir aquí ya que sería muy extenso.

2 - Sin saber programación también podrás crear tus propias macros. Debes encender la grabadora de macros (ver menú Programador) y realizar todos los pasos por lo menos para 1 o 2 hojas. Al detener la grabadora encontrarás en un módulo del Editor las primeras instrucciones. En página 1 de la sección Macros está el paso a paso.

Luego necesitarás asistencia para reducir código y obtener un resultado como el que te enviara con el uso de un bucle que lo hará para las 490 hojas.

3- ¿Indicar si se pega en una hoja nueva creada en Excel o en un Libro nuevo? ¿Y desde que línea según lo que has enviado?

En las primeras instrucciones se crea una hoja en el mismo libro (ADD) ubicándola al final de todas las hojas (after:=Sheets(Sheets.count)) y se le asigna por nombre Resumen (Name). Luego se usa una variable para nombrarla. En la pagina 2 de mi sección Macros encontrarás otras maneras de referirte a las hojas.

'se crea una hoja y se le asigna por nombre 'Resumen'
Sheets.Add After:=Sheets(Sheets.Count)
ActiveSheet.Name = "Resumen"
Set hor = Sheets("Resumen")

Luego se recorre cada hoja copiando desde la fila 2 hasta el fin de datos según col A, y se lo pega en la primer fila libre de la hoja Resumen. De ese modo se van acumulando unas a continuación de las otras.

            fini = .Range("A" & Rows.Count).End(xlUp).Row
            .Range("A2:A" & fini).Copy Destination:=hor. Range("A" & ini)

En la página 5 de la misma sección Macros encontrarás diferentes modos de seleccionar o encontrar los finales de rangos. Aquí recorro desde abajo hasta encontrar el final en col A.

Y así se completa el bucle For Each... Next recorriendo cada hoja diferente a Resumen.

4 - Si necesitas que la hoja Resumen se ubique en otro libro se podrá hacer hoja x hoja... o mejor como está la macro ahora, en el mismo libro y luego copiar esa hoja final a otro libro.

Nota: la macro enviada fue desarrollada siguiendo la solicitud o consulta inicial. Allí ni se mencionan fórmulas ni filtros ni nada en especial.

Tenes mucho para leer... probá la macro y luego me comentas si necesitas pasar a otro libro.

Sdos.!

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas