Ich würde es ja ohnehin anders angehen:
Modul Modul3Option Explicit
Sub RPP()
Dim rng As Range, firstAddress As String
Set rng = Columns(3).Find("Mühe*lag", Cells(1), xlValues, xlPart, MatchCase:=True)
If Not rng Is Nothing Then
firstAddress = rng.Address
Do
Debug.Print rng.Row
Set rng = Columns(3).FindNext(rng)
Loop While Not rng Is Nothing And rng.Address <> firstAddress
End If
End Sub
Gruß Ralf
Oder
Code:
Sub M_snb()
Sheets("Tabelle1").columns(3).autofilter 1, "*Mühe*",1,"*lag*"
End Sub
Hallo,
danke für eure Codeverbesserungsvorschläge. Werde ich mir notieren.
Was mich aber auch gleichzeitig zu einer weiteren Frage drängt.
Wenn ich schon diesen schönen Einzeiler habe:
Sheets("Tabelle1").Columns(3).AutoFilter 1, "*Mühe*", 1, "*lag*"
Wie kriege ich es mittels VBA dann hin, dass die angzeigten Autofilter - Ergebnisse
unmittelbar auf Tabellenblatt 2 geschrieben werden?
Vielleicht geht so etwas ja auch so schnell. Danke schon mal im voraus.
Moin!
In gefilterten Tabellen werden nur die sichtbaren Zellen kopiert.
Code:
Tabelle6.UsedRange.Copy Tabelle8.Cells(1)
Gruß Ralf
Code:
Sub M_snb()
with Sheets("Tabelle1").columns(3)
.autofilter 1, "*Mühe*",1,"*lag*"
.copy sheets("Tabelle2").cells(1)
.autofilter
end with
End Sub
Vielen Dank für eure Mühe.
Mit folgendem Code von Ralf habe ich ein Problem:
Code:
Option Explicit
Sub RPP()
Dim rng As Range, firstAddress As String
Set rng = Columns(1).Find("Mühe*lag", Cells(1), xlValues, xlPart, MatchCase:=True)
If Not rng Is Nothing Then
firstAddress = rng.Address
Do
Debug.Print rng.Row
Set rng = Columns(1).FindNext(rng)
Loop While Not rng Is Nothing And rng.Address <> firstAddress
End If
End Sub
Er funktioniert nicht, bzw. macht nichts und läuft glatt durch.
Könntet ihr euch das Ganze bitte nochmal anschauen.
Danke.
Wieso ist es jetzt auf einmal Columns(1)?
Du willst doch in Spalte C aka Columns(3) suchen?
Gruß Ralf
2 Mahl suchen = Filtern.
Code:
Sub M_snb()
With Sheets(1).Cells(1).CurrentRegion
.Cells(1, 3).Resize(3).Offset(, .Columns.Count) = Application.Transpose(Array(.Cells(1, 3), "*Mühe*", "*lag*"))
.AdvancedFilter 2, .Cells(1, 3).Resize(3).Offset(, .Columns.Count), Sheets(2).Cells(1)
.Cells(1, 3).Resize(3).Offset(, .Columns.Count).ClearContents
End With
End Sub
Hallo Ralf,
vergess mal bitte Column(1), meinetwegen können wir gerne bei Column(3) bleiben. Hab das Programm nur etwas an einem anderen Beispiel
"angepasst". Da dein Code für mich ein gutes Beispiel zum Lernen ist, hätte ich dann doch gerne, dass er auch vollständig funktioniert.
Ich bins nochmal,
ich glaub ich habe den Fehler gefunden:
das "sternzeichen" fehlte:
Set rng = Columns(1).Find("*Mühe*lag*", Cells(1), xlValues, xlPart, MatchCase:=True)