Dieses Forum nutzt Cookies
Dieses Forum verwendet Cookies, um deine Login-Informationen zu speichern, wenn du registriert bist, und deinen letzten Besuch, wenn du es nicht bist. Cookies sind kleine Textdokumente, die auf deinem Computer gespeichert werden. Die von diesem Forum gesetzten Cookies werden nur auf dieser Website verwendet und stellen kein Sicherheitsrisiko dar. Cookies aus diesem Forum speichern auch die spezifischen Themen, die du gelesen hast und wann du zum letzten Mal gelesen hast. Bitte bestätige, ob du diese Cookies akzeptierst oder ablehnst.

Ein Cookie wird in deinem Browser unabhängig von der Wahl gespeichert, um zu verhindern, dass dir diese Frage erneut gestellt wird. Du kannst deine Cookie-Einstellungen jederzeit über den Link in der Fußzeile ändern.

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)
Antworten Top
#12
Oder

Code:
Sub M_snb()
  Sheets("Tabelle1").columns(3).autofilter 1, "*Mühe*",1,"*lag*"
End Sub
Antworten 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.
Antworten 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)
Antworten 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
Antworten 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.
Antworten 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)
Antworten 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
Antworten 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.
Antworten 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)
Antworten Top


Gehe zu:


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