Makro schläft ein
#1
Hallo zusammen,

ich habe mal wieder ein merkwürdiges Problem.

Im Rahmen eines größeren Makros habe ich folgenden Code zum Speichern der Datei:
Code:
Public Sub A_Speicherung_DatenNeu()

'Application.DisplayAlerts = False
Application.EnableEvents = False

Worksheets("Hilfsdaten").Cells(3, 1) = Date
ActiveWorkbook.Save
   
Application.EnableEvents = True
'Application.DisplayAlerts = True

End Sub

Seit geraumer Zeit (zuvor ist das Makro über ca. 5 Jahre problemlos gelaufen) schläft das Makro beim Speichern ein, soll heißen es bleibt in der Statusanzeige des Speicherns stehen und zuckt nicht mehr. Erst nach Drücken auf "Abbrechen" läuft das Makro wie es soll weiter.
Die Datei wird aber wie gewünscht vollständig gespeichert (Speicherzeitpunkt passt zum Start des Makros, auch wenn erst Stunden später auf "Abbrechen" gedrückt wird).
Natürlich passiert der Fehler nicht immer sondern nur alle paar Tage.

Ich hatte auf einen Fehler spekuliert, der aufgrund des Ausschaltens der Fehlermeldung nicht aufpoppt, aber auch nach dem Auskommentieren ist der Fehler ohne Fehlermeldung heute wieder aufgetreten.

Das ActiveWorkbook ist nicht gleich ThisWorkbook und hat eine Größe von ca. 700KB und liegt auf einem Server-Laufwerk.

Kennt irgendjemand dieses Problem?
Was tue ich dagegen?

Vielen Dank für Eure Hilfe,
Lutz
Antworten Top
#2
Zitat:liegt auf einem Server-Laufwerk.

Wird dir der Zugang verweigert ?
Zum übersetzen von Excel Formeln:

http://dolf.trieschnigg.nl/excel/index.p...gids=en+de
Antworten Top
#3
Hallo snb,

das kann ich nicht sagen, da ich zur Zeit des Makrostarts und des Problems nicht im Büro bin (das Makro läuft automatisch morgens um 6.00Uhr).
Offensichtlich kann ich die Datei ohne Schreibschutz öffnen (sonst hätte ich ja am oberen Rand eine gelbe Meldung). Und in anderen Fällen bekomme ich eine Fehlermeldung, wenn die zu speichernde Datei durch jemanden anders geöffnet ist.
Und das Speichern funktioniert ja auch (die Datei zeigt im Explorer ein Speicherdatum von ca. 6:05Uhr), nur der Statusbalken verschwindet nicht und blockiert damit das Makro.

Im selben Ablauf starten nacheinander 4 Makros, die verschiedene Abfragen im SAP ausführen. Alle 4 greifen auf Dateien auf demselben Server zu.
Die ersten drei laufen einwandfrei, nur dieses eine macht neuerdings Probleme. Der Code der übrigen drei ist quasi gleich:
Code:
Private Sub A_Sicherung()

Application.DisplayAlerts = False
Application.EnableEvents = False

wkbAusgabe.Save
wkbAusgabe.SaveAs strPfadProd & "\" & strAusgabe
wkbAusgabe.Close

Application.EnableEvents = True
Application.DisplayAlerts = True

End Sub

Kann ich an irgendeinem Punkt auch noch Stunden nach dem eigentlichen Fehler sehen, ob der Zugriff verweigert wurde?
Kann ich den Zugriff durch irgendeinen Code im Vorfeld prüfen?


Gruß,
Lutz
Antworten Top
#4
Ich würde bevorzügen:

Aber woher die Inhalt von die Varabelen strPfadProd & "\" & strAusgabe
Hast du Zugriff auf strPfadProd & "\"   ??

Code:
Private Sub A_Sicherung()
  Application.DisplayAlerts = False
  Application.EnableEvents = False

  with wkbAusgabe
    .Save
    .savecopyAs strPfadProd & "\" & strAusgabe
  end with

  Application.EnableEvents = True
  Application.DisplayAlerts = True
End Sub
Zum übersetzen von Excel Formeln:

http://dolf.trieschnigg.nl/excel/index.p...gids=en+de
Antworten Top
#5
Hallo snb,

ich würde heute auch die With-Variante nehmen (Makro ist schon ein wenig älter....), aber nachdem alle den gleichen Aufbau haben, kann es ja nicht das Problem sein, oder?

Bei den dauerhaft funktionierenden Makros werden die Pfade und Namen vorher als String festgelegt:
Code:
strPfadProd = "G:\Produktion\Produktionsreporting"
strAusgabe = "Reporting Neu.xlsx"
Hier habe ich Zugriff auf strPfadProd.


Beim fehlerhaften Makro wird die Datei über folgenden Code geöffnet und das fehlerhafte Makro gestartet:
Code:
Set wkbMakro = Workbooks.Open(strPlanungslistePfad & "\" & strPlanungslisteMakro)
Application.Run "'" & wkbMakro.Name & "'!Modul1.PlanungsListe"
wkbMakro.Close SaveChanges:=False
mit 
Code:
strPlanungslistePfad = "G:\Produktionsplanung\"
strPlanungslisteMakro = "Neue PlanungsListe.xlsm"
(ich sehe gerade den doppelten "\", der aber bei allen 4 Makros so drinsteht...)

Über ActiveWorkbook wird die korrekte Datei angesprochen (sonst wäre sie ja nicht vorm Einschlafen korrekt gespeichert worden).
Auch hier habe ich Zugriff auf strPlanungslistePfad (sonst hätte ich ja bereits beim Öffnen ein Problem).

Gruß,
Lutz
Antworten Top
#6
Hallo Lutz,

wird die Datei mit dem Programm öfters mal gespeichert? Eventuell hat sich darin was verklemmt? Dann könntest Du mal Makros usw. exportieren oder rauskopieren, die Datei als xlsx speichern, Excel beenden und anschließend die Datei mit den Makros neu aufsetzen.
.      \\\|///      Hoffe, geholfen zu haben.
       ( ô ô )      Grüße, André aus G in T  
  ooO-(_)-Ooo    (Excel 97-2019+365)
Antworten Top
#7
Hallo schauan,

habe ich mal versucht...
Erster Probelauf hat funktioniert. Mal sehen, ob es auch weiterhin jeden früh funktioniert. Ist ja leider kein dauerhaft auftretender Fehler...

Gruß,
Lutz
Antworten Top
#8
... ich hatte bei einigen Projekten auch ab und zu unerklärliche Fehler. Ob das dann manchmal an "Netzwerkflackern" beim Speichern durch die Anwender lag oder auch, wenn ich viel programmiert hatte, sei mal dahingestellt, war aber naheliegend.
Auf jeden Fall hatte so was geholfen - und auch die Trennung von Programm und Daten. Programm hab ja normalerweise nur ich als Programmierer gespeichert, im Gegensatz zu den Anwender- bzw. Anwendungsdaten.
.      \\\|///      Hoffe, geholfen zu haben.
       ( ô ô )      Grüße, André aus G in T  
  ooO-(_)-Ooo    (Excel 97-2019+365)
Antworten Top


Gehe zu:


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