Live-Forum - Die aktuellen Beiträge
Anzeige
Archiv - Navigation
1132to1136
Aktuelles Verzeichnis
Verzeichnis Index
Übersicht Verzeichnisse
Vorheriger Thread
Rückwärts Blättern
Nächster Thread
Vorwärts blättern
Anzeige
HERBERS
Excel-Forum (Archiv)
20+ Jahre Excel-Kompetenz: Von Anwendern, für Anwender
Inhaltsverzeichnis

Systemfehler &H80004005 (-2147467259) | Herbers Excel-Forum

Systemfehler &H80004005 (-2147467259)
04.02.2010 22:35:16
alex

Hallo.
Heute früh hatte ich in meiner Excel Datei folgenden Fehler. "Systemfehler &H80004005 (-2147467259) Unbekannter Fehler". Die Fehlermeldung trat immer beim Versuch zu Speichern auf. Nach dem ich diesen Fehler ca. 10 mal bestätigt hatte, brach Excel ab mit der Meldung "Datei konnte nicht gespeichert werden".
bei meinen Internet recherchen stieß ich auf das Euroumrechnungstool von Excel welches ich dann auch gleich löschte. Nur leider ohne Erfolg.
Im VBA Editor stieß ich dann auf eine defekte Userform die genau diesen Fehler verursachte. Als ich diese löschte funktionierte auch wieder die Arbeitsmappe korrekt.
Weiß jemand warum dieser fehler auftrat. Die Userform funktionierte gestern noch und meine Excelkenntnisse sind auch sehr bescheiden.
Ich kann mit diesem Fehlercode überhaupt nichts anfangen und ich habe angst das sich der fehler eventuel auch noch auf andere Userforms ausweitet, da 5 weitere Userforms von mir einen ähnlichen code benutzen.
gruß alex
code in Userform

