Warum stürzt Excel beim Speichern ab?

Nach Ausführen dieses Makros stürzt mir Excel ab. Ich kann das Makro ausführen, erhalte eine Arbeitsmappe mit den gewünschten Datensätzen, nur wenn ich sie speichern möchte stürzt Excel ab. Die Datensätze sind komplett nicht größer als 3 MB

Dim Geschwindigkeit As Integer
For Geschwindigkeit = 20 To 100 Step 20

Dim Leistung As Integer
For Leistung = 25 To 125

Dim Zaehler As Integer
For Zaehler = 1 To 5

If Dir(„E:…\POM-“ & Geschwindigkeit & „-“ & Leistung & „_“ & Zaehler & „.dds“) „“ Then
Application.ScreenUpdating = False

Dateiname = „E:…\POM-“ & Geschwindigkeit & „-“ & Leistung & „_“ & Zaehler & „.xlsm“

Set xlWB = Workbooks.Open(Dateiname)

Sheets(„POM-“ & Geschwindigkeit & „-“ & Leistung & „_“ & Zaehler).Select
Sheets(„POM-“ & Geschwindigkeit & „-“ & Leistung & „_“ & Zaehler).Move After:=Workbooks(„POM.xlsm“).Sheets(1)

xlWB.Close , savechanges:=False

End If

Next
Next
Next

End Sub

Hallo,

ob das etwas mit Deinem Problem zu tun hat weiß ich nicht, weil ich nur VB kann, kein VBA, aber ich habe mal an Deinem Code geändert, was mich gestört hat. Eventuell stört es VB ja auch. :smile:

1.) Es gibt keinen Grund, eine Variable mehrfach hintereinander zu deklarieren. Die Deklarationen gehören alle zusammen an den Anfang der Prozedur.

2.) Man soll sich nie darauf verlassen, daß VB Programmierfehler richtig ausgleicht und immer richtig errät, was man gemeint hat. Gelegentlich irrt sich VB dabei nämlich auch schon mal. Wenn Du also den Wert der Schleife im Dateinamen verwenden willst, dann wandle besser die Zahl in einen String um.

Dann sieht Dein Code so aus.

Dim Dateiname As String
Dim Geschwindigkeit As Integer
Dim Leistung As Integer
Dim Zaehler As Integer

For Geschwindigkeit = 20 To 100 Step 20
 For Leistung = 25 To 125
 For Zaehler = 1 To 5
 If Dir("E:\....\POM-" & CStr(Geschwindigkeit) & "-" & CStr(Leistung) & "\_" & CStr(Zaehler) & ".dds") "" Then
 Application.ScreenUpdating = False
 Dateiname = "E:\....\POM-" & CStr(Geschwindigkeit) & "-" & CStr(Leistung) & "\_" & CStr(Zaehler) & ".xlsm"
 Set xlWB = Workbooks.Open(Dateiname)
 Sheets("POM-" & CStr(Geschwindigkeit) & "-" & CStr(Leistung) & "\_" & CStr(Zaehler)).Select
 Sheets("POM-" & CStr(Geschwindigkeit) & "-" & CStr(Leistung) & "\_" & CStr(Zaehler)).Move After:=Workbooks("POM.xlsm").Sheets(1)
 xlWB.Close , savechanges:=False
 End If
 Next
 Next
Next

Ob der aber läuft? Die Teile, die es nur in Excel gibt, in VB6 aber nicht, musste ich unverändert lassen, die verstehe ich nicht.

Gruß, Rainer

Hi Dustin,

Nach Ausführen dieses Makros stürzt mir Excel ab. Ich kann das
Makro ausführen, erhalte eine Arbeitsmappe mit den gewünschten
Datensätzen, nur wenn ich sie speichern möchte stürzt Excel
ab. Die Datensätze sind komplett nicht größer als 3 MB

ich mutmaße, du sprichst von XL2007, bitte beim nächsten Mal mitangeben.

