12.11.2021, 12:52
Hallo zusammen,
ich suche nach einer Lösung auf ein VBA-Problem. Das Makro soll aus einer Tabelle die 10 größten Positionen herausziehen. Dafür wird zuerst nach der Kategorie gefiltert, danach absteigend sortiert und anschließend - jetzt kommt der kritische Punkt - die Top 10 markiert und kopiert (usw.). Das Makro habe ich aufgezeichnet und stelle nun fest, dass Excel IMMER D53:D62,CL53:CM62 (unten in fett markiert) herauskopiert. Excel soll aber nur die Top 10 markieren, also die ersten 10 Zeilen rauskopieren, die zu sehen sind.
Online habe ich gesehen, dass man dies mit "activecell.row" lösen könnte. Jedoch komm ich hier an meine Grenzen, da ja nicht die komplette Zeile, sondern nur 3 Zellen aus einer Spalte markiert werden sollen, wie ihr seht -> D53:D62,CL53:CM62. Die Top 10 werden immer in den Zeilen 5 bis 14 ausgespuckt. Wie kann man das lösen?
Anbei einen Ausschnitt aus dem VBA Code.
ActiveSheet.ListObjects("Tabelle1").Range.AutoFilter Field:=3, Criteria1:= _
"Kategorie 1"
Range("D55").Select
Application.CutCopyMode = False
ActiveWorkbook.Worksheets("Abw. Werk 0012").ListObjects("Tabelle1").Sort. _
SortFields.Clear
ActiveWorkbook.Worksheets("Abw. Werk 0012").ListObjects("Tabelle1").Sort. _
SortFields.Add2 Key:=Range("Tabelle1[[#All],[Betrag]]"), SortOn _
:=xlSortOnValues, Order:=xlDescending, DataOption:=xlSortNormal
With ActiveWorkbook.Worksheets("Tabellenblatt 1").ListObjects("Tabelle1").Sort
.Header = xlYes
.MatchCase = False
.Orientation = xlTopToBottom
.SortMethod = xlPinYin
.Apply
End With
Range("D53:D62,CL53:CM62").Select
Range("CL53").Activate
Selection.Copy
Vielen Dank im Voraus und beste Grüße,
Maximilian
ich suche nach einer Lösung auf ein VBA-Problem. Das Makro soll aus einer Tabelle die 10 größten Positionen herausziehen. Dafür wird zuerst nach der Kategorie gefiltert, danach absteigend sortiert und anschließend - jetzt kommt der kritische Punkt - die Top 10 markiert und kopiert (usw.). Das Makro habe ich aufgezeichnet und stelle nun fest, dass Excel IMMER D53:D62,CL53:CM62 (unten in fett markiert) herauskopiert. Excel soll aber nur die Top 10 markieren, also die ersten 10 Zeilen rauskopieren, die zu sehen sind.
Online habe ich gesehen, dass man dies mit "activecell.row" lösen könnte. Jedoch komm ich hier an meine Grenzen, da ja nicht die komplette Zeile, sondern nur 3 Zellen aus einer Spalte markiert werden sollen, wie ihr seht -> D53:D62,CL53:CM62. Die Top 10 werden immer in den Zeilen 5 bis 14 ausgespuckt. Wie kann man das lösen?
Anbei einen Ausschnitt aus dem VBA Code.
ActiveSheet.ListObjects("Tabelle1").Range.AutoFilter Field:=3, Criteria1:= _
"Kategorie 1"
Range("D55").Select
Application.CutCopyMode = False
ActiveWorkbook.Worksheets("Abw. Werk 0012").ListObjects("Tabelle1").Sort. _
SortFields.Clear
ActiveWorkbook.Worksheets("Abw. Werk 0012").ListObjects("Tabelle1").Sort. _
SortFields.Add2 Key:=Range("Tabelle1[[#All],[Betrag]]"), SortOn _
:=xlSortOnValues, Order:=xlDescending, DataOption:=xlSortNormal
With ActiveWorkbook.Worksheets("Tabellenblatt 1").ListObjects("Tabelle1").Sort
.Header = xlYes
.MatchCase = False
.Orientation = xlTopToBottom
.SortMethod = xlPinYin
.Apply
End With
Range("D53:D62,CL53:CM62").Select
Range("CL53").Activate
Selection.Copy
Vielen Dank im Voraus und beste Grüße,
Maximilian