Macro para copiar hojas de un libro a una hoja total
Quisiera hacer una macro que me copie los datos de las diferentes hojas del libro ordenándolas por horario y grupo de trabajo a una hoja total . Gracias por tu atención Dante, ha sido una alegría volver a verte.
1 Respuesta
Puedes darme el detalle de cómo tienes la información en cada hoja a copiar. Por cuál columna ordenar y exactamente en cuál hoja-celda pegar.
Con un par de imágenes quedaría bien explicado.
Te envío al correo los archivos para que puedas verlo. Todas las hojas son iguales y lo que quiero es que todos los daros sean copiados en una hoja total ordenados por el horario.
Sería conveniente si puedes poner aquí los ejemplos, para que todos puedan ver el problema y la solución.
Hola Dante aqui te dejo las imagenes, espero que lo haya explicado mas o menos... si tienes alguna sugerencia para mejorar la pagina te lo agradeceria. Un saludo.
Ya revisé tus datos y encuentro la siguiente situación.
Para que la macro sea viable o funcional, deberás llenar todas las celdas que son "llave"
No importa que se repitan los datos, con una celda vacía, no se puede saber el dato a dónde pertenece.
Ejemplo:
Entiendo que obviamente el dato pertenece a la fila anterior, pero no es correcto obviar información. Si la información está completa como en mi ejemplo, la macro será más práctica de realizar.
Avísame si puedes realizar esos cambios.
Entonces me es complicado porque las hojas las envían otras personas con los datos de sus trabajos y siempre dejan alguna celda sin cubrir. Suelen presentar así los datos.
¿
Podría ser combinando celdas? Osea en la columna A las celdas 4,5,6! Combinarlas en 1 y en la columna B las celdas 5 y 6. Por ejemplo
NOOOO, combinar celdas es lo peor que puedes hacer en un archivo que será utilizado como base de datos.
Reviso tus datos.
Solamente confirma lo siguiente: Entonces los datos de las celdas vacías, ¿son los datos de las celdas de arriba?
Si seria así. Si a ti se te ocurre otro formato por favor dime, lo importante es que todos las hojas sean iguales (el formato) y se copien a una hoja principal. Gracias
Como te comenté es difícil saber cuáles datos "solitarios" pertenecen al IND, por ejemplo. Cómo deberían llenarse los siguientes datos con marca en azul:
¿O simplemente copio toda la hoja "1" y la pego en la hoja "total", después copio la hoja "2" y la pego debajo de los datos existentes en la hoja "total"?
¿Por cierto, cuántas hojas hay en tu libro?
La idea es copiar las hojas a la hoja total y que salgan ordenadas por horario haciendo mención al titulo de la hoja donde están los datos . Son 8 hojas mas la total. Te puedo enviar por correo los archivos que se utilizan actualmente para que los veas y me aconsejes?
El problema es que no puedes ordenar por horario, existen varias celdas vacías. Si no me indicas cómo se deben llenar entonces yo no sabría cómo llenarlo.
Mi consejo es que todos los datos relevantes deberían venir llenos.
Te envío por correo mi idea para que todas las celdas estén con datos, te pongo la hoja total que actualmente se hace pero creo que se debiera de hacer la misma que el resto de hojas.
Te acabo de enviar al correo tuyo que tengo el archivo con las modificaciones que me dices a ver si se puede hacer mejor. Mi correo es [email protected]
Te anexo la macro
Sub Copiar_Datos() Dim sh1 As Worksheet, sh As Worksheet Dim i As Long, j As Long ' Application.ScreenUpdating = False Set sh1 = Sheets("TOTAL 1") sh1.Range("A5:H" & Rows.Count).Clear j = 5 ' For Each sh In Sheets Select Case LCase(sh.Name) Case LCase("TOTAL"), LCase(sh1.Name) Case Else For i = 4 To sh.Range("A" & Rows.Count).End(3).Row If sh.Range("A" & i).Value <> "" Then If Left(sh.Range("C" & i).Value, 7) <> "OFICINA" Then sh1.Range("A" & j).Value = sh.Name sh.Range("A" & i & ":G" & i).Copy sh1.Range("B" & j) j = j + 1 End If End If Next i End Select Next sh sh1.Range("A5:H" & j - 1).Borders.LineStyle = xlContinuous Application.ScreenUpdating = True MsgBox "Fin" End Sub
Hay alguna manera que al copiar los datos le asigne un color a las filas según de donde procedan? Gracias
Hola Dante como puedo hacer para que la hoja donde se copian los datos, el formato de la misma se modifique según el ancho de los datos copiados, es que cada vez que copio los datos el ancho de las filas no cambia el formato. Me gustaría que el ancho de las filas se ajustara según el texto copiado y que el tamaño de la letra sea el mismo en todas las filas. ¿Puede ser?
Gracias
- Compartir respuesta