Hatte das noch in dem andern Antwortzweig gepostet.
ActiveSheet.UsedRange.Rows("1:4").Select alternativ auch copy etc.
Also Usedrange bzw. die Zeilen die da auswählst beziehen sich dann auf den noch sichtbaren Bereich - du hast ja vorher gefiltert. Wenn die Standarteinträge noch sichtbar sind, werden die bei usedrange ohne ZUsatz mit ausgewählt. Würde die halt mit ausfiltern lassen.
Die Anzahl der sichtbaren Zellen wären dann bspw. so
ende = Intersect(ActiveSheet.UsedRange.SpecialCells(xlVisible), ActiveSheet.Columns(3)).Count
und die Auswahl (vorausgesetzt ende ist größer 0)
ActiveSheet.UsedRange.Rows("1:" & ende).Select
Falls du die Standarteinträge nicht ausfiltern kannst, aber eine andere Spalte hast, wo die letzte Zeile mit dem Filter übereinstimmt (die also den letzten Filtertefer hat), dann kannst du Ende auch so bekommen
ende2 = Application.WorksheetFunction.Subtotal(3, ActiveSheet.Columns(3))
Alternativ durch alle Spalten außer den mit den Standartwerten in einer Schleife durchgehen und den größten Wert ermitteln. Das ist das Ende und mit Oben kannst du dann den bereich kopieren etc.
Hoffe das ist vertändlich. :-)
VG
|