|
Excel - Makros nach einer vorgegebenen Zeit starten
Makros nach einer vorgegebenen Zeit starten Sie können in Excel mit Hilfe des Befehls OnTime (BeiZeit) dafür sorgen, dass die Tabellenkalkulation eine bestimmte Zeitspanne nach dem Start eines Makros ein weiteres Makro startet. Eine praktische Anwendung für diesen Befehl wäre z.B., eine Meldung nur kurz anzuzeigen. Das unten angeführte Makro Textfeld_anzeigen erzeugt in der aktuellen Arbeitsmappe ein Textfeld mit dem Inhalt "Guten Morgen". Nach der in der zweitletzten Zeile eingetragenen Zeit - im Beispiel sind es zehn Sekunden - wird das Makro Textfeld_loeschen gestartet, das den Gruß wieder entfernt. Wenn Sie eine andere Zeitspanne bis zum Start des zweiten Makros wünschen, müssen Sie den Zeitwert entsprechend ändern. Damit das zweite Makro nach genau einer Stunde aktiv wird, müsste der Zeitwert 01:00:00 eingestellt werden, um es nach 22 Minuten und 10 Sekunden zu starten, auf 00:22:10. Achtung: Bei Fehlermeldung "Makro yxz konnte nicht gefunden werden" bitte die Makros aus einem Modul heraus aufrufen! Makrolisting zum Erzeugen eines Textfeldes:
Sub Textfeld_anzeigen()
ActiveSheet.TextBoxes.Add(80, 80, 434, 94).Select
Selection.Characters.Text = "Guten Morgen!"
With Selection.Characters(Start:=1, Length:=13).Font
Selection.Interior.ColorIndex = 20
Selection.HorizontalAlignment = xlCenter
Selection.VerticalAlignment = xlCenter
.Name = "Times New Roman" 'oder: Arial
.FontStyle = "Bold" 'Standard = Normalschrift
.Size = 24
End With
Application.OnTime Now + TimeValue("00:00:10"), "Textfeld_loeschen"
End Sub
Makrolisting zum Löschen des Textfeldes: Sub Textfeld_loeschen() ActiveSheet.TextBoxes(1).Select Selection.Delete End Sub Für Interessierte: Hier noch die "alte", jetzt ungültige Schreibweise in Deutsch:
Sub Textfeld_anzeigen()
AktivesBlatt.TextfeldListe.Hinzufügen(80,25; 80,25; 434,25; 94,5).Auswählen
Auswahl.Zeichen.Text = "Guten Morgen!"
Mit Auswahl.Zeichen(Start:=1; Länge:=13).Schriftart
Auswahl.Innenbereich.FarbIndex = 20
Auswahl.HorizontaleAusrichtung = xlZentriert
Auswahl.VertikaleAusrichtung = xlZentriert
.Name = "Arial"
.Schriftstil = "Standard"
.Grösse = 24
Ende Mit
Anwendung.BeiZeit Jetzt + Zeitwert("00:00:10"); "Textfeld_loeschen"
Ende Sub
Sub Textfeld_loeschen() AktivesBlatt.TextfeldListe(1).Auswählen Auswahl.Löschen End Sub |