Copiar de varias hojas a una sola hoja


Tengo en un libro de 50 hojas, en cada hoja (hoja A, hoja B, hojaC... Etc) tengo información que va de la columna A1 a la A100 de la B1 a la B100 y así sucesivamente y en cada hoja es igual, como hago para que en una hoja nueva dentro del mismo libro me traiga los datos de la hoja A desde la columna A1 hasta la A100 y me los coloque en la columna A de la hoja nueva; me traiga los datos de la Hoja B desde la columna A1 hasta la A100 y me los coloque en la columna B de la hoja nueva; me traiga los datos de la hoja C desde la columna A1 hasta la A100 y me los coloque en la columna C de la hoja nueva, me traiga los datos de la hoja DE desde la columna A1 hasta la A100 y me los coloque en la columna DE de la hoja nueva y así sucesivamente, hasta completar las 50 hojas y llevarlas a la sola hoja nueva.

1 respuesta

Respuesta
2
A ver si le he entendido bien, ¿quiere pasar los datos de las 50 hojas a una hoja nueva... en la hoja A coger los datos de la columna A desde la fila 1 hasta la 100? ¿De la hoja B de la columna B de la fila 1 hasta la 100 y así sucesivamente? ¿O A1 es la columna hasta la columna A100? ¿El nombre de cada hoja se corresponde con su columna? o hay mas?, ¿Entonces solo hay un dato en cada fila pero en muchas columnas? Es que no le acabo de entender bien.
Si me lo puede explicar un poco más detallado, podré ayudarle.
El libro tiene 50 hojas, en cada una de las 50 hojas, viene organizado de la siguiente manera; la primera columna se llama compras, y viene la información de la celda A1 hasta la A100, en la segunda columna se llama almacén, y viene la información de la celda B1 hasta la B100, en la tercera columna se llama ciudad; y viene la información de la celda C1 hasta la C100 en la cuarta columna se llama tipo de producto; y viene la información de la celda D1 hasta la D100, Y así sucesivamente, la información viene en el mismo orden en las 50 hojas (compras, almacén, ciudad, tipo de producto) lo que necesito es que en una hoja nueva, dentro del mismo libro, traer los datos de la hoja 1 de la columna compras y ponerlos en la primer columna de la hoja nueva, que seria de la A1 hasta la A100; traer los datos de la hoja 2 de la columna compras y ponerlos en la segunda columna de la hoja nueva, que seria de la B1 hasta la B100, traer los datos de la hoja 3 de la columna compras y ponerlos en la tercera columna de la hoja nueva, que seria de la C1 hasta la C100,, traer los datos de la hoja 4 de la columna compras y ponerlos en la tercera columna de la hoja nueva, que seria de la D1 hasta la D100 y así sucesivamente hasta completar en la hoja nueva, todos los datos de la columna de nombre compras, en la hoja nueva, y en esta hoja nueva quedaría en cada columna los datos de la columna de nombre compras de cada una de las 50 hojas del libro.
Vale, ya he entendido lo que desea, ¿solo preguntarle si siempre llega hasta la 100 o puede variar?
Encontré que unos datos pueden variar, unos llegan a 60 0 70 y otros llegan a 120, 130 0 150 datos, pero estos varían solo en 8 hojas de las 50 hojas en total.
Perdone la demora pero últimamente no tengo mucho tiempo libre... le preguntaba lo de si llegaba hasta la 100 por si se hacia un control fijo a 100 o era variable.
Ahora me pongo con ello amigo.
Te pego aquí el código que te hace todo lo que pedías.
Dim contador As Integer
contador = Worksheets.Count
ActiveWorkbook.Sheets.Add After:=Worksheets(Worksheets.Count)
For i = 1 To contador
 Sheets(i).Select
 cuen = Range("A" & Cells.Rows.Count).End(xlUp).Row
 Range(Cells(1, 1), Cells(cuen, 1)).Copy
 Sheets(Worksheets.Count).Select
 Range(Cells(1, i), Cells(1, i)).Select
 ActiveSheet.Paste
Next
MsgBox "Proceso finalizado"

Te comento lo que hace.
Te crea una hoja nueva de excel y te coge todo el contenido de la columna A de la primera hoja y te la pega en la nueva, así sucesivamente con todas las hojas y todas las columnas A.
Está comprobado y funciona OK.
Una pregunta, cada hoja tiene un nombre por ejemplo cantidad, precio, ciudad, etc; donde reemplazo o coloco el nombre de la hoja (cantidad, precio, ciudad, etc) para que me traiga ese dato de cada hoja, ya que apenas estoy comenzando y aprendiendo macros, gracias por tu ayuda.
En realidad el nombre de la hoja no importa a la hora de coger los datos, recorre desde la primera hoja hasta la última, empezando por la fila nº1 hasta donde lleguen los datos de esa columna.
Eso si, la hoja nueva que te crea para hacer las portabilidades de las columnas A siempre se creará la última.
El código de la macro es el siguiente:
cuen = Range("A" & Cells.Rows.Count).End(xlUp).Row
For i = 1 To cuen Step 4
 Range(Cells(i, 1), Cells(i, 1)).Copy
 Range(Cells(i + 1, 1), Cells(i + 1, 1)).Select
 ActiveSheet.Paste
 Range(Cells(i + 2, 1), Cells(i + 2, 1)).Select
ActiveSheet. Paste
 Range(Cells(i, 3), Cells(i, 3)).Cut
 Range(Cells(i + 1, 2), Cells(i + 1, 2)).Select
ActiveSheet. Paste
 Range(Cells(i, 4), Cells(i, 4)).Cut
 Range(Cells(i + 2, 2), Cells(i + 2, 2)).Select
ActiveSheet. Paste
Next

Msgbox "Proceso finalizado"
Ya lo he comprobado y funciona bien.
Valorra mi respuesta.
Perdona...
Esto último no era para ponerlo en esta solución, pertenece a otra, je je ^^

Añade tu respuesta

Haz clic para o