Supportnet / Forum / Tabellenkalkulation
VBA-Makro in Excel nur in gefilterten Zeilen ausführen
Frage
Hallo zusammen,
vielleicht mal wieder ne ganz einfache Frage...
Ich hab in einer Ecxel-Tabelle ein Makro, welches alle Zeilen durchläuft.
Hab das so programiert... vielleicht nicht elegant, aber ich wußte es nicht anders: ( x ist die laufende Zeile)
sub beispiel ()
Anfang:
x = 1
[Aktion]
x =x + 1
if x < 1000
goto Anfang
end if
end sub
Ich möchte aber nun mit dem Auto-Filter bestimmte Zeilen auswählen und das Makro dann nur in diesen Zeilen ausführen
Geht das?
Dankeschön & Gruß aus Stuttgart
Antwort 1 von coros
Hallo Andreas,
eine Antwort kommt zwar erst spät, aber eventuell kannst Du doch noch etwas damit anfangen.
Ohne genau zu wissen, was Deinm Beispielmakro so ganz machen soll, poste ich hier mal ein Makro, dass Dir in einer MessageBox anzeigt, welche Zeile dem filterkriterium entspricht, also sichtbar ist. Anstelle des Aufrufs der MessageBox muss dort dann Deine Prozedur eingetragen werden.
Kopiere das Makro in ein StandardModul und starte es z.B. über eine Befehlsschaltfläche
Teste das Makro aber bitte in einer Testdatei und nicht gleich in Deiner Originaldatei.
Ich hoffe, Du kommst klar. Bei Fragen melde Dich.
MfG,
Oliver
Da hier der einzige Lohn für die Helfer eine Rückmeldung ist, wäre es nett, wenn Du
ein Feedback abgeben könntest, ob der Lösungsvorschlag Dein Problem gelöst hat.
eine Antwort kommt zwar erst spät, aber eventuell kannst Du doch noch etwas damit anfangen.
Ohne genau zu wissen, was Deinm Beispielmakro so ganz machen soll, poste ich hier mal ein Makro, dass Dir in einer MessageBox anzeigt, welche Zeile dem filterkriterium entspricht, also sichtbar ist. Anstelle des Aufrufs der MessageBox muss dort dann Deine Prozedur eingetragen werden.
Kopiere das Makro in ein StandardModul und starte es z.B. über eine Befehlsschaltfläche
Teste das Makro aber bitte in einer Testdatei und nicht gleich in Deiner Originaldatei.
Sub Meldung_gefilterte_Zeilen()
Dim iRow As Range
For Each iRow In Range("A2:A" & Range("A65536").End(xlUp).Row)
If Rows(iRow.Row).Hidden = False Then
MsgBox iRow.Row
'Anstelle des MessageBox-Aufrufs hier die Prozedur, _
die ausgeführt werden soll
End If
Next
End Sub
Ich hoffe, Du kommst klar. Bei Fragen melde Dich.
MfG,
Oliver
Da hier der einzige Lohn für die Helfer eine Rückmeldung ist, wäre es nett, wenn Du
ein Feedback abgeben könntest, ob der Lösungsvorschlag Dein Problem gelöst hat.

