ich habe in den letzten 2 Tagen eine Auswertung erstellt.
Die Datei setzt sich aus 20 Daten-Tabellenblättern mit jeweils ca 500 Datensätzen zusammen.
In de Tabellenblatt Auswertung wird mit Formeln gearbeitet (normale Verlinkungen innerhalb der Datei, Summen, Mittelwert etc. also nichts besonderes).
Ich habe die Auswertung soweit abgeschlossen und habe sie abgespeichert. Nach der Mittagspause wollte ich Änderungen vornehmen, erhielt aber bei jedem Versuch zu speichern folgende Fehlermeldung:
"Fehler beim Speichern von XXX.xlsm. Durch Entfernen oder Reparieren einiger Features kann die Datei von Microsoft Excel möglicherweise gespeichert werden. Klicken Sie auf "Weiter", um die Reparatur in einer neuen Datei auszuführen. Klicken Sie auf Abbrechen, um den Speichervorgang für die Datei abzubrechen.
Zur Bearbeitung der Datei habe ich ein Makro benutzt, welches kopieren - einfügen Aufgaben übernimmt.Das sollte eigentlich keinen großen Einfluss auf die Datei haben, meine Fehlermeldung entsteht aber anscheinend durch VBA weshalb ich den Code hier poste :
Sub auswerten()
Dim tbquelle As Worksheet
Dim tbziel As Worksheet
Dim wb As Workbook
Dim intLetzteZeile1, intLetzteZeile2 As Integer
Dim strKundennummer As String
Set wb = ThisWorkbook
Set tbquelle = wb.Worksheets("WorksheetName1")
Set tbziel = wb.Worksheets("WorksheetName2")
intLetzteZeile1 = tbquelle.Cells(Rows.Count, 1).End(xlUp).Row
intLetzteZeile2 = tbziel.Cells(Rows.Count, 1).End(xlUp).Row
For i = 2 To intLetzteZeile1
strKundennummer = tbquelle.Range("A" & i).Value
For j = 2 To intLetzteZeile2
If strKundennummer = tbziel.Range("A" & j).Value Then
tbquelle.Range("H" & i).Copy
If tbziel.Range("K" & j).Value = "" Then
tbziel.Range("K" & j).PasteSpecial Paste:=xlPasteValues
ElseIf tbziel.Range("L" & j).Value = "" Then
tbziel.Range("L" & j).PasteSpecial Paste:=xlPasteValues
ElseIf tbziel.Range("M" & j).Value = "" Then
tbziel.Range("M" & j).PasteSpecial Paste:=xlPasteValues
ElseIf tbziel.Range("N" & j).Value = "" Then
tbziel.Range("N" & j).PasteSpecial Paste:=xlPasteValues
ElseIf tbziel.Range("O" & j).Value = "" Then
tbziel.Range("O" & j).PasteSpecial Paste:=xlPasteValues
ElseIf tbziel.Range("P" & j).Value = "" Then
tbziel.Range("P" & j).PasteSpecial Paste:=xlPasteValues
Else
tbziel.Range("Q" & j).PasteSpecial Paste:=xlPasteValues
End If
End If
Next
Next
Set wb = Nothing
Set tbquelle = Nothing
Set tbziel = Nothing
End Sub
Meine Suche hat folgende Varianten ergeben, welche ich alle erfolglos getestet habe:
- Tabellenblätter in neue Arbeitsmappe kopieren => Fehlermeldung "Modul nicht gefunden" und Excel hängt sich auf
- Makros entfernen und dann speichern (selbe Fehlermeldung wie zu Beginn, habe das Modul entfernt und alle Tabellenblätter nach Code durchsucht)
- Als anderes Format speichern
- Reparieren Funktion nutzen und speichern
Wenn ich versuche die Datei reparieren zu lassen erhalte ich folgende Fehlermeldung:
error055480_01.xml Fehler in Datei 'XXX.xlsm' Die Datei war so stark beschädigt, dass sie nicht repariert werden konnte. Es wurde versucht, die Formeln und Werte zu speichern. Einige Daten sind jedoch möglicherweise verloren gegangen oder beschädigt worden.
Das Makro brauche ich nicht mehr, daher kann es entfernt werden.
Habt Ihr eine Idee wie ich wieder eine speicherbare Datei aufbauen kann um auf meine Auswertung zugreifen zu können?
Vielen Dank im Voraus
Viele Grüße
Robert