Zur Klarstellung, das Makro läuft problemlos durch, erst wenn du manuell speichern willst ist Excel im Nirvana? Oder durch das makro stürzt Excel ab?

Und bitte eine komplette Sub posten, unter Einbeziehung dessen was Rainer sagte und Benutzung des pre-Tags, wird unterhalb des Eingabefensters erklärt.

Das macht es viel einfacher deinen problemcode nachzustellen.

Und benutze bitte „Option Explicit“ oberhalb deines Codes im Modul.

Was mir spontan auffällt ist das Komma in:

xlWB.Close , savechanges:=False

das gehört da nicht hin.

Gruß
Reinhard

Ob der aber läuft? Die Teile, die es nur in Excel gibt, in VB6
aber nicht, musste ich unverändert lassen, die verstehe ich
nicht.

Gruß, Rainer

Hallo Rainer

Dein Makro läuft genauso wie meins absolut durch, nur dein Programmierstil sieht bedeutend besser aus als meiner. Von der Arbeit her wird alles wie gewünscht erledigt. Ich erhalte meine Arbeitsmappe mit den Sheets, bloß speichern ist nicht möglich

Allerdings besteht auch hier das Problem. Beim Speichern (manuell) der Arbeitsmappe stürzt Excel ab. Es handelt sich um die 07er Version inklusiv des SP1. Aber auch auf anderen Rechnern und anderen Excelversionen passiert das. Es sind ungefähr 100 Versuchspunkte, die ich zusammenfassen möchte, deren Einzeldateien 27 kb groß sind.

Gruß,
Dustin

Hi Dustin,

kannst Du mal noch den Rest Deines Codes posten? Dann sieht sich Reinhard das an, wenn er Zeit hat und wird Dir sicher sagen können, warum Excel abstürzt.

Gruß, Rainer

Hallo Rainer,

viel mehr kommt da nicht mehr…aber hier das komplette nochmal:

Sub Zusammenfassung()

’ Zusammenfassung Makro

Dim Geschwindigkeit As Integer
For Geschwindigkeit = 20 To 100 Step 20

Dim Leistung As Integer
For Leistung = 25 To 50

Dim Zaehler As Integer
For Zaehler = 1 To 5

If Dir(„E:…\POM\POM-“ & Geschwindigkeit & „-“ & Leistung & „_“ & Zaehler & „.dds“) „“ Then
Application.ScreenUpdating = False

Dateiname = „E:…\POM\POM-“ & Geschwindigkeit & „-“ & Leistung & „_“ & Zaehler & „.xlsm“

Set xlWB = Workbooks.Open(Dateiname)

Sheets(„POM-“ & Geschwindigkeit & „-“ & Leistung & „_“ & Zaehler).Select
Sheets(„POM-“ & Geschwindigkeit & „-“ & Leistung & „_“ & Zaehler).Move After:=Workbooks(„POM.xlsm“).Sheets(1)

xlWB.Close savechanges:=False

End If

Next
Next
Next

End Sub

bzw. deine Variante:

Sub www()

Dim Dateiname As String
Dim Geschwindigkeit As Integer
Dim Leistung As Integer
Dim Zaehler As Integer

For Geschwindigkeit = 20 To 100 Step 20
For Leistung = 25 To 125
For Zaehler = 1 To 5
If Dir(„E:…\POM\POM-“ & CStr(Geschwindigkeit) & „-“ & CStr(Leistung) & „_“ & CStr(Zaehler) & „.xlsm“) „“ Then
Application.ScreenUpdating = False
Dateiname = „E:…\POM\POM-“ & CStr(Geschwindigkeit) & „-“ & CStr(Leistung) & „_“ & CStr(Zaehler) & „.xlsm“
Set xlWB = Workbooks.Open(Dateiname)
Sheets(„POM-“ & CStr(Geschwindigkeit) & „-“ & CStr(Leistung) & „_“ & CStr(Zaehler)).Select
Sheets(„POM-“ & CStr(Geschwindigkeit) & „-“ & CStr(Leistung) & „_“ & CStr(Zaehler)).Move After:=Workbooks(„POM.xlsm“).Sheets(1)
xlWB.Close , savechanges:=False
End If
Next
Next
Next

