• 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.

Code structureel verkorten

Status
Niet open voor verdere reacties.

wieter

Terugkerende gebruiker
Lid geworden
26 jun 2009
Berichten
1.128
Vooraf: Als je de bijlage opent, klik dan op de knop[Naar Bestand]

24 oneven CheckBoxen kunnen aangevinkt worden.
Ik moet dus 24 korte codes schrijven, die de ForeColor van een bijbehorend label veranderen.
Er zit een structuur in de volgorde:
Alleen de oneven CheckBoxen
De Labels zijn genummerd in groepjes van 4
Kennen jullie een manier om zo een reeks korter te schrijven?
Groeten, wieter
Code:
Private Sub CheckBox1_Click()
    If CheckBox1.Value = True Then
    Label6.ForeColor = vbRed
    Else
    Label6.ForeColor = vbBlack
    End If
End Sub
Private Sub CheckBox3_Click()
    If CheckBox3.Value = True Then
    Label7.ForeColor = vbRed
    Else
    Label7.ForeColor = vbBlack
    End If
End Sub
Private Sub CheckBox5_Click()
    If CheckBox5.Value = True Then
    Label8.ForeColor = vbRed
    Else
    Label8.ForeColor = vbBlack
    End If
End Sub
Private Sub CheckBox7_Click()
    If CheckBox7.Value = True Then
    Label9.ForeColor = vbRed
    Else
    Label9.ForeColor = vbBlack
    End If
End Sub
Private Sub CheckBox9_Click()
    If CheckBox9.Value = True Then
    Label12.ForeColor = vbRed
    Else
    Label12.ForeColor = vbBlack
    End If
End Sub
Private Sub CheckBox11_Click()
    If CheckBox11.Value = True Then
    Label13.ForeColor = vbRed
    Else
    Label13.ForeColor = vbBlack
    End If
End Sub
Private Sub CheckBox13_Click()
    If CheckBox13.Value = True Then
    Label14.ForeColor = vbRed
    Else
    Label14.ForeColor = vbBlack
    End If
End Sub
Private Sub CheckBox15_Click()
    If CheckBox15.Value = True Then
    Label15.ForeColor = vbRed
    Else
    Label15.ForeColor = vbBlack
    End If
End Sub
Private Sub CheckBox17_Click()
    If CheckBox17.Value = True Then
    Label18.ForeColor = vbRed
    Else
    Label18.ForeColor = vbBlack
    End If
End Sub
Private Sub CheckBox19_Click()
    If CheckBox19.Value = True Then
    Label19.ForeColor = vbRed
    Else
    Label19.ForeColor = vbBlack
    End If
End Sub
Private Sub CheckBox21_Click()
    If CheckBox21.Value = True Then
    Label20.ForeColor = vbRed
    Else
    Label20.ForeColor = vbBlack
    End If
End Sub
Private Sub CheckBox23_Click()
    If CheckBox23.Value = True Then
    Label21.ForeColor = vbRed
    Else
    Label21.ForeColor = vbBlack
    End If
End Sub
Private Sub CheckBox25_Click()
    If CheckBox25.Value = True Then
    Label24.ForeColor = vbRed
    Else
    Label24.ForeColor = vbBlack
    End If
End Sub
Private Sub CheckBox27_Click()
    If CheckBox27.Value = True Then
    Label25.ForeColor = vbRed
    Else
    Label25.ForeColor = vbBlack
    End If
End Sub
Private Sub CheckBox29_Click()
    If CheckBox29.Value = True Then
    Label26.ForeColor = vbRed
    Else
    Label26.ForeColor = vbBlack
    End If
End Sub
Private Sub CheckBox31_Click()
    If CheckBox31.Value = True Then
    Label27.ForeColor = vbRed
    Else
    Label27.ForeColor = vbBlack
    End If
End Sub
Private Sub CheckBox33_Click()
    If CheckBox33.Value = True Then
    Label30.ForeColor = vbRed
    Else
    Label30.ForeColor = vbBlack
    End If
End Sub
Private Sub CheckBox35_Click()
    If CheckBox35.Value = True Then
    Label31.ForeColor = vbRed
    Else
    Label31.ForeColor = vbBlack
    End If
End Sub
Private Sub CheckBox37_Click()
    If CheckBox37.Value = True Then
    Label32.ForeColor = vbRed
    Else
    Label32.ForeColor = vbBlack
    End If
End Sub
Private Sub CheckBox39_Click()
    If CheckBox39.Value = True Then
    Label33.ForeColor = vbRed
    Else
    Label33.ForeColor = vbBlack
    End If
End Sub
Private Sub CheckBox41_Click()
    If CheckBox41.Value = True Then
    Label36.ForeColor = vbRed
    Else
    Label36.ForeColor = vbBlack
    End If
End Sub
Private Sub CheckBox43_Click()
    If CheckBox43.Value = True Then
    Label37.ForeColor = vbRed
    Else
    Label37.ForeColor = vbBlack
    End If
End Sub
Private Sub CheckBox45_Click()
    If CheckBox45.Value = True Then
    Label38.ForeColor = vbRed
    Else
    Label38.ForeColor = vbBlack
    End If
End Sub
Private Sub CheckBox47_Click()
    If CheckBox47.Value = True Then
    Label39.ForeColor = vbRed
    Else
    Label39.ForeColor = vbBlack
    End If
End Sub
 

Bijlagen

  • Evaluatieformulier2.xlsb
    116,2 KB · Weergaven: 28
Dit is in ieder geval korter.
Code:
Private Sub CheckBox1_Click()
  Label6.ForeColor = iif(CheckBox1,vbRed,vbBlack)
End Sub

Wil je van die 24 codes af, zul je het in en klasse module moeten zetten.
Ook dat heeft nadelen, moeilijk te onderhouden, en met het aantal verscheidene labels ernaast al helemaal.
 
Hey Eric,
Ik heb nog nooit een Klasse-module gebruikt.
Ik ga het eens uitpluizen.
Grtn
 
Bedankt Harry, dat scheelt al heel wat regels.
Ik ga je [IIf] voorstel gebruiken, en die 24 codes behouden.
Bedankt!
 
Status
Niet open voor verdere reacties.
Terug
Bovenaan Onderaan