Registriert seit: 12.10.2014
Version(en): 365 Insider (64 Bit)
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
Gib einem Mann einen Fisch und du ernährst ihn für einen Tag.
Lehre einen Mann zu fischen und du ernährst ihn für sein Leben. (Konfuzius)
Registriert seit: 29.09.2015
Version(en): 2030,5
18.12.2016, 19:13
(Dieser Beitrag wurde zuletzt bearbeitet: 18.12.2016, 19:13 von snb.)
Oder
Code:
Sub M_snb()
Sheets("Tabelle1").columns(3).autofilter 1, "*Mühe*",1,"*lag*"
End Sub
Registriert seit: 25.09.2014
Version(en): 2010-2013
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.
Registriert seit: 12.10.2014
Version(en): 365 Insider (64 Bit)
Moin!
In gefilterten Tabellen werden nur die sichtbaren Zellen kopiert.
Code:
Tabelle6.UsedRange.Copy Tabelle8.Cells(1)
Gruß Ralf
Gib einem Mann einen Fisch und du ernährst ihn für einen Tag.
Lehre einen Mann zu fischen und du ernährst ihn für sein Leben. (Konfuzius)
Registriert seit: 29.09.2015
Version(en): 2030,5
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
Registriert seit: 25.09.2014
Version(en): 2010-2013
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.
Registriert seit: 12.10.2014
Version(en): 365 Insider (64 Bit)
Wieso ist es jetzt auf einmal Columns(1)?
Du willst doch in Spalte C aka Columns(3) suchen?
Gruß Ralf
Gib einem Mann einen Fisch und du ernährst ihn für einen Tag.
Lehre einen Mann zu fischen und du ernährst ihn für sein Leben. (Konfuzius)
Registriert seit: 29.09.2015
Version(en): 2030,5
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
Registriert seit: 25.09.2014
Version(en): 2010-2013
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.
Registriert seit: 25.09.2014
Version(en): 2010-2013
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)