Live-Forum - Die aktuellen Beiträge
Anzeige
Anzeige
HERBERS
Excel-Forum (Archiv)
20+ Jahre Excel-Kompetenz: Von Anwendern, für Anwender

Forumthread: Makro zu bestimmter Zeit ausführen

Makro zu bestimmter Zeit ausführen
16.09.2006 04:10:08
astis
Hallo,
wie kann ich in meinem Fall dem Program sagen, das zB am 1. des nächsten Quartals eine Meldung erscheint "Bitte neue Preisliste verwenden?" und
die Tabelle ab diesem Zeitpunkt gesperrt ist um irrtümliche Eintragungen zu vermeiden ?
Müsste doch sowas sein wie "If HEUTE() = 01.10.2006 Than starte Makro XY oder so ?
Anzeige

4
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: Makro zu bestimmter Zeit ausführen
16.09.2006 07:11:58
Renner
Möchten Sie ein Makro nach einer bestimmten Intervall-Zeit immer wieder ausführen?
Möchten Sie bspw. alle 30 Minuten erinnert werden, Ihre Rückenübungen zu machen oder ähnliches? Dann hilft Ihnen folgendes Makro weiter:
Private t As Boolean

Sub starten()
t = True
zeit = Time + TimeSerial(0, 30, 0)
Application.OnTime zeit, "generate_meldung"
End Sub


Sub generate_meldung()
MsgBox "Es ist Zeit etwas zu erledigen!!"
If t = True Then starten
End Sub


Sub beenden()
t = False
End Sub

Gestartet wird das Programm mit der Prozedur 'starten'.
Nach 30 Minuten wird die Prozedur 'generate_meldung' ausgeführt.
Hier kann nun jeder beliebige VBA-Code ausgeführt werden.
Mit der Prozedur 'beenden' schalten Sie das wiederholte Ausführen des Codes wieder ab.
In der Prozedur 'starten' können Sie die Intervallzeit beliebig einstellen.
Sie müssen einfach beim Befehl TimeSerial(Stunde, Minute, Sekunde) die gewünschte
Intervalldauer angeben.
Geeignet ist dieses Makro auch, um die laufende Uhrzeit in einer Zelle anzuzeigen.
Der entsprechende Code muss nur etwas abgewandelt werden und sieht wie folgt aus:
Die Änderungen sehen sie an den eingefärbten Code-Zeilen
Private t As Boolean

Sub starten()
t = True
zeit = Time + TimeSerial(0, 0, 1)
Application.OnTime zeit, "generate_meldung"
End Sub


Sub generate_meldung()
Sheets("Tabelle1").Cells(1, 1).Value = Time
If t = True Then starten
End Sub


Sub beenden()
t = False
End Sub

Dieser Code muss in einem Modul eingefügt werden! Nicht in einem Tabellenblatt!
Anzeige
AW: Makro zu bestimmter Zeit ausführen
16.09.2006 13:36:45
astis
Hallo Danke für den Ansatz, ich habe mich vielleicht allerdings schlecht ausgedrückt. Ich meinte ich will das Makro nicht zu einer bestimmten "UHR-Zeit" sondern an einem bestimmten Tag ausführen.
AW: Makro zu bestimmter Zeit ausführen
16.09.2006 14:54:11
Stefan
Hallo astis,
Im folgenden Code wird das heutige Datum mit dem Wert in einer Variablen verglichen, und wenn das heutige Datum >= dieser Variablen ist, der Code in der If-Schleife ausgefuehrt. Das mit dem Arbeitsblatt sperren muesstest Du noch etwas praezisieren, aber vielleicht weisst Du da ja schon wie Du das machen willst:

Private Sub Workbook_Open()
Dim myDate As Date
myDate = "9/16/06"
If Date <= myDate Then
MsgBox "Bitte neue Preisliste verwenden"
'// Code zum sperren der Tabelle
End If
End Sub

Den Code ins Modul "DieseArbeitsmappe" (oder so aehnlich, ich hab nur ein englisches System...) kopieren, und es wird jedesmal ausgefuehrt wenn die Datei geoeffnet wird. Mach Dir aber genaue Gedanken was Du damit dann eigentlich machen willst: unter welchen Bedingungen soll die Meldung nicht mehr angezeigt werden, wann ist der naechste Termin wann sie wieder erscheinen soll, ... Dieser Code bringt Dich dabei nur ein kleines Stueckchen weiter.
Schoene Gruesse
Stefan Br.
Anzeige
AW: Makro zu bestimmter Zeit ausführen
16.09.2006 16:45:24
astis
Hey super vielen Dank ,das bringt mich weiter !
;

