boucle avec des checkbox

  • Initiateur de la discussion bruno
  • Date de début
B

bruno

Guest
Bonjour a tous
je suis débutant en VBA, et je bute sur un probleme avec une userform et mes checkbox.
J ai lu plus reponses sur le forum, mais rien a faire, je n y arrive pas, et je comprends vraiment pas tout ce qui est ecrit dans les réponses.

Alors voila, dans une liste excel, j ai des noms a la suite les un des autres dans le genre:
pierre
jean
louis
marcel

ensuite, j ai une macro, qui a une userform, dans laquelle se trouve 45checkbox, 45 correspondant au nombre maximal(mais non tjs atteint) de nom dans la liste.

Cette liste peut etre changée, et ce que je veux c 'est que le userform utilise cette liste pour mettre a jour les nom des checkbox, et rende invisible les checkbox inutile. ma macro donne cela:

ligne = 2
Do
Do While Cells(ligne, 1) <> ""
UserForm1.CheckBox(ligne).Caption = Cells(ligne, 1)
ligne = ligne + 1
Loop
Loop Until Cells(ligne, 1) = ""

Do
Do While Cells(ligne, 1) = ""
UserForm1.CheckBox1.Visible = False
ligne = ligne + 1
Loop
Loop Until ligne = 50


UserForm1.Show

mais comme vous vous en doutez, cela ne fonctionne pas, j ai une erreur de compilation, il ne reconnait pas le checkbox(ligne) comme checkbox1, checkbox2 etc ...comme je le voudrais.

voila, si vous pouviez m aider, cela me rendrait un enorme service, merci d avance a tout ceux qui liront ce message.

bruno
 
W

wally

Guest
Bonjour Bruno et le forum,

Voici une possibilité. Cet exemple parcourt les cellules A1 à A45 (à adapter selon tes besoins) :

Sub Main()

Dim oRge As Range

For Each oRge In Range("A1:A45")
If IsEmpty(oRge) Then
UserForm1.Controls("CheckBox" & oRge.Row).Visible = False
Else
UserForm1.Controls("CheckBox" & oRge.Row).Caption = oRge.Value
End If
Next oRge

UserForm1.Show

End Sub


Stls

wally
 
B

bruno

Guest
excellent!
la commande controle me manquer!

j ai fais ca et ca marche:

ligne = 2
Do
Do While Cells(ligne, 1) <> ""
UserForm1.Controls("CheckBox" & ligne - 1).Caption = Cells(ligne, 1)
ligne = ligne + 1
Loop
Loop Until Cells(ligne, 1) = ""

Do
Do While Cells(ligne, 1) = ""
If ligne > 45 Then
GoTo 10
Else
UserForm1.Controls("CheckBox" & ligne - 1).Visible = False
ligne = ligne + 1
End If
Loop
10:
Loop Until ligne = 46


UserForm1.Show


merci bien!
 
@

@+Thierry

Guest
Re: Demo Mass Update / Boucle avec des checkbox

Salut Bruno, Wally, le Forum

Une autre méthode dans la démo ci-jointe... For the Fun !!

Il faut juste Synchroniser les données en feuille "Database" avec le nombre de Controls CheckBox..

Bon Après Midi
@+Thierry
 

Pièces jointes

  • USF-CheckBox-Mass-Initialize.zip
    19 KB · Affichages: 123

Discussions similaires

Réponses
12
Affichages
585

Statistiques des forums

Discussions
312 367
Messages
2 087 648
Membres
103 628
dernier inscrit
rou37x