Microsoft Excel

Herbers Excel/VBA-Archiv

Informationen und Beispiele zum Thema MsgBox
BildScreenshot zu MsgBox MsgBox-Seite mit Beispielarbeitsmappe aufrufen

Excel stürzt nach save.as ab | Herbers Excel-Forum


Betrifft: Excel stürzt nach save.as ab von: Michael
Geschrieben am: 05.01.2010 09:10:24

Hallo allerseits,

Erstmal noch ein schönes neues Jahr

ich habe folgenden Code geschrieben. Dabei soll die geöffnete Datei mit anderem Namen in ein anderes Verzeichnis gespeichert werden und dann nochmal in dem aktuellen Verzeichnis mit aktuellem Namen.
Nach dem Code stürzt Excel reproduzierbar jedesmal nach 1 Sec Bedenkzeit ab.

Hier mal der Code:
Ist nicht so anspruchsvoll :-)
Der Code steht in "Dieser Arbeitsmappe"

Private Sub Workbook_BeforeSave(ByVal SaveAsUI As Boolean, Cancel As Boolean)
Dim PFAD, aPFAD As String
Dim fDatei, aDatei As String
Dim JN As String


PFAD = "X:\GROUPS\DAT\Dienstpläne\2010\Aktuell"
fDatei = "\Schichtplan_test.xls"

aPFAD = ThisWorkbook.Path
aDatei = ThisWorkbook.Name

JN = MsgBox("Soll die Datei auch in den Aktuellordner" & vbLf & "gespeichert werden?", vbYesNo)
If JN = 7 Then ActiveWorkbook.Save: Exit Sub
Application.EnableEvents = False

ActiveWorkbook.SaveAs Filename:=PFAD & fDatei
ActiveWorkbook.SaveAs Filename:=aPFAD & "\test" & aDatei
Application.EnableEvents = True

End Sub


  

Betrifft: versuch mal und ... von: Tino
Geschrieben am: 05.01.2010 11:03:10

Hallo,
mach mal ganz oben als erstes nach der Deklarierung ein Cancel = True
Application.EnableEvents = False würde ich vor die If stellen und im True Part
wieder auf True setzen vor Exit Sub.

Habe Deinen Code aber nicht getestet.


Gruß Tino


  

Betrifft: AW: versuch mal und ... von: Michael
Geschrieben am: 05.01.2010 12:57:51

Danke hat geklappt das .EnableEvents = false wollte ich auch noch dahin packen, doch waren die Änderungen nach dem Absturz weg.
Es hat vermutlich an dem Cancel = true gelegen!
Was bewirkt denn das genau??

Gruß
Michael


  

Betrifft: dies bewirkt,... von: Tino
Geschrieben am: 05.01.2010 13:16:57

Hallo,
das dieses angestoßene speichern abgebrochen wird,
sonst wird beim beenden des Makros nochmal gespeichert.
Ich sehe nur noch das Dein EnableEvents an der falschen Position sitzt,
wenn Du auf Nein klickst in der Msgbox, wird das Event nochmal angestoßen und durch Cancel wieder abgebrochen, aber ich denke dieses Speichernevent soll nicht nochmal aufgerufen werden.

Gruß Tino


  

Betrifft: AW: dies bewirkt,... von: Michael
Geschrieben am: 05.01.2010 13:22:24

Hallo Tino,
das EnableEvent habe ich ja angepasst!

Application.EnableEvents = False
If JN = 7 Then ActiveWorkbook.Save: Application.EnableEvents = True: Exit Sub

ActiveWorkbook.SaveAs Filename:=PFAD & fDatei
ActiveWorkbook.SaveAs Filename:=aPFAD & aDatei

Application.EnableEvents = True
End Sub

Nochmals Danke
Michael