ich habe im Archiv folgenden Code gefunden, bei dem ich denke, dass er für meine Exceltabelle passend wäre:
Sub neut()
Application.DisplayAlerts = False
Application.ScreenUpdating = False
For i = 1 To Sheets.Count + 1
If i > Sheets.Count Then
Set NewSheet = Worksheets.Add
NewSheet.Name = "Alle Adressen"
End If
If Sheets(i).Name = "Alle Adressen" Then
Exit For
End If
Next i
Set ws1 = Worksheets("Alle Adressen")
Set ws3 = Worksheets("Daten")
anz1 = ws1.Cells(65356, 1).End(xlUp).Row
anz = ws3.Cells(65356, 1).End(xlUp).Row '
ws1.Range("a2:v" & anz1).ClearContents
For i = 2 To anz
If Sheets(i).Name "Alle Adressen" And Sheets(i).Name "Daten" And ws3.Cells(i, 1) "" _
_
Then
anz1 = ws1.Cells(65356, 1).End(xlUp).Row
Set ws2 = Worksheets(ws3.Cells(i, 1))
anz2 = ws2.Cells(65356, 1).End(xlUp).Row
ws2.Range("a2:v" & anz2).Copy Destination:=ws1.Range("a" & anz1 + 1)
End If
Next i
Cells.Select
Selection.Columns.AutoFit
Sheets("ADohneADM").Select
Rows("1:1").Select
Selection.Copy
Sheets("Alle Adressen").Select
Range("A1").Select
ActiveSheet.Paste
Sheets("Alle Adressen").Select
Cells.Select
Application.CutCopyMode = False
Selection.Sort Key1:=Range("B2"), Order1:=xlAscending, Header:=xlGuess, _
OrderCustom:=1, MatchCase:=False, Orientation:=xlTopToBottom, _
DataOption1:=xlSortNormal
Cells.Select
ActiveWorkbook.Names.Add Name:="AD", RefersToR1C1:= _
"='Alle Adressen'!R1:R65536"
Rows("2:2").Select
ActiveWindow.FreezePanes = True
Rows("1:1").Select
Selection.AutoFilter
Range("A2").Select
Sheets("Start").Select
Application.DisplayAlerts = True
Application.ScreenUpdating = True
End Sub
Kurz zu meinem Anliegen:Ich habe eine Exceltabelle mit diversen Tabellenblättern.
Davon soll der Inhalt der Tabellenblätter (Monate von Sept 16 - Juli 17) ab Zelle A5 in einem neuen Tabellenblatt zusammengefügt werden.
Den Code habe ich in ein neues Modul in den VBA-Editor kopiert.
Habe mir auch ein Tabellenblatt "Daten" angelegt und mit den Namen der von mir benötigten Tabellenblättern ausgefüllt.
Leider wird das Makro nicht richtig ausgeführt.
Es bleibt in folgender Zeile stehen:
Set ws2 = Worksheets(ws3.Cells(i, 1))
Kann mir bitte jmd. behilflich sein?
Wo liegt der Fehler?
Vielen Dank
Marina