End Sub

vielen Dank für eure Mühen

Dustin

kannst Du mal noch den Rest Deines Codes posten? Dann sieht
sich Reinhard das an, wenn er Zeit hat und wird Dir sicher
sagen können, warum Excel abstürzt.

Hallo Rainer,
ich kann den Code testen, gut. Habe ich noch nicht gemacht weil ich erst nachfragte.
XL2007 habe ich nicht, deshalb kann ich kann nicht testen warum XL2007 beim manuellen Speichern, also Codeausführung ist beendet und es wird gespeichert, abstürzt.
Nur wenn meine XL-Versionen genauso abstürzen kann ich nachforschen, wenn sie aber nicht abstürzen, kann ich nichts machen.
Und, ich vermisse Feedback zu meiner Nachfrage.
Gruß
Reinhard

Hallo Reinhard,

XL2007 habe ich nicht, deshalb kann ich kann nicht testen
warum XL2007 beim manuellen Speichern, also Codeausführung ist
beendet und es wird gespeichert, abstürzt.
Nur wenn meine XL-Versionen genauso abstürzen kann ich
nachforschen, wenn sie aber nicht abstürzen, kann ich nichts
machen.
Und, ich vermisse Feedback zu meiner Nachfrage.

das steht nur in der falschen Zeile, als Antwort an mich.
Dustin schreibt:
Es handelt sich um die 07er Version inklusiv des SP1. Aber auch auf anderen Rechnern und anderen Excelversionen passiert das.
Das war der Vorgänger von 97, stimmt’s?

Gruß, Rainer

Hallo Rainer,

XL2007 habe ich nicht, deshalb kann ich kann nicht testen
warum XL2007 beim manuellen Speichern, also Codeausführung ist
beendet und es wird gespeichert, abstürzt.
Nur wenn meine XL-Versionen genauso abstürzen kann ich
nachforschen, wenn sie aber nicht abstürzen, kann ich nichts
machen.
Und, ich vermisse Feedback zu meiner Nachfrage.

das steht nur in der falschen Zeile, als Antwort an mich.
Dustin schreibt:
Es handelt sich um die 07er Version inklusiv des SP1.
Aber auch auf anderen Rechnern und anderen Excelversionen
passiert das.

ja, aber diese Information las ich erst vorhin und testen kann ich erst nachher.

Das war der Vorgänger von 97, stimmt’s?

? Xl97 kam so 1997 raus, XL2007 halt letzes Jahr.

Und zu SP, also Servicepack, ich bezeichne das als FS1, FS2 usw.
MS bringt eine Betaversion eines Programmes heraus, benennt es „Office 2007“, und läßt es durch die Kunden die das wohl glauben brauchen zu müßen testen, aufgrund der Reklamationen gibts dann SP1 bzw. FS1 (FlickSchusterei), danach SP2 usw. bis halt das gleiche Spiel mit Office2010 weitergeht.

Gruß
Reinhard

Hallo Reinhard,

? Xl97 kam so 1997 raus, XL2007 halt letzes Jahr.

ach daher die 07. Ich habe das als Office7 gelesen, das war so 1995/96.
Auf meinen Unterlagen zu Access steht noch ‚Access7‘. :smile:

Gruß, Rainer

Interessante Problemumgehung:

Anstatt im neuen 2007er Format zu arbeiten, habe ich die Makros ausgeführt und angewiesen im 97 - 03er Format zu speichern. Daraufhin konnte ich dann die komplette Arbeitsmappe ohne Probleme als *.xls speichern und anschließen dann sogar als *.xlsm, ohne das Excel abstürzt.