Laufzeitfehler 9
21.01.2026 00:11:14
Daniel Weiss
du hast mir vor einiger Zeit beim Thema "Balkenfarbe im Diagramm fixieren" geholfen (dieser Beitrag ist bereits geschlossen, ich kann darauf nicht mehr antworten). Gestern hatte ich einen Absturz im Excel bei den Seitenansicht-Einstellungen, seither habe ich folgendes Problem:
Ich habe immer 2 Excel-Dateien offen (Finanzen.xlsm und Auto.xlsm), beide haben u.a. ein Makro, dass sich die Werte alle Minuten aktualisieren. Die Auto-Datei hat dein Makro drin, mit dem Zusatz, dass es sich auch alle Minuten aktualisiert und die Diagrammfarben sich somit richtigstellen.
Seit dem Absturz verhält es sich wie folgt:
Wenn ich in der Auto.xlsm bin, funktioniert alles bestens mit der Aktualisierung, alle 1 Min wird aktualisiert.
Sobald ich aber in der Finanzen.xlsm bin, dann erhalte ich beim automatischen minütlichen Ausführen des Farben-Makros eine Laufzeitfehler 9 Fehlermeldung, beim Debuggen wird die unten fett markierte Zeile angeführt. Ich habe im Makro nichts verändert, außer damals den Namen in "Farben" umbenannt und die minütliche Aktualisierung hinzugefügt.
Das Makro lief seit 1 Monat problemlos, unabhängig in welcher Datei ich gerade arbeitete, aber jetzt kommt der Laufzeitfehler. Ich bin mit meinem Wissen am Ende und finde keinen Fehler...
Ich vermute, er findet in das Tabellenblatt "Übersicht", in dem das Makro ausgeführt werden soll, nicht in Finanzen - aber es war ja bisher auch kein Vermerk, dass es in "Auto" ausgeführt wird?
kannst du mir bitte nochmal helfen?
Danke!!!
Sub Farben()
Dim chrDia As ChartObject
Dim intPunkt As Integer
Dim rngFarbe As Range
Dim strBereich As String
Dim arrXWerte()
For Each chrDia In Worksheets("Übersicht").ChartObjects
arrXWerte = chrDia.Chart.SeriesCollection(1).XValues
strBereich = Split(chrDia.Chart.SeriesCollection(1).Formula, ",")(1)
chrDia.Chart.SeriesCollection(1).Format.Fill.Visible = msoTrue
For intPunkt = 1 To chrDia.Chart.SeriesCollection(1).Points.Count
Set rngFarbe = Range(strBereich).Find(arrXWerte(intPunkt), lookat:=xlWhole, LookIn:=xlValues)
If Not rngFarbe Is Nothing Then chrDia.Chart.SeriesCollection(1).Points(intPunkt).Interior.Color = rngFarbe.Interior.Color
Next intPunkt
Next chrDia
Application.OnTime Now + TimeValue("00:01:00"), "Farben"
End Sub
Anzeige