Clever-Excel-Forum

Normale Version: blinkende Zelle
Du siehst gerade eine vereinfachte Darstellung unserer Inhalte. Normale Ansicht mit richtiger Formatierung.
Seiten: 1 2 3
Hallo Daniel,

Dafür gibt es auch wieder Eventmakros.

Wenn Du in DieseArbeitsmappe gehst kannst Du oben links das Workbook auswählen und oben rechts die Events. So kannst Du bei Aktivieren und Deaktivieren den Blinker schalten, z.B. für das Ausschalten in einer Excel-Mappe

Private Sub Workbook_WindowDeactivate(ByVal Wn As Window)
BlinkerAus
End Sub

Zum Anschalten nimmst Du dann das WindowActivate - aber pass auf, da gibt es noch andere mit Activate und Deactivate.

Die Makros musst Du dann in beide Mappen einarbeiten.
Hallo Zusammen,

leider funktioniert dass bei mir nicht.  In beide Mappen habe ich das eingearbeitet, jedoch ist es wenn ich den Blinker starte dann nimmt er nur das Tempo von der zuerst geöffneten Mappe.
(Alle VBAs heissen bis jetzt Blinker, muss ich jeder Tabelle einen neuen VBA-Namenn geben)
Ich möchte gerne gleichzeitig mehrere Mappen hintereinander geöffnet haben und ich schalte nur im Vorderen (nur die aktive; im Vordergrundstehende) den Blinker ein und aus mit der gleichen Tastenkombination (z.B. Strg-a = Wenn Blinker aus dann an schalten und wenn Blinker an dann ausschalten)

Vielen Dank schon im Voraus für eure Antworten.

Gruß
Daniel
Hallo Daniel,

wie sieht denn Dein Code im Modul DieseArbeitsmappe aus?

Bei mir ist es so und das An- und Ausschalten funktioniert.

Code:
Private Sub Workbook_WindowActivate(ByVal Wn As Window)
Blinker
End Sub

Private Sub Workbook_WindowDeactivate(ByVal Wn As Window)
BlinkerAus
End Sub

Hast Du denn im Code für das Tempo auch das richtige Tabellenblatt zugewiesen?
Tabelle2.Range... muss es in Deiner neuen Datei nicht geben.
Hallo,

vielen Dank.
Die verschiedenen Geschwindigkeiten funktionieren.
Leider kann ich während der Blinker in der einen Datei läuft nicht auf die andere Datei wechseln.
Gibt es da eine Möglichkeit? Oder ein VBA welche alle ausgeführten/laufende VBAs abbricht (ohne Fehlermeldung)

Gruß Daniel
Hallo Daniel,

hast Du den Wechsel mal über die Taskleiste versucht?
Hallo,

ja habe ich. Leider funktioniert es aber nicht.
Gibt es eine Möglichkeit, das Makro zu beenden ohne eine Fehlermeldung zu bekommen (bei allen Dateien die gleiche Tastenkombination)?

Gruß Daniel
Hallo Daniel,

eine Ursache könnte sein, dass das Makro beim Blinken durch das sleep fortwährend läuft. Ralf hatte ja in #6 schon zum Ausdruck gebracht, dass ihm sleep nicht gefällt Sad Eine Alternative könnte Application.OnTime sein.

Allerdings kann ich bei mir unter 2013 die Mappe wechseln, sie muss nur schon offen sein und beide Mappen werden mir in getrennten Fenstern angezeigt. Bei laufendem Blinker Öffnen geht bei mir auch nicht. Ich kann da jetzt gar nicht testen, was unter 2010 geht oder auch nicht Sad
Hallo Vielen Dank,

wie würde dann dies aussehen?
Bei mir geht es wie folgt leider nicht.

aa = Tabelle1.Range("BQ6").Value
cc = Tabelle1.Range("BQ7").Value
bb = 1000000
blBlinker = True


   Cells(3, 32).Interior.ColorIndex = 3
   Application.OnTime aa
   DoEvents
   Cells(3, 32).Interior.ColorIndex = xlNone
   Application.OnTime cc
   DoEvents

Habe ich das was falsch gemacht?

Gibt es eine Möglichkeit alle Laufende VBAs mit der gleichen Tastenkombination abzubrechen, ohne dass eine Fehlermeldung kommt?

Gruß

Daniel
Hallo Daniel,

ich habe jetzt mal noch etwas experimentiert. Ich habe lediglich noch drei Dinge.
Zum einen sicherheitshalber der Hinweis, dass zum Öffnen der Datei der laufende Blinker gestoppt werden sollte. Das hast Du aber sicher so gemacht, du schriebst ja nur, du könntest nicht wechseln.
Zum zweiten meinte ich mit "Bei mir ist es so", dass nur der gepostete Code in DieseArbeitsmappe steht und nicht mehr der von WorkBook_Open.
Zum dritten habe ich das Einschaltereignis beim Aktivieren etwas verzögert.
Code:
Private Sub Workbook_WindowActivate(ByVal Wn As Window)
Application.OnTime Now + TimeValue("00:00:01"), "Blinker"
End Sub

Wenn Du statt des Sleep dann OnTime nehmen willst, hättest Du damit gleich einen Ansatz. Allerdings musst Du etwas mehr tun als nur ersetzen Sad
Moin!
Eigentlich ist dieser Thread schon lange für mich abgeschlossen.
Dennoch ein paar Anmerkungen, Daniel:
  1. Application.OnTime hat als kleinste Zeiteinheit 1 Sekunde! (Dies steht aber bereits auf Seite 1 dieses Threads)
  2. Mir ist schleierhaft, warum Du die Bremse auch  noch in mehreren Mappen gleichzeitig laufen lassen willst. Windows mag multitaskingfähig sein, Du als Musiker bist es wohl kaum. 
  3. DoEvents ist lediglich eine Krücke!! VBA kehrt erst dann zur Arbeit zurück, wenn Windows alles abgearbeitet hat. Hier ist die Priorität eindeutig BS > VBA! Auch dies habe ich Dir bereits geschrieben!
Du solltest m.E. also nicht ständig neue Wünsche nachschieben, sondern Dir bewusst sein, dass Dein Vorhaben mit Excel niemals zufriedenstellend funktionieren wird!

Nachsatz: Ich würde mich jedenfalls kaum freuen, wenn ich einer musikalischen Darbietung von Dir lauschen würde und Windows dem Virenprogramm höhere Priorität zuweisen würde ...  :21:

Gruß Ralf
Seiten: 1 2 3