VB Excel mehrere Zeilen markieren

Ich habe folgendes Problem:
Ich hab eine Schleife bei der ich mir bestimmte Zeilen markiere (die ein bestimmtes Wort in Spalte 1 enthalten) - diese Zeilen möchte ich dann ausblenden. Wenn ich das Ausblenden in der Schleife mitmache leidet die Performance darunter - jetzt möchte ich zuerst die betreffenden Zeilen markieren und dann die Hiddenfunktion ausführen. (mein Versuch hat nicht geklappt)
hat da jemand eine Idee? thx roman

Code:
For i = 12 To 155
If Cells(i, 1).Value Like „*Act*“ Then

Cells(i, 1).Activate
Selection.EntireRow.Hidden = True

'Versuch
'myarray = myarray & i & „:“ & i & „,“

End If
Next i

'Versuch
'Beistrich weg
'myarray = Left(myarray, Len(myarray) - 1)
'Range(myarray).Select
'Selection.EntireRow.Hidden = True

Hallo Namen- und Grußloser (eine Anrede kommt hier immer gut an),

das auswählen der Zeile kannst du dir sparen:

If Cells(i, 1).Value Like "\*Act\*" Then Rows(i).Hidden = True

Ohne diese Selecterei sollte das um einiges schneller laufen.

Gruß (auch das wird hier gerne gelesen),
Andreas

es geht sogar noch kürzer:

Rows(i).Hidden = (Cells(i, 1).Value Like "\*Act\*") 

Gruß, Andreas

Hallo Andreas und Vielen Dank für deinen Input und sorry wegen der „uncharmanten“ Anrede.

Deine 2 Beispiele funktionieren, aber ich bin noch nicht zufrieden, weil ich noch immer einen Zeitverzug habe, der wenn ich die Zeilen mit der Hand einzelne mit STRG markiere und dann ausblende nicht da ist.
Die Schleife sucht ja zuerst die betreffende Zeile und blendet diese dann aus. Besser wäre es ja alle betreffenden Zeilen auszuwählen und zum Schluss außerhalb der Schleife diese Zeilen auszublenden?

Vielleicht liegt das Performanceproblem auch daran, dass ich nach mehreren Keywörtern suche:

Rows(i).Hidden = (Cells(i, 1).Value Like „*Act*“ Or _
Cells(i, 1).Value Like „*DEV*“ Or Cells(i, 1).Value Like „*ACCRUAL*“ Or Cells(i, 2).Value Like „*UAE*“)

thx
roman

Hallo Roman,

OK. Was hat denn an deinem ersten Versuch mit dem myarray nicht funktioniert? Ich habs gerade mal getestet, bei mir läufts.

Gruß, Andreas

Vielleicht liegt das Performanceproblem auch daran, dass ich
nach mehreren Keywörtern suche:

Hallo roman,

Hilfsspalte ist D also Spalte 4, zum anpassen die 4 und 3 im Code anpassen.
Schnell genug? :smile::

Option Explicit

Sub Ausblenden()
Dim rngA, rngD, Formel As String
Set rngA = Cells(1, 1).Resize(Cells(Rows.Count, 1).End(xlUp).Row, 1)
Set rngD = Cells(1, 4).Resize(rngA.Count, 1)
Formel = "=1/(LÄNGE(WECHSELN(WECHSELN(WECHSELN(WECHSELN(A1;""Act"";"""")"
Formel = Formel & ";""DEV"";"""");""ACCRUAL"";"""");""UAE"";""""))=LÄNGE(A1))"
rngA.Offset(0, 3).FormulaLocal = Formel
rngD.SpecialCells(xlCellTypeFormulas, xlErrors).EntireRow.Hidden = True
rngD.ClearContents
End Sub

Gruß
Reinhard
Gruß
Reinhard

Hallo Andreas,

ich bekomm beim Statement Range(myarray).Select einen FEhler (Methode Range für das Objekt ‚_Global‘ ist fehlgeschlagen - weil anscheinend die Variable myarray zu voll ist (sind ja einige Zeilen die das Betrifft) - wenn ich die Schleife aber testweise kleiner mache - geht es auch nicht, weil dann versteckt er mir alle Zeilen…

Hallo Reinhard

Super, das hat prima geklappt - die Performance ist wirklich um einiges besser - wobei ich noch immer das Gefühl habe es ginge schneller durch die Variante - mit Schleife Zeilen markieren und nach der Schleife ausblenden. - gibt es da im VBExcel keine Funktion:
Markiere Zeile - und im nächsten Schritt - Markiere noch eine Zeile dazu, so und jetzt noch eine Zeile dazu (so dass die vorherigen Zeilen auch markiert bleiben)?
Aber thx - durch deine Variante (auch wenn ich die Formel nicht ganz verstehe mit: 1 durch…) ist die Performance um einiges besser geworden…
lg
roman