Live-Forum - Die aktuellen Beiträge
Anzeige
Archiv - Navigation
1208to1212
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

Autofilter Zeilennummer ermitteln

Autofilter Zeilennummer ermitteln
Ptonka
Hallo zusammen,
wie kann ich über VB aus einer mit dem AutoFilter gefilterten Liste die dann angezeigten Zeilennummern ermitteln? Also z.B. wenn ich eine Liste mit 2000 Einträgen habe und ich filtere nach einem bestimmten Kriterium und dann die Zeilen 123, 456, 1234 und 1877 angezeigt werden, möchte ich mittels VB mit einer Schleife diese 4 Zeilennummern ermitteln.
Für einen Tipp wäre ich sehr dankbar.
Gruß,
Ptonka

13
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Benutzer
Anzeige
AW: Autofilter Zeilennummer ermitteln
07.04.2011 21:11:26
Gerd
Hallo Ptonka!
Sub AFZ() Dim rngCell As Range With ActiveSheet.AutoFilter.Range For Each rngCell In .Offset(1).Resize(.Count - 1).Columns(1).SpecialCells(xlVisible) Debug.Print rngCell.row Next End With End Sub Gruß Gerd
Nachgefragt
07.04.2011 21:24:12
Matthias
Hallo Gerd
Hab auch grad gefummelt, Du warst aber schneller.
Reicht das nicht schon so aus ?
For Each rngCell In .Columns(1).SpecialCells(xlVisible)
Gruß Matthias
AW: Nachgefragt
07.04.2011 21:31:39
Gerd
Hallo Matthias,
ja, wenn die Headline bei der Ausgabe dabei sein soll, kann Offset u. Resize entfallen.
Gruß Gerd
ok, Danke kwT
07.04.2011 21:33:30
Matthias
irgendwas stimmt da nicht ...
07.04.2011 21:58:17
Matthias
Hallo nochmal
Das lässt mir doch noch keine Ruhe
Userbild
Filtere ich Spalte A un B zeigt der Debugger bis 20
Gruß Matthias
Anzeige
egal ...
07.04.2011 22:20:46
Matthias
Hallo
habs jetzt so für mich archiviert:
Dim rngCell As Range
For Each rngCell In ActiveSheet.AutoFilter.Range.Columns(1).SpecialCells(xlVisible)
Debug.Print rngCell.Row
Next
Gruß Matthias
AW: irgendwas stimmt da nicht ...
07.04.2011 22:25:54
Reinhard
hallo Matthias, Gerd,

Sub AFZ()
Dim rngCell As Range
With ActiveSheet.AutoFilter.Range
For Each rngCell In .Offset(1).Resize(.Count - 1).Columns(1).SpecialCells(xlVisible)
Debug.Print rngCell.Row
Next rngCell
End With
End Sub
Obigen Code habe ich laufen lassen nachdem ich in DSpalte D nach "a" gefiltert hatte.
Ihr seht in B20 den untersten Eintrag, ich hab sogar die zeilen von 21 bis 65535 markiert und im Kontextmenue Zeilen löschen gewählt. M.E. müßte unterhalb von zeile 20 alles leer sein.
Ich habe dann eine ähnlich seltsame Debug-Anzeige, es werden Zeilen bis hin zu 27 angezeigt?
Deshalb Frage noch offen.
Bis 20 hätte ich ja vielleicht noch verstanden, aber bis 27 *rätsel*
Hier das Bild:
Userbild
Gruß
Reinhard
Anzeige
3 Spalten gefiltert mit je 9 Zeilen = 27 kwT
07.04.2011 22:33:34
Matthias
Alles klar, wieder gepennt :-( Gruß o.w.T.
07.04.2011 22:42:52
Reinhard


oder eher so ...
07.04.2011 22:45:51
Matthias
Hallo Reinhard
Das hier ist da schon realistischer
ohne Kopfdaten
B2:B20 = 19 Zellen
C keine
D2:D9 = 8 Zellen
macht: 27
Gruß Matthias
AW: Oder wie "immer" :-)...
07.04.2011 23:26:11
Gerd
Hallo,
ja, ja, die ...-Areas!
Sub AFZ_2()
Dim rngRow As Range
For Each rngRow In ActiveSheet.AutoFilter.Range.Rows(2).Resize(ActiveSheet.AutoFilter.Range. _
Rows.Count - 1).EntireRow
If Not rngRow.Hidden Then Debug.Print rngRow.row
Next
End Sub
Gruß Gerd
Ja, so passt es :-) & hier meine Überlegungen ...
08.04.2011 07:47:07
Matthias
Hallo
... Das hat mir nämlich echt keine Ruhe gelassen :o)
Zumindest hab ich jetzt "evtl." eine näherliegende Logik entdeckt.
Obwohl ich das Ganze noch nicht zu 100% verstehe.
Tabelle1 [Beispiel von Reinhard]

 ABCDEFGHIJKL
1 dhname        
21  a        
32  b        
43  f        
54  a        
65  d        
76  a        
87  f        
98  a     9  
109           
1110           
1211           
1312           
1413           
1514           
1615           
1716           
1817           
1918           
2019v     20    
2120   x       
2221   x       
2322   x       
2423   x       
2524   x       
2625   x       
2726   x       
2827   x 28   2885

Formeln der Tabelle
ZelleFormel
J9=ZEILE()
H20=ZEILE()
G28=ZEILE()
K28=ZEILE()
L28=SUMME(G1:K28)


Excel Tabellen im Web darstellen >> Excel Jeanie HTML 4
Hatte es dann alternativ so probiert:
Dim rngCell As Range
For Each rngCell In ActiveSheet.AutoFilter.Range.Columns(1).SpecialCells(xlVisible)
If rngCell.Row > 1 Then Debug.Print rngCell.Row 'ohne Kopfzeile (sonst ohne If/Then)
Next
mit gleichem Ergebnis :o)
Gruß Matthias
Anzeige
AW: Ja, so passt es :-) & hier meine Überlegungen ...
08.04.2011 10:42:31
Ptonka
Hallo an alle, die geantwortet haben,
letztendlich hat mir der Vierzeiler von Matthias weitergeholfen.
Vielen Dank dafür, Matthias.
Gruß,
Ptonka

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige