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

Application.OnTime läuft auch bei anderen Dateien

Application.OnTime läuft auch bei anderen Dateien
Roland
Hallo,
Durch eine Steuerelement angestupst wird meine Datei alle 15 Minuten gespeichert.
Das Modul sieht so aus:
Sub Makro1()
On Error Resume Next
Application.OnTime EarliestTime:=datA, Procedure:="Makro2", Schedule:=False
datA = Now + CDate("0:15:00")                           ' Hier die Zeit einstellen
Application.OnTime datA, Procedure:="Makro2"
End Sub
Sub Makro2()
Call Speichern1
Call Makro1
End Sub
In Speichern1 wird nun die Datei unter dem Namen eines Zellinhalts gespeichert.
Nun das Problem:
Die Routiene läuft auch, wenn eine anderes Excelfile aktiv ist, jedoch nur in dieser (falschen) Datei, obwohl hier gar kein Modul für das Speichern programmiert ist.
So kommt es vor, dass Dateien unter dem falschen Namen gespeichert werden und dass die eigentliche Datei gar nicht gepeichert wird.
Wie kann ich dies verhindern?
Besten Dank
Roland

3
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Benutzer
Anzeige
AW: Application.OnTime läuft auch bei anderen Dateien
06.11.2009 02:22:33
fcs
Hallo Roland,
das Problem liegt wahrscheinlich in der Prozedur "Speichern1".
Hier darf dann keine Zeile stehen wie:
  ActiveWorkbook.SaveAs Filename:="C:\test\XYZ.xls"
'oder
ActiveWorkbook.SaveCopyAs Filename:="C:\test\XYZ.xls"
' Hier muss mit ThisWorkbook gearbeitet werden. Also z.B.
ThisWorkbook.SaveAs Filename:="C:\test\XYZ.xls"
'oder
ThisWorkbook.SaveCopyAs Filename:="C:\test\XYZ.xls"

Dann bezieht sich die Speichern-Aktion auf die Datei in der das Makro gespeichert ist und nicht auf die momentan aktive Arbeitsmappe.
Gruß
Franz
Anzeige
AW: Application.OnTime läuft auch bei anderen Dateien
06.11.2009 12:21:57
Roland
Danke für die Antwort.
Ich dies tatsächlich übersehen und nun den Speicherbefehl zu "ThisWorkbook" geändert.
Nun kommt leider dieser Fehler.
Userbild
Wie kann ich den Umgehen?
Gruß
Roland
AW: Application.OnTime läuft auch bei anderen Dateien
06.11.2009 12:50:52
fcs
Hallo Roland,
wahrscheinlich gibt es auch beim Generieren des Dateinamens das Problem, dass das Makro die Informationen aus dem aktiven Tabellenblatt holt, statt aus ThisWorkbook. Du muss die Objekte, aus denen das Makro Daten holen soll in diesem Fall vollständig beschreiben.
Auf jeden Fall dürfen die in der Fehlermeldung angezeigten Zeichen im Dateinamen nicht vorkommen bzw. müssen durch andere Zeichen ersetzt werden (z.B: _ oder Leerzeichen)
Gruß
Franz
Das Speichern-Makro sollte etwa folgende Struktur haben, damit Excel die Informationen an den richtigen Stellen ausliest. Den Parameter "FileFormat" kannst du auch weglassen, wenn du im Standardformat speichern willst..
Sub Speichern1()
Dim wb As Workbook, wks As Worksheet
Dim sDateiname As String
Set wb = ThisWorkbook
Set wks = wb.Worksheets("Tabelle1") 'Tabelle mit Zelle(n) zum Erzeugen des Dateinamens
sDateiname = ThisWorkbook.Path & Application.PathSeparator & wks.Range("B2")
Application.DisplayAlerts = False
wb.SaveAs Filename:=sDateiname, FileFormat:=-4143 '-4143=xlWorkbookNormal
Application.DisplayAlerts = True
End Sub

Anzeige

335 Forumthreads zu ähnlichen Themen

Anzeige
Anzeige
Anzeige
Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige