¿Modificar macro para mejorar rendimiento y enumerar filas?

Buscando en internet me las arreglé para hacer una macro que me juntara las hojas de mi libro en uno, al final hace lo que necesito pero yo creo la podría mejorar, aunque no se como...

Sub Resumirr()
For Each hoja In ActiveWorkbook.Sheets
If hoja.Name = "Resumen" Then hoja.Delete
Next
Sheets.Add before:=Sheets(1)
ActiveSheet.Name = "Resumen"
For x = 2 To Sheets.Count
Sheets(x).Select
Range("b4:az" & Range("b65000").End(xlUp).Row).Copy
Sheets("Resumen").Range("b65000").End(xlUp).Offset(3, 0).PasteSpecial Paste:=xlValues
Next
Sheets("Resumen").Select
Range("B4").Select
'Eliminar filas vacías
For i = 1 To 10000
If ActiveCell = "" Then
ActiveCell.EntireRow.Delete
Else
ActiveCell.Offset(1, 0).Select
End If
Next i
End Sub

me gustaría que no se borre la primer hoja porque pierdo los encabezados, en todo caso que borre de A4 hacia abajo...

Se alentá mucho al eliminar las filas vacías y es que de donde se toman los datos las celdas tienen una fórmula si, pero el valor que resulta es ""

Ya por último y si no es mucho pedir si se pudieran enumerar los registros de a4 hasta el último registro copiado estaría muy bien.

2 Respuestas

Respuesta

Tengo una macro que realiza lo que solicitas, en caso necesites que haga una modificación me escribes por aquí.

http://www.exceltutos.com/2015/06/unir-todas-las-hojas-de-un-libro-de.html 

Respuesta
1

H o l a:

Te anexo la macro actualizada, ya no borra la hoja "Resumen".

Sub Resumirr()
'Act.Por.Dante Amor
    Application.ScreenUpdating = False
    Set h1 = Sheets("Resumen")
    h1.Range("A4:AZ" & h1.Range("B" & Rows.Count).End(xlUp).Row + 3).Clear
    For h = 2 To Sheets.Count
        Sheets(h).Range("B4:AZ" & Sheets(h).Range("B" & Rows.Count).End(xlUp).Row).Copy
        Sheets("Resumen").Range("B" & Rows.Count).End(xlUp).Offset(1, 0).PasteSpecial Paste:=xlValues
    Next
    For i = h1.Range("B" & Rows.Count).End(xlUp).Row To 4 Step -1
        If h1.Cells(i, "B") = "" Then h1.Rows(i).Delete
    Next
    Application.ScreenUpdating = True
    MsgBox "fin"
End Sub

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

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas