macro inkorten

Status
Niet open voor verdere reacties.

Offthefield

Gebruiker
Lid geworden
27 apr 2005
Berichten
369
Ik heb 25 Comboboxen (in het voorbeeld maar 4) en hier komen dezelfde gegevens in, kan ik deze macro veranderen tot een kleinere macro?

Heeft iemand een idee hoe dat moet?

Code:
With ComboBox2
    .Clear
    .AddItem "N.v.t."
    .AddItem "Onvoldoende"
    .AddItem "Matig"
    .AddItem "Voldoende"
    .AddItem "Goed"
    .AddItem "Zeer Goed"
End With

With ComboBox3
    .Clear
    .AddItem "N.v.t."
    .AddItem "Onvoldoende"
    .AddItem "Matig"
    .AddItem "Voldoende"
    .AddItem "Goed"
    .AddItem "Zeer Goed"
End With

With ComboBox4
    .Clear
    .AddItem "N.v.t."
    .AddItem "Onvoldoende"
    .AddItem "Matig"
    .AddItem "Voldoende"
    .AddItem "Goed"
    .AddItem "Zeer Goed"
End With

With ComboBox5
    .Clear
    .AddItem "N.v.t."
    .AddItem "Onvoldoende"
    .AddItem "Matig"
    .AddItem "Voldoende"
    .AddItem "Goed"
    .AddItem "Zeer Goed"
End With

Alvast hartelijk dank
 
Om te beginnen: vermijd AddItem, dat moet je alleen gebruiken als je een enkel item wilt toevoegen, niet voor een hele lijst. Dan kun je beter List gebruiken. En die vul je dan met een array. Als alle keuzelijsten dezelfde naam hebben (met een nummer) kun je er makkelijk doorheen lopen met een lus.
Code:
Private Sub UserForm_Initialize()
    For i = 1 To 25
        Me("ComboBox" & i).List = Array("N.v.t.", "Onvoldoende", "Matig", "Voldoende", "Goed", "Zeer Goed")
    Next i
End Sub
 
En dan kun je zelfs 'kopiëren':

Code:
Private Sub UserForm_Initialize()
    combobox1.list=Array("N.v.t.", "Onvoldoende", "Matig", "Voldoende", "Goed", "Zeer Goed")

    For i = 2 To 25
        Me("ComboBox" & i).List = combobox1.list
    Next i
End Sub
 
Dat lijkt mij noch sneller, noch korter. (Dat laatste kan zelfs een blinde ezel zien :) ).
 
Daarover werd dan ook in de begeleidende tekst niets vermeld.
 
OctaFish, snb,

Geweldig, nu heb ik 2 varianten die werken, hartelijk dank
 
@Octa

Nee hoor, ik heb zijn/haar macro kleiner gemaakt , dat ziet zelfs een ..... :p
 
Status
Niet open voor verdere reacties.
Terug
Bovenaan Onderaan