Commandbutten aanroepen met een variabele

Status
Niet open voor verdere reacties.

beekca

Gebruiker
Lid geworden
6 jan 2019
Berichten
12
Hallo Ontwikkelaars

Ik ben hier nieuw en heb een vraag waar ik niet uit kom, ik heb al enkele dagen lopen zoeken op het www maar nog niets kunnen vinden wat ik zoek vandaar dat ik me meld.

Wat zoek ik:
Middels een Excel werkblad waar ik een heleboel commandbuttons op heb staan die ik van kleur laat veranderen als ik er op klik(wit naar rood en terug naar wit).
het veranderen van kleur lukt voor alle knoppen die ik er op heb gezet maar ik wil dit vereenvoudigen.

Wat wil ik:
Een aangeklikte cmb de naam in een variable zetten die dan de kleur regelt
Verder zou ik middels een variabele naar die sub willen die de knop bijv. rood maakt. Als ik de knop naam in een variabele plaats
wordt de knop niet herkend en de kleur verandert niet, maar krijg ik de volgende foutmelding "ongeldige kwalificatie" .

Is hier een oplossing voor en zo ja welke.
Zie voorbeeld:

Alvast bedankt voor de moeite.

Code:
Dim MyButton As String

Sub HydroVO_Click()
MyButton = "HydroVO"
MyButt
End Sub

Sub MyButt()
' In mybutton wordt de naam gezet van de
' knop die in is gedrukt daarmee wordt de gekozen
' knop gekleurd.
' de waarde van MyButton is wel de knop naam in dit geval HydroVO maar doet hier niets mee.
If MyButton.Caption = "Rood" Then
        MyButton.Caption = "Wit"
        MyButton.ForeColor = &HFFFFFF
        MyButton.BackColor = &HFFFFFF
ElseIf MyButton.Caption = "Wit" Then
        MyButton.Caption = "Rood"
        MyButton.ForeColor = &HFF
        MyButton.BackColor = &HFF
End If
End Sub
Knipsel.JPG
 
Laatst bewerkt door een moderator:
Declareer MyButton niet als String maar als Object.
Plaats anders je document.
 
Laatst bewerkt:
Hallo Edmoor

Ik krijg als ik dit probeer een "Fout 91" Objectvariabele of blockvariabele With is niet ingesteld. Ik zou dus de sub routine opnieuw moeten schrijven.
 
En je document of voorbeeld ervan?
 
Klik op Ga geavanceerd en gebruik daar de paperclip.
 
Zo dan:
Code:
Dim MyButton As Object

Sub test_Click()
    Set MyButton = HydroVO
    MyButt
End Sub
 
Hallo Edmoor

Bedankt deze code werkt, zo kan ik het toch nog iets compacter maken.

Bedankt.
 
Zelfs dat kan (veel) compacter:
 

Bijlagen

  • __hydro_snb.xlsb
    74,8 KB · Weergaven: 41
Hallo snb

Ik heb je code geprobeerd maar zie niet echt wat veranderen, de code van edmoor voldoet voor mij en ik ben al verder met dit gegaan.
In ieder geval bedankt voor de moeite.

beekca
 
Je kunt de code niet proberen.
Hij voert zichzelf uit bij het openen van het bestand (als je tenminste macro's hebt ingeschakeld).
Daarna hoef je alleen nog maar op de knoppen te klikken.
 
Hallo snb

sorry voor het wachten, ik heb jouw programma geprobeerd en het is inderdaad korter en het werkt hiervoor mijn dank, ik ga het uitbreiden.

beekca
 
Status
Niet open voor verdere reacties.
Terug
Bovenaan Onderaan