AW: Sorry mal...
05.06.2008 15:29:00
Chris
Servus Petra,
hier die beiden finden 4711 aber nur jeweils den ersten Eintrag von oben oder von unten:
Sub tt3() ' von oben, aber immer nur die erste
Dim a, lastRow, i
With Sheets("Tabelle1")
If Not .Range("A:A").Find("4711", [A1], , , xlByRows, xlPrevious) Is Nothing Then
a = .Range("A:A").Find("4711", [A1], , , xlByRows, xlPrevious).Row
Else
lastRow = .Range("A65536").End(xlUp).Row
For i = 2 To lastRow
If .Cells(i, 1).EntireRow.Hidden = True And .Cells(i, 1).Value = "4711" Then
a = .Cells(i, 1).Row
Exit For
End If
Next i
End If
End With
MsgBox a
End Sub
Sub tt4() ' von unten, aber immer nur die erste
Dim a, lastRow, i
With Sheets("Tabelle1")
If Not .Range("A:A").Find("4711", [A1], , , xlByRows, xlPrevious) Is Nothing Then
a = .Range("A:A").Find("4711", [A1], , , xlByRows, xlPrevious).Row
Else
lastRow = .Range("A65536").End(xlUp).Row
For i = lastRow To 2 Step -1
If .Cells(i, 1).EntireRow.Hidden = True And .Cells(i, 1).Value = "4711" Then
a = .Cells(i, 1).Row
Exit For
End If
Next i
End If
End With
MsgBox a
End Sub
wenn du alle Einträge haben willst, dann musst du alle in einen Array einlesen, aber da gibt es den ein oder anderen Schönheitsfehler, der noch behoben werden muss.
Gruß
Chris