Hallo,
vorweg: ich bin kein VBA-Experte. Mein Code ist "ergoogelt" und via trial and error entstanden. Bitte steinigt mich nicht.
Ich habe eine Datei mit Excel 2013 erstellt und dort einen VBA-Code eingefügt, der bewirkt, dass der Inhalt der Haupttabelle (Sheet1) auf die Sheets 3-8 kopiert wird und dann auf jedem Sheet nach unterschiedlichen Kriterien automatisch gefiltert wird. Keine Ahnung, ob das "schön" war, aber es hat eigentlich ganz gut funktioniert. Im Zuge von Corona musste ich ins HomeOffice und habe dort an der Tabelle weitergearbeitet, allerdings zunächst mit OpenOffice und dann mit LibreOffice (ich musste leider verschiedene PCs nutzen). Den VBA-Code habe ich dort ignoriert, weil es erstmal nur um das Ergänzen von Daten ging. Nach der Rückkehr ins Büro habe ich gebetet, dass die Rückkehr zu Excel gut funktioniert und war auch erst zufrieden. Der Code war verschwunden, aber die Daten ansonsten alle sauber, also habe ich weitergearbeitet und mir gedacht, dass ich den Code wieder einfüge, wenn ich dafür Zeit habe. Nach einigen Tagen an denen ich bereits mit der Datei gearbeitet hatte (mehrmals geöffnet, mehrmals gespeichert) erhielt ich dann plötzlich beim Öffnen immer die Meldung "Wir haben ein Problem bei einigen Inhalten in "Dateiname.xlsm" erkannt. Sollen wir so viel wie möglich wiederherstellen? Wenn Sie der Quelle dieser Arbeitsmappe vertrauen, klicken Sie auf 'Ja'". Wenn ich Ja drücke öffnet sich die Datei und ich erhalte die Meldung, dass Tabelle 7 repariert wurde. Drücke ich auf Nein, öffnet sich die Datei nicht. Außerdem kann ich seitdem nicht mehr direkt speichern, sondern werde beim Klick auf die Diskette zu "Speichern Unter" weitergeleitet. Das Überschreiben der Datei wird mir dann aber erlaubt.
So, ich dachte das Problem liegt darin, dass vllt doch noch irgendwo ein Makro ist, das jetzt nicht mehr funktioniert oder dass die Datei als .xlsm abgespeichert wird ohne Makros. Also hab ich mich hingesetzt und den Code wieder eingefügt (exakt so wie er in einer alten und funktionierenden Version drin ist). Die Fehlermeldung beim Öffnen taucht aber weiterhin auf, ebenso dass ich nicht einfach direkt speichern kann. Zusätzlich erhalte ich jetzt den Laufzeitfehler 91 (Objektvariable oder With-Blockvariable nicht festgelegt), wenn ich in meiner Haupttabelle etwas ändere. Der Debugger bringt mich auf den Code in der Haupttabelle (Sheet 1), auf die Zeile, die sich auf Sheet 8 bezieht.
Ich verstehe weder wieso meine Datei auf einmal "kaputt" ging, nachdem ich bereits wieder von den anderen Formaten auf Excel zurückgewechselt hatte (direkt nach dem Wechsel hätte ich es verstanden) noch warum dieser Laufzeitfehler auftaucht.
Vielleicht erbarmt sich jemand eines VBA-Fremden?
Vielen Dank schonmal im Voraus!
Sheet1:
Private Sub Worksheet_Change(ByVal Target As Range)
Sheets("A - Ausstellungen 1786-1892").AutoFilter.ApplyFilter
Sheets("B - Große Berliner Kunstausst.").AutoFilter.ApplyFilter
Sheets("C - Frühjahrs-Herbstausst.").AutoFilter.ApplyFilter
Sheets("D - Sonderausstellungen").AutoFilter.ApplyFilter
Sheets("E - Chronik").AutoFilter.ApplyFilter
Sheets("F - Fremde Ausstellungen").AutoFilter.ApplyFilter
End Sub
Sheet 3-8
Sub TextToURL()
Dim rngCell As Range
For Each rngCell In ActiveSheet.UsedRange
If InStr(rngCell, "https://") > 0 Or InStr(rngCell, "http://") > 0 Then
rngCell.Hyperlinks.Add Anchor:=rngCell, Address:=rngCell.Text
End If
Next
End Sub
|