Makro beim Kopieren anpassen?
Guten Morgen
Ich habe eine Arbeitsmappe, in welcher ich monatlich ein neues Arbeitsblatt einfüge. Dies mittels Kopieren. Nun habe ich einen VBA, welcher fürs 1. Blatt korrekt funktioniert, aber beim Neuen infolge anderem Registername (?) nicht funktionier.
Was muss ich ändern? Ganz grossen Dank für die Hilfe. Nachstehend das Makro.
Range("A2:E119").Select
ActiveWorkbook.Worksheets("07.21").Sort.SortFields.Clear
ActiveWorkbook.Worksheets("07.21").Sort.SortFields.Add2 Key:=Range("A3:A119") _
, SortOn:=xlSortOnValues, Order:=xlAscending, DataOption:=xlSortNormal
ActiveWorkbook.Worksheets("07.21").Sort.SortFields.Add2 Key:=Range("B3:B119") _
, SortOn:=xlSortOnValues, Order:=xlAscending, DataOption:=xlSortNormal
With ActiveWorkbook.Worksheets("07.21").Sort
.SetRange Range("A2:e119")
.Header = xlYes
.MatchCase = False
.Orientation = xlTopToBottom
.SortMethod = xlPinYin
.Apply
End With
Range("A3").Select
End Sub
2 Antworten
So, wie du es selbst schon vermutest. Der Code läuft nur für das Blatt mit dem Namen "07.21". Du kannst alle Stellen mit "ActiveWorkbook.Worksheets("07.21")" ändern zu "ActiveSheet", dann wird immer das gerade geöffnete Arbeitsblatt angepasst. Oder du packst das Arbeitsblatt in eine Variable, wo du dann immer den Namen von dem Blatt reischreibst, dass du ändern willst.
Ersetz mal
ActiveWorkbook.Worksheets("07.21")
durch
ActiveSheet
Dann sollte immer das ausgewählte Blatt sortiert werden
geschafft - besten Dank