Macro que genere hoja resumen con los datos de 2 columnas de 50 hojas

La estructura es la siguiente:

50 libros (uno por oficina) con una única hoja con 2 columnas, que se van anotando valores regularmente. Además, tengo un libro con 50 hojas (una por oficina) y cada una con 2 columnas con las celdas vinculadas a las columnas de los 50 libros. En este libro, necesitaría generar una hoja resumen con los títulos en la primera fila y el resto de celdas con SÓLO los valores de las 50 hojas ( habrá celdas con vínculos pero aún sin valores). A poder ser, saltando la primera hoja que es un índice de todas las hojas.

Lo he explicado fatal, lo sé.

1 Respuesta

Respuesta
1

Revisa los siguientes artículos y trata de adaptar las macros a tu petición:

https://www.gerencie.com/importar-datos-de-varios-libros-de-excel-en-la-hoja-resumen.html

https://www.gerencie.com/unir-varias-columnas-en-una-sola-en-excel.html 

Sal u dos

Hola, antes de enviar la pregunta ya probé estas y otras macros pero sin éxito, de aquí mi consulta. Entiendo que es demasiado complicada la macro. Sería hacer un resumen de las 50 hojas del mismo libro y dónde las celdas están con vínculos a las 2 columnes de los 50 libros. Además, en la hoja resumen solo deben incorporarse solo valores sin los vínculos que no tengan aún valores, ya que se van introduciendo día a día. Gracias

Envíame tu libro "resumen", con la hoja "resumen" y solamente 3 hojas. En la hoja "resumen" me pones unos ejemplos de cómo quieres el resultado, por ejemplo, pon de color amarillo en la "resumen" lo que viene de la hoja1, de verde lo que viene de la hoja2 y de azul lo que viene de la hoja3.

Te preparo la macro para que la ejecutes con un botón y se actualice la hoja "resumen"

Mi correo [email protected]

En el asunto del correo escribe tu nombre de usuario “Xavi Cobos

Te anexo la macro

Sub Resumen()
'Por.Dante Amor
    Application.ScreenUpdating = False
    Set h1 = Sheets("RESUMEN")
    h1.Rows("2:" & Rows.Count).ClearContents
    j = 2
    For h = 2 To Sheets.Count
        fila = 2
        Do While Sheets(h).Cells(fila, "A") <> 0 And Sheets(h).Cells(fila, "A") <> ""
            h1.Cells(j, "A").Value = Sheets(h).Name
            h1.Cells(j, "B").Value = Sheets(h).Cells(fila, "A").Value
            h1.Cells(j, "C").Value = Sheets(h).Cells(fila, "B").Value
            j = j + 1
            fila = fila + 1
        Loop
    Next
    Application.ScreenUpdating = True
    MsgBox "Fin"
End Sub

.

'S aludos. Dante Amor. Recuerda valorar la respuesta. G racias

.

Avísame cualquier duda

.

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas