• Privacywetgeving
    Het is bij Helpmij.nl niet toegestaan om persoonsgegevens in een voorbeeld te plaatsen. Alle voorbeelden die persoonsgegevens bevatten zullen zonder opgaaf van reden verwijderd worden. In de vraag zal specifiek vermeld moeten worden dat het om fictieve namen gaat.

Aanpassen code

Status
Niet open voor verdere reacties.

marcel31281

Gebruiker
Lid geworden
30 okt 2015
Berichten
391
In mijn userform heb ik 52 optionbuttons, die onder andere met de onderstaande code worden aangestuurd

Code:
Private Sub OptionButton1_Click()
If True Then
    OptionButton1.BackColor = RGB(153, 51, 0) 'dit is rood'
    OptionButton1.ForeColor = vbWhite
    OptionButton2.BackColor = vbWhite
    OptionButton2.ForeColor = RGB(192, 192, 192)
    Sheets("RAPPORT VPH").Range("I14") = "ü" '
    Sheets("RAPPORT VPH").Range("H14") = ""
End If
End Sub
Private Sub OptionButton2_Click()
If True Then
    OptionButton2.BackColor = RGB(0, 128, 128) 'dit is groen'
    OptionButton1.BackColor = vbWhite
     OptionButton2.ForeColor = vbWhite
     OptionButton1.ForeColor = RGB(192, 192, 192)
    Sheets("RAPPORT VPH").Range("H14") = "ü" '
    Sheets("RAPPORT VPH").Range("I14") = ""
End If
End Sub

Nu vroeg ik me af of de kleurwijzigingen niet makkelijker kunnen, zodat ik dit niet bij alle 52 handmatig hoef aan te gaan passen.

Alvast bedankt,

( excuses heb geen voorbeeld bestand beschikbaar op dit moment )
 
Je kunt er een functie van maken met als parameters de optionbutton die je verandert. Die functie loopt met een loop door alle optionbuttons en past ze dan aan.
 
Wat is het verband tussen OptionButton1 en OptionButton2 en de andere 50 optionbuttons?
En If True is altijd True, dus overbodig.
 
Je blijft maar wijzigingen aanbrengen in een goed lopend bestand van ergens in het jaar 2020
En dan hebben we het alleen over iets "cosmetisch", Waarom?
excuses heb geen voorbeeld bestand beschikbaar op dit moment
Gewoon even verwijzen naar een van jouw eerdere topics (jaar 2020)
 
Het is gewoon een vraag en als je niet wilt helpen of geen antwoord hebt, reageer dan ook niet met onderstaande onzin,
Ik dacht dat de bedoeling was om hier geholpen te worden en niet afgezeken, ik probeer er gewoon ook wat moois van te maken is dat zo verkeerd?
En als ik dan even vastloop staat het mij toch vrij om daar even wat over te vragen?

Je blijft maar wijzigingen aanbrengen in een goed lopend bestand van ergens in het jaar 2020
En dan hebben we het alleen over iets "cosmetisch", Waarom?

Gewoon even verwijzen naar een van jouw eerdere topics (jaar 2020)
 
Optionbuttons geven aan of iets goed is of defect aan een product ( ja /nee ), en er staan dus voor alle checkpunten optionbuttons in de userform

Wat is het verband tussen OptionButton1 en OptionButton2 en de andere 50 optionbuttons?
En If True is altijd True, dus overbodig.
 
misschien iets uitproberen met "application.caller", maar om toch geen onzin uit mijn duim te zuigen zou ik toch minstens een voorbeeldje met 2 van die optionbuttons moeten hebben, anders riskeer ik ook afgezeikt te worden.
 
In bijlage 1 van de userforms zoals die in mijn bestand zitten, dat geeft denk ik een beter idee van het probleem.

Door een andere aanpassing in het bestand waarbij ik alleen de standaard kleuren in excel kan kiezen vind ik dat de kleuren in de userforms ook aangepast moeten worden om het geheel netjes te houden.
Nu is de kleur groen te donker om de letters nog te lezen.

Dus de tekst moeten wit worden wanneer de optionbutton geselecteerd word
 

Bijlagen

eigenlijk maak je een algemene macro voor de kleurtjes van je optionbuttons en daar verwijs je dan naar, zie bijlage voorlopig alleen voor de 1e en de 2e.
(Die userform1 was anders wel met een class-module)

Code:
Private Sub General_OptionButton(Nr, Kant, b, Cel)
     '**************************************************************************************************
     'algemene macro voor je optionbuttons, waarbij je het nummer, de kant (links/rechts), de waarde (WAAR/VALS) en de cel aangeeft
     'daarmee weet de macro voldoende om de alles aan te passen
     '**************************************************************************************************
     With Me.Controls("OptionButton" & Nr)
          If StrComp(Kant, "Links", 1) = 0 Then
               .BackColor = IIf(b, RGB(255, 101, 101), vbWhite)     'achtergrondkleuren voor de linkse
               .ForeColor = IIf(b, RGB(255, 255, 255), RGB(0, 0, 0))     'tekstkleuren voor de linkse
               Cel.Value = IIf(b, "ü", "")   'waarde weg te schrijven naar cel voor de linkse
          Else
               .BackColor = IIf(b, RGB(106, 177, 135), vbWhite)     'achtergrondkleuren voor de rechtse
               .ForeColor = IIf(b, RGB(255, 255, 255), RGB(0, 0, 0))     'tekstkleuren voor de rechtse
               Cel.Value = IIf(b, "", "ü")   'waarde weg te schrijven naar cel voor de rechtse
          End If
     End With
End Sub

Private Sub OptionButton1_Click()
     General_OptionButton 1, "Links", True, Sheets("RAPPORT VPH").Range("I14")     'linkse knop is waar
     General_OptionButton 2, "Rechts", False, Sheets("RAPPORT VPH").Range("H14")     'dus rechtse knop niet waar
end sub

Je zou eventueel nog een versnelling hoger kunnen schakelen en een algemene macro maken voor de 2 optionbuttons in 1 keer. Dan heb je 5 variabelen : de nummers van de 2 knoppen, de 2 celadressen en de waarde van de linker cel (waar of vals). Dat zou het nog eenvoudiger maken, (Maar je had anders ook met een vinkje kunnen werken zoals er naast.)
dan zou dit volstaan
Code:
 Algemeen_OptionButton 1, 2, "I4", "H4,true     'nrs voor links& rechts, adressen voor links&rechts, waarde voor links"
 

Bijlagen

Laatst bewerkt:
Status
Niet open voor verdere reacties.
Terug
Bovenaan Onderaan