Private Sub CommandButton1_Click()
Dim name As String
Dim filename As String
If TextBox2 = "" Then
MsgBox "bitte Objektnamen eingeben"
Exit Sub
End If
On Error Resume Next
If Netz = True Then
name = "DB Netz"
filename = "Netz"
Else
If Netz_Magdeburg = True Then
name = "Netz Magdeburg"
filename = "Netz Magdeburg"
Else
If NNB69 = True Or Energie = True Then
name = "Unterwerke"
filename = "Unterwerke"
Else
If Station_und_Service = True Then
name = "Station und Service"
filename = "S&S"
Else
If OM = True Then
name = "Objektmanagement"
filename = "OM"
Else
If Vertrieb = True Then
name = "DB Vertrieb"
filename = "Vertrieb"
Else
If SBahn = True Then
name = "S-Bahn"
filename = "S-Bahn"
Else
If Extern = False And TextBox1 = "" Then
MsgBox "bitte Betreiber Wählen"
Exit Sub
Else
If TextBox1 = "" Then
name = "Extern"
filename = "Extern"
Else
name = TextBox1
filename = "Extern"
End If
End If
End If
End If
End If
End If
End If
End If
End If
vorlage = ThisWorkbook.Path & "\mastervorlagen\"
With Workbooks.Open(vorlage & "Vorlage_Master_ERA.xls").Worksheets(1)
Range("C7").Value = name
Range("c11").Value = TextBox2
Range("j11").Value = TextBox3
Range("p11").Value = TextBox4
Range("j7").Value = TextBox5
Range("j9").Value = TextBox6
End With
Workbooks("Vorlage_Master_ERA.xls").SaveAs (ThisWorkbook.Path & "\ERA\" & filename & "\" &  _
TextBox2 & ".xls")
With ThisWorkbook.Sheets(filename)
Loletzte1 = IIf(IsEmpty(.Cells(.Rows.Count, 2)), .Cells(.Rows.Count, 2).End(xlUp).Row, . _
Rows.Count)
Loletzte2 = IIf(IsEmpty(.Cells(.Rows.Count, 4)), .Cells(.Rows.Count, 2).End(xlUp).Row, . _
Rows.Count)
Loletzte3 = IIf(IsEmpty(.Cells(.Rows.Count, 5)), .Cells(.Rows.Count, 2).End(xlUp).Row, . _
Rows.Count)
Loletzte4 = IIf(IsEmpty(.Cells(.Rows.Count, 6)), .Cells(.Rows.Count, 2).End(xlUp).Row, . _
Rows.Count)
.Range("b" & Loletzte1 + 1) = TextBox2
Range("b" & Loletzte1 + 1).xlLeft
.Range("d" & Loletzte2 + 1) = "ERA"
.Range("D" & Loletzte2 + 1).Font.ColorIndex = 12
.Range("e" & Loletzte3 + 1) = TextBox5 & " " & TextBox6
.Range("e" & Loletzte3 + 1).Font.ColorIndex = 12
ThisWorkbook.Sheets(filename).Activate
.Range("F4:F" & Loletzte4 + 1).Formula = Range("f4").Formula
End With
With ThisWorkbook.Sheets("Wartungsroute")
Loletzte1 = IIf(IsEmpty(.Cells(.Rows.Count, 1)), .Cells(.Rows.Count, 1).End(xlUp).Row, . _
Rows.Count)
Loletzte2 = IIf(IsEmpty(.Cells(.Rows.Count, 4)), .Cells(.Rows.Count, 1).End(xlUp).Row, . _
Rows.Count)
Loletzte3 = IIf(IsEmpty(.Cells(.Rows.Count, 5)), .Cells(.Rows.Count, 1).End(xlUp).Row, . _
Rows.Count)
Loletzte4 = IIf(IsEmpty(.Cells(.Rows.Count, 6)), .Cells(.Rows.Count, 1).End(xlUp).Row, . _
Rows.Count)
.Range("A" & Loletzte1 + 1) = TextBox2
.Range("A" & Loletzte1 + 1).xlLeft
.Range("D" & Loletzte2 + 1) = "ERA"
.Range("D" & Loletzte2 + 1).Font.ColorIndex = 9
.Range("B" & Loletzte4 + 1) = filename
End With
With ThisWorkbook.Sheets("Kontainer")
Loletzte1 = IIf(IsEmpty(.Cells(.Rows.Count, 4)), .Cells(.Rows.Count, 4).End(xlUp).Row, . _
Rows.Count)
Loletzte2 = IIf(IsEmpty(.Cells(.Rows.Count, 5)), .Cells(.Rows.Count, 4).End(xlUp).Row, . _
Rows.Count)
Loletzte3 = IIf(IsEmpty(.Cells(.Rows.Count, 1)), .Cells(.Rows.Count, 4).End(xlUp).Row, . _
Rows.Count)
Loletzte4 = IIf(IsEmpty(.Cells(.Rows.Count, 2)), .Cells(.Rows.Count, 4).End(xlUp).Row, . _
Rows.Count)
.Range("D" & Loletzte1 + 1) = TextBox2
.Range("D" & Loletzte1 + 1).xlLeft
.Range("E" & Loletzte2 + 1) = "ERA"
.Range("A" & Loletzte3 + 1) = TextBox3
.Range("B" & Loletzte4 + 1) = TextBox4
.Range("C" & Loletzte4 + 1) = filename
End With
Application.Run ("'" & ThisWorkbook.Path & "\ERA\" & filename & "\" & TextBox2 & ".xls" & "'! _
quartalswartung_schreiben")
Unload UserForm6
MsgBox "Bitte denkt daran noch das Objektdatenblatt auszufüllen, die Plankreuze zu setzen und  _
die Anlagen und Masteranlagen ID herauszusuchen!"
End Sub

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

Betreff
Datum
Anwender
Anzeige
AW: Beispiel Fehlerbehandlung
05.02.2010 07:19:58
fcs
Hallo Alex,
eine solche Fehlermeldung ist wohl für jeden unverständlich ausser für den Programmierer bei MS, der diesen Notausgang festgelegt hat.
Generell sollte man etwas vorsichtig mit der Anweisung
On Error Resume Next
umgehen.
Diese überdeckt ggf. kleine/große Programmierfehler. Auch wenn die Prozedur in deinem Userform normal gut durchläuft, so stolpert Excel doch an jedem Fehler und macht ggf. irgend etwas. Möglicherweise bleibt da irgendetwas in der Datei hängen, womit es dann Probleme gibt.
Warum hast du "On Error Resume Next" eingebaut?
In welchen Zeilen treten denn Fehler auf, wenn du diese Zeile wegläßt?
Du fügst ja sehr viele Pfade und Dateinamen aus Einzelteilen zusammen.
Hier sollte ggf. vor dem Speichern/Ausführen des Makrostarts geprüft werden, ob das Verzeichnis bzw. die Datei vorhanden ist und dann kontrolliert abgebrochen werden.
Mehrfach kommen Zeilen mit ".xlLeft" am Ende vor, wie

Range("b" & Loletzte1 + 1).xlLeft
Diese Zeilen kannst du löschen. Sie verursachen Fehler weil es die Methode "xlLeft" für Range-Objekte nicht gibt. Oder du muss die Anweisungen umschreiben, damit das passiert, was du möchtest.
Eine Fehlerbehandlung kann man etwa in der nachfolgenden Form aufbauen.
Falls Fehler gemeldet werden, dann kann man bei der Prozedurentwicklung die Zeile
On Error Goto Fehler
kurzzeitig deaktivieren, um beim nächsten Makrodurchlauf festzustellen in welcher Zeile das Problem auftritt und ggf. gezielt Gegenmassnahmen treffen.
Gruß
Franz
Private Sub Test()
'Variablendeklaration
'Sprunganweisung für Fehler
On Error GoTo Fehler
'auszuführenden Anweisungen
Range("A1").xlLeft
Resume01:
MsgBox "Fehler 438"
'auszuführenden Anweisungen
'Fehlerbehandlung
Err.Clear
Fehler:
With Err
Select Case .Number
Case 0 'kein Fehler
Case 99999 '
'ggf. Prüfungen machen und Korrekturanweisungen
Resume Resume01 'Ausführung an anderer Stelle fortsetzen
Case 999998 '
'Prüfungen machen und Korrekturanweisungen
Resume 'Ausführung wiederholen
Case 999999
Resume Next 'Fehler zeile überspringen
Case Else
MsgBox "Fehler-Nr.: " & .Number & vbLf & .Description
End Select
End With
'Variablen Aufräumen - Arrays auf 0 dimensionieren, Objekte = Nothing setzen
End Sub

Anzeige
AW: Beispiel Fehlerbehandlung
05.02.2010 09:41:37
Hajo_Zi
Hallo Franz,
warum ist der Beitrag offen?
Du hast doch eine Lösung vorgeschlagen, lasse doch den Fragesteller die Frage als offen kennzeichnen.
Man kann in diesem Forum offnen Beiträge nur rausnehmen durch einen neuen Beitrag, früher ging das einfacher.

AW: Beispiel Fehlerbehandlung
05.02.2010 14:51:38
alex
Hast recht das error resume next bruache ich garnicht...das stammt wohl noch aus den zeiten wo ich den code geschrieben habe um ihn stück für stück zu testen.
die zeile mit .xleft habe ich rausgelöscht. der code läuft ohne fehler durch.
gruß alex
Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige
Archiv - Verwandte Themen
Forumthread
Beiträge