AW: Makros automatisch anpassen
16.05.2025 20:35:10
Yal
Hallo IseGrimm,
poste bitte immer einen vollständigen Code: von "Sub ..." bis "End Sub". Sonst werden die Lösungen genauso unvollständig sein und Du wirst als "VBA nur mit Rekorder" wahrscheinlich nicht allein vervollständigen können.
Benutze ebenfalls den Schlater "Code <pre><code>" und poste dein Code genau zwischen
<pre><code class=language-vba> und </code></pre>
Wenn man davon ausgeht, dass das Makro immer auf dem Blatt wirken soll, wo gerade das aktives Blatt, kann man ActiveSheet verwenden:
Sub Test()
With ActiveSheet.AutoFilter.Sort
.SortFields.Clear
.SortFields.Add2 Key:=Range("AE4"), SortOn:=xlSortOnValues, Order:=xlDescending, DataOption:=xlSortNormal
...
End With
End Sub
"With" ist eine Abkürzung, um die Wiederholung von Bezeichner zu vermeiden. Alles, was mit einem Punkt anfängt, bezieht sich auf dem With.
Aus
ActiveWorkbook.Worksheets(ThisWorkbook.ActiveSheet.Name).AutoFilter.Sort.SortFields.Clear
ActiveWorkbook.Worksheets(ThisWorkbook.ActiveSheet.Name).AutoFilter.Sort.SortFields.Add2 Key:=Range("AE4"), SortOn:=xlSortOnValues, Order:=xlDescending, DataOption:=xlSortNormal
wird
With ActiveWorkbook.Worksheets(ThisWorkbook.ActiveSheet.Name).AutoFilter.Sort.SortFields
.Clear
.Add2 Key:=Range("AE4"), SortOn:=xlSortOnValues, Order:=xlDescending, DataOption:=xlSortNormal
End With
Du musst ebenfalls Range("AE4") mit einem Blattbezug genauer defineren:
Sub Test()
With ActiveSheet.AutoFilter.Sort
.SortFields.Clear
.SortFields.Add2 Key:=ActiveSheetRange("AE4"), SortOn:=xlSortOnValues, Order:=xlDescending, DataOption:=xlSortNormal
...
End With
End Sub
VG
Yal