Live-Forum - Die aktuellen Beiträge
Anzeige
Archiv - Navigation
1512to1516
Aktuelles Verzeichnis
Verzeichnis Index
Übersicht Verzeichnisse
Vorheriger Thread
Rückwärts Blättern
Nächster Thread
Vorwärts blättern
Anzeige
HERBERS
Excel-Forum (Archiv)
20+ Jahre Excel-Kompetenz: Von Anwendern, für Anwender
Inhaltsverzeichnis

Variable erste Zeile ermitteln

Variable erste Zeile ermitteln
31.08.2016 11:47:30
Harald
Hallo liebe Forums-Mitglieder,
hoffe auf Eure Hilfe für folgendes Problem, bei dem leider meine VBA-Kenntnisse nicht ausreichen.
Ich habe eine Arbeitsmappe mit ca. 60 Tabellenblättern, die jeweils 50 Spalten und über 200 Zeilen an Daten beinhalten.
Allen Tabellenblättern ist gleich, dass die ersten 28 Zeilen identisch sind, unterschiedlichste Daten ab Zeile 29 eingetragen sind.
Nun zum Problem:
Per VBA setze ich Autofilter und kopiere entsprechende Bereiche in eine neue Datei, was soweit gut funktioniert.
Da die Daten unterschiedlich sind, beginnt der gefilterte Datenbereich aber nicht immer bei Zeile 29, sondern in sehr unterschiedlichen Zeilen.
Aktuell habe ich in meinem VBA-Code die Zeilennummer händisch eingetragen, sobald sich aber Daten ändern, stimmt dies evtl. nicht mehr und ich muss das manuell korrigieren.
Wie kann ich das also lösen, dass bei gesetztem Autofilter automatisch ab der ersten (gefilterten) Zeile markiert und kopiert wird.
Vielen Dank schonmal für Eure Hilfe
Harald

5
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: Variable erste Zeile ermitteln
31.08.2016 13:16:34
ChrisL
Hi Harald
Ermittelt die Titelzeile vom Filterbereich:
MsgBox ActiveSheet.AutoFilter.Range(1).Row
Und hier die erste sichtbare Zeile vom Filterbereich:
Sub ttt()
MsgBox GetFilteredRangeTopRow
End Sub

Function GetFilteredRangeTopRow() As Long
Dim HeaderRow As Long, LastFilterRow As Long
On Error GoTo NoFilterOnSheet
With ActiveSheet
HeaderRow = .AutoFilter.Range(1).Row
LastFilterRow = .Range(Split(.AutoFilter.Range.Address, ":")(1)).Row
GetFilteredRangeTopRow = .Range(.Rows(HeaderRow + 1), .Rows(Rows.Count)).SpecialCells( _
xlCellTypeVisible)(1).Row
If GetFilteredRangeTopRow = LastFilterRow + 1 Then GetFilteredRangeTopRow = 0
End With
NoFilterOnSheet:
End Function
Quelle: http://www.mrexcel.com/forum/excel-questions/562603-select-first-visible-cell-under-header-row-after-applying-autofilter.html
cu
Chris
Anzeige
AW: Variable erste Zeile ermitteln
31.08.2016 13:44:06
Harald
Hallo Chris,
vielen Dank für die schnelle Hilfe, das sieht ja schonmal super aus und erfüllt seinen Zweck!
Bevor ich mir nun noch abschließend den Wolf probiere die Frage, wie ich das Ergebnis in eine Variable bekomme, um es dann in einem Range-Object weiter zu verwenden?
Vielen vielen Dank
Harald
AW: Variable erste Zeile ermitteln
31.08.2016 13:52:21
ChrisL
Hi Harald
x = ActiveSheet.AutoFilter.Range(1).Row
oder
y = GetFilteredRangeTopRow
cu
Chris
AW: Variable erste Zeile ermitteln
31.08.2016 13:54:03
Harald
Jo, Lösung lag ja schon vor mir........ ;-)
Nochmals besten Dank! :-)
Harald
AW: Variable erste Zeile ermitteln
31.08.2016 15:52:23
Harald
Hab das jetzt mal in die bestehenden Makros eingebaut und es funktioniert perfekt!
Vielen Dank für die schnelle und kompetente Hilfe :-)
Harald
Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige