Dieses Forum nutzt Cookies
Dieses Forum verwendet Cookies, um deine Login-Informationen zu speichern, wenn du registriert bist, und deinen letzten Besuch, wenn du es nicht bist. Cookies sind kleine Textdokumente, die auf deinem Computer gespeichert werden. Die von diesem Forum gesetzten Cookies werden nur auf dieser Website verwendet und stellen kein Sicherheitsrisiko dar. Cookies aus diesem Forum speichern auch die spezifischen Themen, die du gelesen hast und wann du zum letzten Mal gelesen hast. Bitte bestätige, ob du diese Cookies akzeptierst oder ablehnst.

Ein Cookie wird in deinem Browser unabhängig von der Wahl gespeichert, um zu verhindern, dass dir diese Frage erneut gestellt wird. Du kannst deine Cookie-Einstellungen jederzeit über den Link in der Fußzeile ändern.

VBA Farbe von Pfeil ändern
#1
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
Antworten Top
#2
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
[-] Folgende(r) 1 Nutzer sagt Danke an Kuwer für diesen Beitrag:
  • HelloExcel
Antworten Top
#3
Hi,

Schau dir mal Worksheet_change an...
gruß
Marco
[-] Folgende(r) 1 Nutzer sagt Danke an Mase für diesen Beitrag:
  • HelloExcel
Antworten Top
#4
So geht Worksheet_Change nicht...
Schöne Grüße
Berni
Antworten Top
#5
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)
Antworten Top
#6
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.
gruß
Marco
Antworten Top


Gehe zu:


Benutzer, die gerade dieses Thema anschauen: 1 Gast/Gäste