Excel stürzt ab beim Speichern - Nur Warum?
Jürgen
Moin Moin,
ich verzweifel langsam an einer eigentlich total banalen Aufgabe... Es gibt eine Arbeitsmappe mit 3 Tabellen, in denen gelegentlich Einträge geändert werden. Das ganze ohne Formeln oder so, also ganz billig.
Da diese Datei von Leuten bearbeitet wird, denen kein manuelles Verschieben von Dateien usw. zuzumuten ist, wollte ich ein paar Zeilen VBA einsetzen, daß beim Speichern oder Schließen der Excel-Datei automatisch eine HTML-Datei mit den Inhalt der Tabellen erzeugt, damit die "publizierte" Version einfach via Webbrowser angezeigt werden kann.
Also habe ich unter "DieseArbeitsmappe" folgende Code-Zeilen hinterlegt:
Private Sub MakeHTML()
Dim DateiName As String, PfadName As String, TempStr As String, Counter As Integer
DateiName = "\\3HN25902\CTTIMCP\IM Special\Aufgabenübersicht.htm"
PfadName = "\\3HN25902\CTTIMCP\IM Special\Aufgabenübersicht-Dateien"
On Error Resume Next
Application.AlertBeforeOverwriting = False
Application.DisplayAlerts = False
Counter = 0
TempStr = Dir(DateiName, vbNormal)
If TempStr <> "" Then
Kill DateiName
End If
TempStr = Dir(PfadName, vbDirectory)
If TempStr <> "" Then
TempStr = Dir(PfadName + "\*.*", vbNormal)
While TempStr <> "" And Counter < 256
Kill PfadName + "\" + TempStr
TempStr = Dir(PfadName + "\*.*", vbNormal)
Counter = Counter + 1
Wend
RmDir PfadName
End If
ThisWorkbook.SaveAs Filename:=DateiName, FileFormat:=xlHtml, ReadOnlyRecommended:=False, _
CreateBackup:=False
Application.AlertBeforeOverwriting = True
Application.DisplayAlerts = True
On Error GoTo 0
End Sub
Private Sub Workbook_BeforeClose(Cancel As Boolean)
If Cancel = False Then
MakeHTML
End If
End Sub
Private Sub Workbook_BeforeSave(ByVal SaveAsUI As Boolean, Cancel As Boolean)
If Cancel = False And SaveAsUI = False Then
MakeHTML
End If
End Sub
Die Geschichte mit Counter dient nur zum Abfangen von Endlosschleifen, weil evtl. irgendein Dussel eine Datei gelockt hat. Im Normalfall läuft MakeHTML problemlos durch. Beende ich Excel, gibt es keinen Absturz. Wähle ich jedoch "Speichern" im Dateimenü, so kommt es zum Absturz, Excel beendet sich dann.
Das 2. Problem ist auch, daß der Befehl "ThisWorkbook.SaveAs ..." damit auch den "Lageort" der eigentlichen Excel-Datei verändert, d.h. alle gemachten Änderungen sind nicht mehr in der ursprünglichen XLS-Datei... auch nicht schön.
Wie kann ich diese Probleme umgehen? Mit "ObjectsPublish" kann ich immer nur ein Sheet zur Zeit abspeichern und bekomme auch nicht so eine tolle Reiter-Wahl unterhalb der dargestellten Browserfensters.
Jede Hilfe ist willkommen.
Danke & Gruß, Jürgen