Reichweite einer Schleife erhöhen
#11
Ich würde es ja ohnehin anders angehen:
Modul Modul3
Option 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)
Top
#12
Oder

Code:
Sub M_snb()
  Sheets("Tabelle1").columns(3).autofilter 1, "*Mühe*",1,"*lag*"
End Sub
Top
#13
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.
Top
#14
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)
Top
#15
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
Top
#16
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.
Top
#17
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)
Top
#18
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
Top
#19
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.
Top
#20
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)
Top


Gehe zu:


Benutzer, die gerade dieses Thema anschauen: 1 Gast/Gäste