Excel - combinar varias hojas en una sola

 
Vista:

combinar varias hojas en una sola

Publicado por amiau (1 intervención) el 16/01/2020 23:26:41
Hola,
Necesito su ayuda para encontrar el error en el código de una macro para combinar varias hijas en una sola.
Cada hoja tiene un cuadro con la misma estructura pero diferentes datos, los cuales para poderlos trabajar debo poner uno debajo del otro. Los datos son de texto, no se debe hacer calculos entre si ni nada. Encontré una macro en internet que aparentemente hacia lo que necesitaba, pero no arroja los datos completos ya que en los cuadros se tienen algunas celdas vacias y no jala la data completa, ademas me jala tambien los encabezados de cada hoja. Adjunto el codigo.

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
Sub consolidar()
'Consolida diferentes hojas de un mismo libro en una hoja resumen
'Toma en cuenta los encabezados de cada una de las hojas
'La macro es adaptado de Ron de Bruin 'https://www.rondebruin.nl/
 
Dim hoja As Worksheet
Dim hojaDestino As Worksheet
Dim rangoCopiado As Range
 
Dim filaInicio As Long
Dim nombreHojaConsolidado As String
Dim ultimaFilaDestino As Long
Dim ultimaColumna As Long
Dim ultimaFilaOrigen As Long
 
nombreHojaConsolidado = "Consolidado" 'cambiar el nombre de la hoja de consolidados si es necesario
 
'Parámetros para acelerar la macro
Application.ScreenUpdating = False
Application.Calculation = xlCalculationManual
Application.DisplayAlerts = False
 
'Borrar la hoja de consolidados (en el caso de que existiera)
On Error Resume Next
ActiveWorkbook.Worksheets(nombreHojaConsolidado).Delete
 
'Crear hoja  de consolidados
Set hojaDestino = ActiveWorkbook.Worksheets.Add(After:=Sheets(Sheets.Count))
hojaDestino.Name = nombreHojaConsolidado
 
filaInicio = 1 'fila de inicio después del encabezado
 
For Each hoja In ActiveWorkbook.Sheets
    If hoja.Name <> hojaDestino.Name Then
 
        ultimaFilaOrigen = hoja.Cells(hoja.Rows.Count, "A").End(xlUp).Row
        ultimaColumna = hoja.Cells(1, hoja.Columns.Count).End(xlToLeft).Column
        Set rangoCopiado = hoja.Range(hoja.Rows(filaInicio), hoja.Rows(ultimaFilaOrigen))
 
        ultimaFilaDestino = hojaDestino.Cells(hojaDestino.Rows.Count, "A").End(xlUp).Row
        rangoCopiado.Copy
 
        With hojaDestino.Cells(ultimaFilaDestino + 1, "A")
            .PasteSpecial xlPasteValues
            .PasteSpecial xlPasteFormats
            Application.CutCopyMode = False
        End With
 
        hojaDestino.Cells(ultimaFilaDestino + 1, ultimaColumna + 1).Resize(rangoCopiado.Rows.Count).Value = hoja.Name
    End If
Next hoja
 
hojaDestino.Range("A1").Select
 
'Restaurar parámetros de la aplicación
Application.ScreenUpdating = True
Application.Calculation = xlCalculationAutomatic
Application.DisplayAlerts = True
 
End Sub
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder
Imágen de perfil de Antoni Masana
Val: 4.908
Oro
Ha mantenido su posición en Excel (en relación al último mes)
Gráfica de Excel

combinar varias hojas en una sola

Publicado por Antoni Masana (2477 intervenciones) el 17/01/2020 15:39:24
¿Y el libro?

Sin ver el libro no es posible saber porque falla la macro.

Saludos.
\\//_
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar