Dieses Forum nutzt Cookies
Dieses Forum verwendet Cookies, um deine Login-Informationen zu speichern, wenn du registriert bist, und deinen letzten Besuch, wenn du es nicht bist. Cookies sind kleine Textdokumente, die auf deinem Computer gespeichert werden. Die von diesem Forum gesetzten Cookies werden nur auf dieser Website verwendet und stellen kein Sicherheitsrisiko dar. Cookies aus diesem Forum speichern auch die spezifischen Themen, die du gelesen hast und wann du zum letzten Mal gelesen hast. Bitte bestätige, ob du diese Cookies akzeptierst oder ablehnst.

Ein Cookie wird in deinem Browser unabhängig von der Wahl gespeichert, um zu verhindern, dass dir diese Frage erneut gestellt wird. Du kannst deine Cookie-Einstellungen jederzeit über den Link in der Fußzeile ändern.

VBA Skript einmal am Tag automatisch ausführen
#1
Hallo an Alle,

in einer Excel Datei werden bestimmte Daten aktualisiert, wenn die Datei geöffnet wird. Wie könnte man dieses VBA einmal am Tag (z.B. um 23:55 Uhr) automatisch laufen lassen?  Der Rechner ist immer an und die Datei immer offen.

Vielen herzlichen Dank :)

Peter

(Diese Arbeitsmappe)

Private Sub Workbook_Open()

Dim dblSpalte As Double
Dim dteDatum As Date
Dim intZeile As Integer
dblSpalte = WorksheetFunction.Match(Worksheets("Monat").Range("L4"), Worksheets("Monat").Range("M4:AQ4"), 0) + 12
On Error GoTo Fehler
With Worksheets("Monat")
  If .ProtectContents = True Then .Unprotect "Passwort"
  For intZeile = 6 To 218
    .Cells(intZeile, dblSpalte) = .Cells(intZeile, "K")
  Next intZeile
.Protect "Passwort"
End With
MsgBox "Daten wurden aktualisiert!"
Exit Sub
Fehler:
Worksheets("Monat").Protect "Passwort"
MsgBox "Bei der Aktualisierung ist ein Fehler aufgetreten!"
End Sub


End Sub
Antworten Top
#2
Hi,

ich habe ein bestehendes Makro in einem Allgemeinen Modul so umgeschrieben, daß zu einer gewissen Zeit die Datei aktualisiert wird, teste mal ob es funktioniert. Evtl. das "Option Private Module" löschen.
Modul mdl_Timer
Option Explicit 
Option Private Module 
 
Global sTime As Date 
 
'Datei wird um 23:55 aktualisiert! 
'zugehöriger Aufruf in "DieseArbeitsmappe" 
 
Public Sub KillTimer() 
   On Error Resume Next 
   Application.OnTime sTime, "Aktualisieren", , False 
   On Error GoTo 0 
End Sub 
 
Public Sub SetTimer() 
   sTime = TimeValue("23:55:00") 
   Application.OnTime sTime, "Aktualisieren" 
End Sub 
 
Public Sub Aktualisieren() 
   Dim dblSpalte As Double 
   Dim dteDatum As Date 
   Dim intZeile As Integer 
   dblSpalte = WorksheetFunction.Match(Worksheets("Monat").Range("L4"), Worksheets("Monat").Range("M4:AQ4"), 0) + 12 
   On Error GoTo Fehler 
   With Worksheets("Monat") 
      If .ProtectContents = True Then .Unprotect "Passwort" 
      For intZeile = 6 To 218 
         .Cells(intZeile, dblSpalte) = .Cells(intZeile, "K") 
      Next intZeile 
      .Protect "Passwort" 
   End With 
   MsgBox "Daten wurden aktualisiert!" 
   Exit Sub 
Fehler: 
   Worksheets("Monat").Protect "Passwort" 
   MsgBox "Bei der Aktualisierung ist ein Fehler aufgetreten!" 
End Sub 

In "DieseArbeitsmappe":
Code:
Private Sub Workbook_Open()
   SetTimer    'siehe mdl_Timer
End Sub

Private Sub Workbook_BeforeClose(Cancel As Boolean)
   KillTimer   'siehe mdl_Timer
End Sub
Antworten Top


Gehe zu:


Benutzer, die gerade dieses Thema anschauen: 1 Gast/Gäste