OsmaniPititi publicó en la clase Copiar Datos de las Hojas Existentes hace 7 horas
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
