Clever-Excel-Forum

Normale Version: VBA Farbe von Pfeil ändern
Du siehst gerade eine vereinfachte Darstellung unserer Inhalte. Normale Ansicht mit richtiger Formatierung.
Hallo liebes Clever-Excel Forum,

Ich möchte einen Entscheidungsbaum erstellen bei dem sich die Farbe der Pfeile automatisch ändern,
wenn z.B. in Zelle "A5" "ja" steht soll sich die Shapes "Pfeil_1" rot färben und "Pfeil_2" schwarz färben.
Ich bin bei der Suche auf einen Code gestoßen und habe ihn versucht auf meine Bedürfnisse um zu schreiben,
bekomme beim Kompilieren aber immer folgenden Fehler.

Fehler beim Kompilieren:

Deklaration der Prozedur entspricht nicht der Beschreibung
eines Ereignisses oder einer Prozedur mit dem selben Namen.

Der Debugger markiert immer die erste Zeiles des Codes im Blatt "Orientierungspfad"

Im Code meines Blattes "Orientierungspfad" steht:
Code:
Private Sub Worksheet_Change()
FarbePfeil
End Sub

In meinem Modul1 steht:
Code:
Sub FarbePfeil()
    If Orientierungspfad.Range("A5") = "ja" Then
        With Orientierungspfad.Shapes("Pfeil_1").Line
            .ForeColor.RGB = RGB(0, 0, 0)
        End With
        With Orientierungspfad.Shapes("Pfeil_2").Line
            .ForeColor.RGB = RGB(255, 0, 0)
        End With
    Else
        With Orientierungspfad.Shapes("Pfeil_1").Line
            .ForeColor.RGB = RGB(255, 0, 0)
        End With
        With Orientierungspfad.Shapes("Pfeil_2").Line
            .ForeColor.RGB = RGB(0, 0, 0)
        End With
    End If
End Sub
Hallo,

vermutlich hast Du den Codenamen des Blattes "Orientierungspfad" nicht in "Orientierungspfad" geändert. Entweder holst Du das nach oder schreibst im Code jeweils alternativ
If Worksheets("Orientierungspfad").Range("A5") = ...
Gruß Uwe
Hi,

Schau dir mal Worksheet_change an...
So geht Worksheet_Change nicht...
Kower danke für den Hinweis habe es direkt nachgeholt.

Mase danke auch für den Hinweis, habe jetzt Worksheet_Change(ByVal Target As Range) eingefügt und jetzt klappt alles,
kannst du mir vielleicht kurz erklären wieso ich den Parameter Target benötige auch wenn ich mich später nicht darauf beziehe?
(entschuldige wenn sich das dämlich anhört, versuche nur langsam in das Thema reinzukommen)
HalloExcel,

gerade in den Anfängen geht's in Summe hauptsächlich ums lesen.
Lesen, probieren und wieder von vorn.


Beginne am Anfang und nicht in der Mitte.


Empfehlung:
Code:
https://www.vba-tutorial.de/

Anschließend empfehle Ich Dir dich bei den Themen Compiler und Interpreter einzulesen.