Forumthreads zu verwandten Themen

Anzeige
Anzeige
Anzeige
Anzeige
Anzeige

Infobox / Tutorial

Makro zu bestimmter Zeit ausführen in Excel


Schritt-für-Schritt-Anleitung

Um ein Makro in Excel zu einem bestimmten Datum auszuführen, kannst du den folgenden VBA-Code verwenden. Dieser Code überprüft das aktuelle Datum und führt eine Aktion aus, wenn das Datum erreicht ist.

  1. Öffne Excel und drücke ALT + F11, um den VBA-Editor zu öffnen.

  2. Klicke im Projekt-Explorer mit der rechten Maustaste auf "DieseArbeitsmappe" und wähle "Code anzeigen".

  3. Füge den folgenden VBA-Code ein:

    Private Sub Workbook_Open()
       Dim myDate As Date
       myDate = "01.10.2023" ' Setze hier das gewünschte Datum
       If Date >= myDate Then
           MsgBox "Bitte neue Preisliste verwenden"
           ' Hier kannst du den Code zum Sperren der Tabelle einfügen
       End If
    End Sub
  4. Schließe den VBA-Editor und speichere die Datei als Makro-fähige Excel-Datei (*.xlsm).

  5. Jedes Mal, wenn du die Datei öffnest, wird das Makro ausgeführt und überprüft, ob das aktuelle Datum erreicht ist.


Häufige Fehler und Lösungen

  • Fehler: Das Makro wird nicht ausgeführt.

    • Stelle sicher, dass die Datei als .xlsm gespeichert ist und Makros aktiviert sind.
  • Fehler: Datum wird nicht korrekt erkannt.

    • Stelle sicher, dass das Datum im richtigen Format eingegeben wurde. In Deutschland ist das Format TT.MM.JJJJ.

Alternative Methoden

Wenn du das Makro nicht an einem bestimmten Datum, sondern in regelmäßigen Abständen ausführen möchtest, kannst du den Code von Renner anpassen.

Hier ist ein einfaches Beispiel, um eine Nachricht alle 30 Minuten anzuzeigen.

  1. Füge diesen Code in ein Modul ein:

    Private t As Boolean
    
    Sub starten()
       t = True
       zeit = Time + TimeSerial(0, 30, 0) ' Intervall auf 30 Minuten setzen
       Application.OnTime zeit, "generate_meldung"
    End Sub
    
    Sub generate_meldung()
       MsgBox "Es ist Zeit etwas zu erledigen!!"
       If t = True Then starten
    End Sub
    
    Sub beenden()
       t = False
    End Sub

Praktische Beispiele

Ein konkretes Beispiel für die Verwendung des Codes ist das Sperren einer Tabelle. Hier ist ein Beispiel, wie du das Makro anpassen kannst, um eine Tabelle zu sperren:

If Date >= myDate Then
    MsgBox "Bitte neue Preisliste verwenden"
    Sheets("Tabelle1").Protect Password:="deinPasswort" ' Tabelle schützen
End If

Tipps für Profis

  • Überlege dir, welche Bedingungen du definieren möchtest, damit die Meldung nicht mehr angezeigt wird.
  • Teste den Code gründlich, um sicherzustellen, dass er in verschiedenen Szenarien funktioniert.
  • Halte deine Makros in einem separaten Modul organisiert, um die Übersichtlichkeit zu erhöhen.

FAQ: Häufige Fragen

1. Wie kann ich das Makro täglich automatisch ausführen lassen? Du kannst den Code im Workbook_Open()-Ereignis platzieren, damit es bei jedem Öffnen der Datei ausgeführt wird.

2. Was passiert, wenn ich die Datei schließe, bevor das Datum erreicht ist? Das Makro wird nicht ausgeführt, bis die Datei geöffnet wird. Es wird nur beim Öffnen der Arbeitsmappe überprüft.

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Entdecke mehr
Finde genau, was du suchst

Die erweiterte Suchfunktion hilft dir, gezielt die besten Antworten zu finden

Suche nach den besten Antworten
Unsere beliebtesten Threads

Entdecke unsere meistgeklickten Beiträge in der Google Suche

Top 100 Threads jetzt ansehen
Anzeige