Makro auf aktive Tabelle beziehen
Hallo an Alle,
ich habe mir ein Makro gestrickt,welches mir die Daten aus allen vorhandenen Tabellen ab der 2. Zeile in die Datei "Mappe1Tabelle1
kopiert. Ich muß aber immer den Namen der Tabelle in A--.xls ändern. Wie bekomme ich es hin, daß die jeweils geöffnete Tabelle angesprochen wird?
Dim iSheet As Integer
Dim iLastShet As Integer
Application.ScreenUpdating = False
iLastShet = ThisWorkbook.Sheets.Count
Windows("A--.xls").Activate
For iSheet = 1 To iLastShet
'iLastShet = ThisWorkbook.Sheets.Count
Workbooks("A--.xls").Worksheets(iSheet).Activate
b = ActiveSheet.Cells(Rows.Count, 1).End(xlUp).Row
Range("A2:J" & b).Select
Application.CutCopyMode = False
Selection.Copy
Windows("Mappe1").Activate
Sheets("Tabelle1").Select
Cells(ActiveSheet.Cells(Rows.Count, 1).End(xlUp).Row + 1, 1).Activate
ActiveSheet.Paste
Next
lmstr = "Es wurden " & iLastShet & " Blätter rumgeholt!!"
MsgBox lmstr
End Sub
Für Eure Verbesserungen dankt
wim
Antwort schreiben
Antwort 1 von Saarbauer vom 16.06.2021, 14:57 OptionsLösung
Hallo,
versuch es mal so
Dim iSheet As Integer
Dim iLastShet As Integer
Application.ScreenUpdating = False
Book= ActiveWoorkbook.Name
iLastShet = ThisWorkbook.Sheets.Count
Windows(Book).Activate
For iSheet = 1 To iLastShet
'iLastShet = ThisWorkbook.Sheets.Count
Workbooks(Book).Worksheets(iSheet).Activate
b = ActiveSheet.Cells(Rows.Count, 1).End(xlUp).Row
Range("A2:J" & b).Select
Application.CutCopyMode = False
Selection.Copy
Windows("Mappe1").Activate
Sheets("Tabelle1").Select
Cells(ActiveSheet.Cells(Rows.Count, 1).End(xlUp).Row + 1, 1).Activate
ActiveSheet.Paste
Next
lmstr = "Es wurden " & iLastShet & " Blätter rumgeholt!!"
MsgBox lmstr
End Sub
Ist ungetestet, da ein Testaufbau sehr aufwendig
Gruß
Helmut
Antwort 2 von wmei vom 16.06.2021, 15:41 Options
Danke Helmut,
geht wunderbar.
Ich wäre für weitere sachdienliche Hinweise und Verbesserungen
dankbar.
wim