Consolidar datos de dos hojas distintas en excel sin borrar los datos anteriores

Tengo una petición tengo un archivo en excel que a diario se actualiza de otros datos, contiene 3 hojas datos1, datos2 & resumen:

Bien las hojas real & teorico cabian datos todos los dias a traves de una macro, lo que necesito ahora es crear una macro que extraiga los datos de la tabla de hoja real y la hoja teorico como se trata de una tabla contienen filas que no tienen datos por lo cual me gustaria que la macro copiara solo las filas con datos y las pegara en la hoja resumen primero los datos de la hoja teorico y luego en la fila vacia siguiente los datos de la hoja real luego a la para colocar una columna la fecha en la cual se han pegado los datos.

Por ejemplo si la hoja resumen ya contiene el consolidado del dia 01-02.2017, que cuando le de copiar nuevamente me pegue los datos abajo de la ultima fila con datos y siempre coloque la fecha del dia que se esta copiando los datos y asi sucesivamente sin borras ningun dato de la hoja resumen que ya se haya copiado en otro dia.

1 respuesta

Respuesta

Este código te funcionará siempre que no superes las 10.000 filas (se podróa aumentar cambiando la cifra)

Sub Macro3()
    Sheets("Real").Select
    Range("C4:G10000").Select
    Selection.Copy
    Sheets("Resumen").Select
    Range("C4").Select
    Selection.End(xlDown).Select
    ActiveCell.Offset(1, 0).Select
    ActiveSheet.Paste
    Range("C4:G10000").Select
    Selection.SpecialCells(xlCellTypeBlanks).Select
    Selection.Delete Shift:=xlUp
    Sheets("Teórico").Select
    Range("C4:G10000").Select
    Selection.Copy
    Sheets("Resumen").Select
    Range("C4").Select
    Selection.End(xlDown).Select
    ActiveCell.Offset(1, 0).Select
    ActiveSheet.Paste
    Range("C4:G10000").Select
    Selection.SpecialCells(xlCellTypeBlanks).Select
    Selection.Delete Shift:=xlUp
End Sub

Comenta si te ha funcionado

gregori00001 gracias por tu respuesta, para ls copia de los datos esta muy bien, ahora como podría agregar en una columna H por ejemplo en la hija resumen la fecha en la que los datos fueron copiados ?

De ante mano gracias 

He añadido unas líneas para hace lo que dices:

Sub Macro3()
Application.ScreenUpdating = False
    Sheets("Real").Select
    Range("C4:G10000").Select
    Selection.Copy
    Sheets("Resumen").Select
    Range("C4").Select
    Selection.End(xlDown).Select
    ActiveCell.Offset(1, 0).Select
    ActiveSheet.Paste
    Range("C4:G10000").Select
    Selection.SpecialCells(xlCellTypeBlanks).Select
    Selection.Delete Shift:=xlUp
    Sheets("Teórico").Select
    Range("C4:G10000").Select
    Selection.Copy
    Sheets("Resumen").Select
    Range("C4").Select
    Selection.End(xlDown).Select
    ActiveCell.Offset(1, 0).Select
    ActiveSheet.Paste
    Range("C4:G10000").Select
    Selection.SpecialCells(xlCellTypeBlanks).Select
    Selection.Delete Shift:=xlUp
    Range("G4").Select
    Do
    If ActiveCell.Value = "" Then
    ActiveCell.Value = Date
    ActiveCell.Offset(1, 0).Select
    Else
    ActiveCell.Offset(1, 0).Select
    End If
    Loop Until ActiveCell.Offset(0, -1).Value = ""
Application.ScreenUpdating = True
End Sub

Para otras ocasiones, es mejor que pidas todo lo que necesites desde el principio para evitar duplicar trabajo, o si quieres ampliar utilizar un nuevo post haciendo referencia al post original para que cualquier experto te pueda ayudar.

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas