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

Prüfung der Zeilenhöhe (Autofilter)

Prüfung der Zeilenhöhe (Autofilter)
17.03.2023 07:07:06
Mike

Hallo zusammen,

ich möchte die durch Autofilter gefilterten Daten mit einer For Schleife durchlaufen.
Ich nutze hierfür RowHeight >0 aber aus irgendeinem Grund findet er auch Einträge in Zeilen die gar nicht im Autofilter sind.

Frage:

Habe ich irgendwo einen Fehler im Code den ich übersehe? Die Datenquelle hat zwar insgesamt 10 Spalten aber es dürfte doch reichen wenn ich als Range die Spalte angebe in der ich auch letztlich suchen möchte oder ?

Function AGcheck(strPosNr As String) As String

Dim c As Range
        
        For Each c In ThisWorkbook.Sheets("AG_alle").Range("B2:B50000")
            If c.RowHeight > 0 Then
                
                If strPosNr = ThisWorkbook.Sheets("AG_alle").Cells(c, 2) Then
                    AGcheck = ThisWorkbook.Sheets("AG_alle").Cells(c, 3).Value
                    GoTo ENDE
                End If
            End If
        Next c

ENDE:

End Function


Gruß
Mike

4
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: Prüfung der Zeilenhöhe (Autofilter)
17.03.2023 09:40:53
Fennek
Hallo,

versuche es mit


if rows(i).hidden = true then
i ist der Schleifenindex über alle releventen Zeilen.

mfg


AW: Prüfung der Zeilenhöhe (Autofilter)
17.03.2023 09:40:59
Heli
Hi,

würde ich eher über die SpecialCell-Methode machen:

For Each c In ThisWorkbook.Sheets("AG_alle").Range("B2:B50000").SpecialCells(xlCellTypeVisible)
Dann kannst Du Dir die Prüfung der Zeilenhöhe sparen - vermutlich kannst Du den Fehler auch umgehen wenn Du noch .EntireRow zu Deiner Bedingung hinzufügst.

If c.EntireRow.RowHeight > 0 Then
Ungetestet!

VG, Heli


Anzeige
AW: Prüfung der Zeilenhöhe (Autofilter)
17.03.2023 09:46:37
Beverly
Hi Mike,

benutze doch einfach SpecialCells(xlCellTypeVisible) anstelle die Zeilenhöhe zu prüfen.

Frage: weshalb definierst du die Variable als String, wenn du mittels "=" prüfen willst? Müsste sie denn dazu nicht numerisch sein?

Bis später
Karin



AW: Prüfung der Zeilenhöhe (Autofilter)
17.03.2023 12:21:37
GerdL
Hallo Mike,

der Autofilter beginnt in A1 bis mind. C1.

Function AGcheck(strPosNr As String) As String

        Dim c As Range
        
        
        With ThisWorkbook.Sheets("AG_alle")
        
             If .AutoFilterMode = True Then
            
                    For Each c In .AutoFilter.Range.Columns(2).Cells
                             If c.RowHeight > 0 Then
                                If strPosNr = CStr(.Cells(c.Row, 2)) Then
                                    AGcheck = CStr(.Cells(c.Row, 3).Value)
                                    Exit Function
                                End If
                            End If
                    Next c
             
             End If
        
        End With
       

End Function
Gruß Gerd

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige