OsmaniPititi publicó en la clase Copiar Datos de las Hojas Existentes hace 1 mes
Buenos Dias Julia
Muchas Gracias por la anterior aclaracion. Abajo pongo el codigo del ejemplo de la clase pero utilizando for each
Dim ws As Worksheet
Dim MsgContinuar As Byte
Dim UltimaFilaOrigen, UltimaFilaDestino As Long
MsgContinuar = MsgBox("Se agruparán las tablas de igual estructura." + _
vbNewLine + vbNewLine + "Desea continuar?", vbYesNo + vbQuestion, "Deztaca")
If MsgContinuar = vbNo Then Exit Sub
' Agregar una nueva hoja antes de la primera
ActiveWorkbook.Sheets.Add Before:=Sheets(1)
' Copiar los encabezados de la segunda hoja
Sheets(2).Range("A1:G1").Copy Sheets(1).Range("A1")
Columns("A:G").Select
Columns("A:G").EntireColumn.AutoFit
Sheets(1).Range("A2").Select
For Each ws In ThisWorkbook.Worksheets
If ws.Index <> 1 Then
UltimaFilaOrigen = ws.Cells(ws.Rows.Count, "A").End(xlUp).Row
If UltimaFilaOrigen > 1 Then
UltimaFilaDestino = Sheets(1).Cells(Sheets(1).Rows.Count, "A").End(xlUp).Row + 1
With Sheets(1).Range("A" & UltimaFilaDestino).Resize(UltimaFilaOrigen - 1, 7)
.Value = ws.Range("A2:G" & UltimaFilaOrigen).Value
End With
End If
End If
Next ws
Muchas Gracias por la anterior aclaracion. Abajo pongo el codigo del ejemplo de la clase pero utilizando for each
Dim ws As Worksheet
Dim MsgContinuar As Byte
Dim UltimaFilaOrigen, UltimaFilaDestino As Long
MsgContinuar = MsgBox("Se agruparán las tablas de igual estructura." + _
vbNewLine + vbNewLine + "Desea continuar?", vbYesNo + vbQuestion, "Deztaca")
If MsgContinuar = vbNo Then Exit Sub
' Agregar una nueva hoja antes de la primera
ActiveWorkbook.Sheets.Add Before:=Sheets(1)
' Copiar los encabezados de la segunda hoja
Sheets(2).Range("A1:G1").Copy Sheets(1).Range("A1")
Columns("A:G").Select
Columns("A:G").EntireColumn.AutoFit
Sheets(1).Range("A2").Select
For Each ws In ThisWorkbook.Worksheets
If ws.Index <> 1 Then
UltimaFilaOrigen = ws.Cells(ws.Rows.Count, "A").End(xlUp).Row
If UltimaFilaOrigen > 1 Then
UltimaFilaDestino = Sheets(1).Cells(Sheets(1).Rows.Count, "A").End(xlUp).Row + 1
With Sheets(1).Range("A" & UltimaFilaDestino).Resize(UltimaFilaOrigen - 1, 7)
.Value = ws.Range("A2:G" & UltimaFilaOrigen).Value
End With
End If
End If
Next ws
Respuestas
JuliaBravo490 respondió hace hace 1 mes:
Buenos días, Osmani.
Gracias por compartir el código.
El enfoque con For Each está muy bien aplicado. Es una muy buena adaptación del ejemplo de clase y cumple perfectamente con el objetivo de agrupar tablas con la misma estructura.
Un saludo y gracias por tu dedicación.
Saludos,
Julia - Equipo Deztaca
Gracias por compartir el código.
El enfoque con For Each está muy bien aplicado. Es una muy buena adaptación del ejemplo de clase y cumple perfectamente con el objetivo de agrupar tablas con la misma estructura.
Un saludo y gracias por tu dedicación.
Saludos,
Julia - Equipo Deztaca