Farbe einer Schaltfläche mehrfach ändern

Moderator: ModerationP

Farbe einer Schaltfläche mehrfach ändern

Beitragvon Zelera0815 » 29. Apr 2019, 00:35

Hallo

Ich hoffe mir kann geholfen werden, ich habe bereits einige Stunden bei Google gesucht, jedoch mein Problem bislang nicht gefunden:

Ich hätte gerne eine Schaltfläche, die bei einem Klick die Farbe ändert. Jedoch nicht nur 1 mal, sondern mehrmals. Beim 1. Klick grün, beim 2. Klick gelb, beim 3. klick rot und beim 4. klick weiß. Beim 5. klick fängt die Schleife wieder von vorne an.
Ich habe etwas rumprobiert, habe es jedoch nur geschafft, dass sich eine Schaltfläche von einer in die andere Farbe ändert.

Noch etwas zu den Rahmenbedingungen: Während der Präsentation soll die Farbe geändert werden und auch wenn die Präsentation beendet wird, soll die Farbe der Schaltfläche beibehalten werden.

Ich hoffe, jemand hat eine Lösung dazu.


Danke schonmal
Zelera0815
 

Re: Farbe einer Schaltfläche mehrfach ändern

Beitragvon G.O.Tuhls » 29. Apr 2019, 12:37

Das mit dem Beibehalten wird nix, aber den mehrfachen Farbwechsel bekommst Du mit mehreren Schalflächen übereinander hin, die beim Anklicken jeweils die nächste aufrufen.

Gruß
G.O.
Press any thumb to continue. :D
Benutzeravatar
G.O.Tuhls
Im Profil kannst Du frei den Rang ändern
 
Beiträge: 8023
Registriert: 26. Mär 2010, 14:19
Wohnort: Berlin

Re: Farbe einer Schaltfläche mehrfach ändern

Beitragvon knobbi38 » 29. Apr 2019, 13:40

Hallo,

ich bin jetzt nicht so mit Powerpoint so bewandert, aber theoretisch sollte man den aktuellen Status des CommandButtons in einer CustomProperty persistent speichern können, oder?

Ulrich
knobbi38
Im Profil kannst Du frei den Rang ändern
 
Beiträge: 2043
Registriert: 02. Jul 2015, 14:23

Re: Farbe einer Schaltfläche mehrfach ändern

Beitragvon knobbi38 » 29. Apr 2019, 19:27

Hier mal ein Code zum testen:
Code: Alles auswählen
Private Sub btnColorChange_Click()
  Dim ColorState As Long
 
  On Error GoTo ErrHandler
  ColorState = ActivePresentation.CustomDocumentProperties("ColorState")
  ColorState = (ColorState + 1) Mod 4
  ActivePresentation.CustomDocumentProperties("ColorState") = ColorState
 
  Select Case ColorState
    Case 0: btnColorChange.BackColor = &H8000000F
    Case 1: btnColorChange.BackColor = rgbGreen
    Case 2: btnColorChange.BackColor = rgbYellow
    Case 3: btnColorChange.BackColor = rgbRed
  End Select
 
ExitHandler:
  Exit Sub
 
ErrHandler:
  If Err.Number = 5 Then
    ActivePresentation.CustomDocumentProperties.Add _
        Name:="ColorState", LinkToContent:=False, Type:=msoPropertyTypeNumber, _
        Value:=0
    Resume
  Else
    Debug.Print Err.Number, Err.Description
  End If
  Resume ExitHandler
End Sub


Ulrich
knobbi38
Im Profil kannst Du frei den Rang ändern
 
Beiträge: 2043
Registriert: 02. Jul 2015, 14:23

Re: Farbe einer Schaltfläche mehrfach ändern

Beitragvon Zelera0815 » 20. Mai 2019, 01:22

Hallo

Vielen Dank für die Hilfe, der Code funktioniert auch fast so wie ich es möchte.
Ich habe ihn noch etwas abgeändert und vereinfacht:
Code: Alles auswählen
Dim ColorState As Long



Private Sub CommandButton1_Click()

   ColorState = (ColorState + 1) Mod 4
 
  Select Case ColorState
    Case 0: CommandButton1.BackColor = RGB(0, 255, 0)
    Case 1: CommandButton1.BackColor = RGB(255, 255, 0)
    Case 2: CommandButton1.BackColor = RGB(255, 0, 0)
    Case 3: CommandButton1.BackColor = RGB(255, 255, 255)
  End Select

End Sub
 

Private Sub CommandButton2_Click()

ColorState = (ColorState + 1) Mod 4
 
  Select Case ColorState
    Case 0: CommandButton2.BackColor = RGB(0, 255, 0)
    Case 1: CommandButton2.BackColor = RGB(255, 255, 0)
    Case 2: CommandButton2.BackColor = RGB(255, 0, 0)
    Case 3: CommandButton2.BackColor = RGB(255, 255, 255)
  End Select

End Sub

Private Sub CommandButton3_Click()

ColorState = (ColorState + 1) Mod 4
 
  Select Case ColorState
    Case 0: CommandButton3.BackColor = RGB(0, 255, 0)
    Case 1: CommandButton3.BackColor = RGB(255, 255, 0)
    Case 2: CommandButton3.BackColor = RGB(255, 0, 0)
    Case 3: CommandButton3.BackColor = RGB(255, 255, 255)
  End Select
 
End Sub


Ich habe jedoch noch 1 Problem:
Ich möchte, dass sich jeder Button in dieser Reihenfolge ändert. Aktuell ist es leider so, dass sich die Reihenfolge quasi global auf alle Buttons auswirkt, nicht auf jeden einzelnen selbst. Ich hoffe es ist verständlich was ich meine.

Gibt es da eine einfache Lösung?


Vielen Dank
Zelera0815
 

Re: Farbe einer Schaltfläche mehrfach ändern

Beitragvon knobbi38 » 20. Mai 2019, 07:58

Hallo,

du verwendest nur eine Variable für die Farbe, aber in dem Fall brauchst du für jeden einzelnen Button eine eigene Variable, worin der Status festgehalten wird.

Ulrich
knobbi38
Im Profil kannst Du frei den Rang ändern
 
Beiträge: 2043
Registriert: 02. Jul 2015, 14:23


Zurück zu PowerPoint Forum (provisorisch)

Wer ist online?

Mitglieder in diesem Forum: 0 Mitglieder und 1 Gast