Makro wiederholen

Hallo liebe Boardnutzer!

Wie kann ich eine Prozedur (VBA) solange wiederholen lassen, bis die Arbeitsmappe geschlossen wird?

Danke im voraus!

M.f.G.

Bernd

Hallo Bernd,

aktive VBA.Prozeduren blockieren normalerweise alle weiteren Aktivitäten in Excel, selbst dann wenn man in der Prozedur eine Wartepause einbaut. Es macht deshalb meist keinen Sinn ein Makro endlos laufen zu lassen. Der Abbruch eines „endlos“ sich wiederholenden Makros ist meist nur mit der ESC-Taste möglich.

Es gibt die Möglichkeit mit der OnTime-Methode ein Makro zu einem bestimmten Zeitpunkt zu starten. Diesen Vorgang kann man rekursiv gestalten, so dass sich das Makro am Ende immer einen neuen Starttermin setzt. Der Neustart kann wenn dies erforderlich/möglich sein sollte im Sekundentakt erfolgen Das Makro läuft dann solange bis Excel geschlossen wird.

Beim Schließen der Datei muss man dann mit dem speziellen Ereignis-Makro „Before_Close“ den automatischen Start der Prozedur mit einer entsprechendne OnTime-Anweisung unterbrechen.

Soweit der theoretische Ansatz. Wie man das Ganze jetzt in deinem speziellen Fall umsetzten kann/muss erfordert ein paar mehr Zusatzinformationen.

Gruß
Franz

[Bei dieser Antwort wurde das Vollzitat nachträglich automatisiert entfernt]

aktive VBA.Prozeduren blockieren normalerweise alle weiteren
Aktivitäten in Excel, selbst dann wenn man in der Prozedur
eine Wartepause einbaut. Es macht deshalb meist keinen Sinn
ein Makro endlos laufen zu lassen. Der Abbruch eines „endlos“
sich wiederholenden Makros ist meist nur mit der ESC-Taste
möglich.

Beim Schließen der Datei muss man dann mit dem speziellen
Ereignis-Makro „Before_Close“ den automatischen Start der
Prozedur mit einer entsprechendne OnTime-Anweisung
unterbrechen.

Soweit der theoretische Ansatz. Wie man das Ganze jetzt in
deinem speziellen Fall umsetzten kann/muss erfordert ein paar
mehr Zusatzinformationen.

Gruß
Franz

Hallo Franz!

Danke für deine schnelle Antwort!

Im Prinzip wollte ich nur ein Excelschichtbuch für die Arbeit haben.
Wir arbeiten in drei Schichten (Früh-, Mittags-, Nachtschicht)
Wenn ich eine 1 in die Schichtspalte eingebe, dann soll die ganze betroffene Zeile automatich mit gelber Hintergrundfarbe gefüllt werden.
Dasselbe gilt für die Mittagsschicht’2 grün’ und Nachtschicht’3 blau’.

Siehe Bild:

http://img7.myimg.de/Schichtbuch4eb6b.jpg

Ich habe zu Erst gedacht, dass man dieses Problem mit der bedingten Formatierung lösen könnte aber diese bezieht sich nur auf die betreffende Zelle.

Ich hoffe, dass ich mein Problem verständlich erklärt habe.
Wüsstest du einen Lösungsansatz (muss nicht unbedingt VBA sein).

Vielen Dank für deine Hilfe im voraus!

M.f.G.

Bernd

Hallo Bernd

Im Prinzip wollte ich nur ein Excelschichtbuch für die Arbeit
haben.
Wir arbeiten in drei Schichten (Früh-, Mittags-, Nachtschicht)
Wenn ich eine 1 in die Schichtspalte eingebe, dann soll die
ganze betroffene Zeile automatich mit gelber Hintergrundfarbe
gefüllt werden.
Dasselbe gilt für die Mittagsschicht’2 grün’ und
Nachtschicht’3 blau’.

Siehe Bild:

http://img7.myimg.de/Schichtbuch4eb6b.jpg

Ich habe zu Erst gedacht, dass man dieses Problem mit der
bedingten Formatierung lösen könnte aber diese bezieht sich
nur auf die betreffende Zelle.

Ich hoffe, dass ich mein Problem verständlich erklärt habe.
Wüsstest du einen Lösungsansatz (muss nicht unbedingt VBA
sein).

ja, jetzt kann man was damit anfangen.

klicke in die Zelle A2, ->Format, ->Bedingte Formatierung
„Bedingung 1“
folgende Einstellungen bzw. Eintragungen

"Formel ist" =$A2=1
 Button "Format" klicken, Register Muster Farbe gelb wählen

Button „Hinzufügen“ klicken
„Bedingung 2“
folgende Einstellungen bzw. Eintragungen

"Formel ist" =$A2=2
 Button "Format" klicken, Register Muster Farbe grün wählen

Button „Hinzufügen“ klicken
„Bedingung 3“
folgende Einstellungen bzw. Eintragungen

"Formel ist" =$A2=3
 Button "Format" klicken, Register Muster Farbe blau wählen

Das Fenster mit OK schließen.

Mit dem Pinsel das Format von Zelle A2 auf die Zellen B2:smiley:2 übertragen, Anschließend mit dem Pinsel das Format von A2:smiley:2 auf die Zellen darunter übertragen (so viel Reihen wie gewünscht).

Gruß
Marion

Vielen Dank für deine Hilfe im voraus!

M.f.G.

Bernd

Hallo Marion!

Deine Idee funktioniert 100%ig!
Vielen Dak für deine Hilfe!!! :smile:

M.f.G.

Bernd