21.09.2020, 05:15
Hallo, ich möchte mit dem unten aufgeführten Makro eine Arbeitsblatt sortieren.
das klappt soweit auch ganz gut. Ich habe jedoch das Problem das sich der Name dieses Arbetisblattes immer ändert.
Daher möchte ich den zuerst den aktuellen Namen des Arbetisblattes ermitteln und diesen dann als Variable verwenden.
Set Blattname = activeWorkbook.ActiveSheet.Name (soll dann "TX_2020-09-19_2020-09-20-1" ergeben)
Sub MakroS()
Set Blattname = activeWorkbook.ActiveSheet.Name
ActiveWorkbook.Worksheets("TX_2020-09-19_2020-09-20-1").Sort.SortFields.Clear
ActiveWorkbook.Worksheets("TX_2020-09-19_2020-09-20-1").Sort.SortFields.Add _
Key:=Range("C2:C50"), SortOn:=xlSortOnValues, Order:=xlAscending, _
DataOption:=xlSortNormal
With ActiveWorkbook.Worksheets("TX_2020-09-19_2020-09-20-1").Sort
.SetRange Range("A1:R50")
.Header = xlYes
.MatchCase = False
.Orientation = xlTopToBottom
.SortMethod = xlPinYin
.Apply
End With
ActiveWorkbook.Worksheets("TX_2020-09-19_2020-09-20-1").Sort.SortFields.Clear
ActiveWorkbook.Worksheets("TX_2020-09-19_2020-09-20-1").Sort.SortFields.Add _
Key:=Range("M2:M50"), SortOn:=xlSortOnValues, Order:=xlAscending, _
DataOption:=xlSortNormal
With ActiveWorkbook.Worksheets("TX_2020-09-19_2020-09-20-1").Sort
.SetRange Range("A1:R50")
.Header = xlYes
.MatchCase = False
.Orientation = xlTopToBottom
.SortMethod = xlPinYin
.Apply
End With
End Sub
So das der Code später dann so aussehen sollte:
ActiveWorkbook.Worksheets("Blattname").Sort.SortFields.Clear
ActiveWorkbook.Worksheets("Blattname").Sort.SortFields.Add _
Key:=Range("C2:C50"), SortOn:=xlSortOnValues, Order:=xlAscending, _
DataOption:=xlSortNormal
With ActiveWorkbook.Worksheets("Blattname").Sort
.SetRange Range("A1:R50")
.Header = xlYes
.MatchCase = False
.Orientation = xlTopToBottom
.SortMethod = xlPinYin
.Apply
End With
usw.
Leider bekomme ich das irgendwie nicht hin.
Kann mir jemand helfen.
Danke Frank
das klappt soweit auch ganz gut. Ich habe jedoch das Problem das sich der Name dieses Arbetisblattes immer ändert.
Daher möchte ich den zuerst den aktuellen Namen des Arbetisblattes ermitteln und diesen dann als Variable verwenden.
Set Blattname = activeWorkbook.ActiveSheet.Name (soll dann "TX_2020-09-19_2020-09-20-1" ergeben)
Sub MakroS()
Set Blattname = activeWorkbook.ActiveSheet.Name
ActiveWorkbook.Worksheets("TX_2020-09-19_2020-09-20-1").Sort.SortFields.Clear
ActiveWorkbook.Worksheets("TX_2020-09-19_2020-09-20-1").Sort.SortFields.Add _
Key:=Range("C2:C50"), SortOn:=xlSortOnValues, Order:=xlAscending, _
DataOption:=xlSortNormal
With ActiveWorkbook.Worksheets("TX_2020-09-19_2020-09-20-1").Sort
.SetRange Range("A1:R50")
.Header = xlYes
.MatchCase = False
.Orientation = xlTopToBottom
.SortMethod = xlPinYin
.Apply
End With
ActiveWorkbook.Worksheets("TX_2020-09-19_2020-09-20-1").Sort.SortFields.Clear
ActiveWorkbook.Worksheets("TX_2020-09-19_2020-09-20-1").Sort.SortFields.Add _
Key:=Range("M2:M50"), SortOn:=xlSortOnValues, Order:=xlAscending, _
DataOption:=xlSortNormal
With ActiveWorkbook.Worksheets("TX_2020-09-19_2020-09-20-1").Sort
.SetRange Range("A1:R50")
.Header = xlYes
.MatchCase = False
.Orientation = xlTopToBottom
.SortMethod = xlPinYin
.Apply
End With
End Sub
So das der Code später dann so aussehen sollte:
ActiveWorkbook.Worksheets("Blattname").Sort.SortFields.Clear
ActiveWorkbook.Worksheets("Blattname").Sort.SortFields.Add _
Key:=Range("C2:C50"), SortOn:=xlSortOnValues, Order:=xlAscending, _
DataOption:=xlSortNormal
With ActiveWorkbook.Worksheets("Blattname").Sort
.SetRange Range("A1:R50")
.Header = xlYes
.MatchCase = False
.Orientation = xlTopToBottom
.SortMethod = xlPinYin
.Apply
End With
usw.
Leider bekomme ich das irgendwie nicht hin.
Kann mir jemand helfen.
Danke Frank