Bonjour,
J'ai construit un USF nommé MAJCIBLES qui contient 18 checkbox, nommée checkbox1 à checkbox18 et dont la propriété visible est par défaut sur false. J'ai par ailleurs un tableau sur une feuille me donnant des noms de bases dont le nombre peut varier de 1 à 18 (1 à 18 cellules remplies).
Je veux que l'usf s'affiche avec autant de cases à cocher qu'il y a de bases en indiquant sur chaques case affichée un nombe bases. J'ai donc tenté le code suivant :
Dim NBBASES As Integer
NBBASES = Sheets("TRAITEMENT").Range("A10").CurrentRegion.Rows.Count - 2
For i = 1 To NBBASES
With MAJCIBLES.CheckBoxes("CheckBox" & i)
.Caption = Sheets("TRAITEMENT").Cells(10 + i, 1).Value
.Visible = True
End With
Next i
ce qui ne marche pas(message d'erreur).
J'ai aussi tenté une approche plus lourdingue en nommmant un à un les checkboxs
Dim NBBASES As Integer
NBBASES = Sheets("TRAITEMENT").Range("A10").CurrentRegion.Rows.Count - 2
If NBBASES < 2 Then MAJCIBLES.CheckBox1.Caption = Sheets("TRAITEMENT").Cells(11, 1).Value
If NBBASES < 2 Then MAJCIBLES.CheckBox1.Visible = True
If NBBASES < 3 Then MAJCIBLES.CheckBox2.Caption = Sheets("TRAITEMENT").Cells(12, 1).Value
If NBBASES < 3 Then MAJCIBLES.CheckBox2.Visible = True
If NBBASES < 4 Then MAJCIBLES.CheckBox3.Caption = Sheets("TRAITEMENT").Cells(13, 1).Value
If NBBASES < 4 Then MAJCIBLES.CheckBox3.Visible = True
If NBBASES < 5 Then MAJCIBLES.CheckBox4.Caption = Sheets("TRAITEMENT").Cells(14, 1).Value
If NBBASES < 5 Then MAJCIBLES.CheckBox4.Visible = True
If NBBASES < 6 Then MAJCIBLES.CheckBox5.Caption = Sheets("TRAITEMENT").Cells(15, 1).Value
If NBBASES < 6 Then MAJCIBLES.CheckBox5.Visible = True
If NBBASES < 7 Then MAJCIBLES.CheckBox6.Caption = Sheets("TRAITEMENT").Cells(16, 1).Value
If NBBASES < 7 Then MAJCIBLES.CheckBox6.Visible = True
If NBBASES < 8 Then MAJCIBLES.CheckBox7.Caption = Sheets("TRAITEMENT").Cells(17, 1).Value
If NBBASES < 8 Then MAJCIBLES.CheckBox7.Visible = True
If NBBASES < 9 Then MAJCIBLES.CheckBox8.Caption = Sheets("TRAITEMENT").Cells(18, 1).Value
If NBBASES < 9 Then MAJCIBLES.CheckBox8.Visible = True
If NBBASES < 10 Then MAJCIBLES.CheckBox9.Caption = Sheets("TRAITEMENT").Cells(19, 1).Value
If NBBASES < 10 Then MAJCIBLES.CheckBox9.Visible = True
If NBBASES < 11 Then MAJCIBLES.CheckBox10.Caption = Sheets("TRAITEMENT").Cells(20, 1).Value
If NBBASES < 11 Then MAJCIBLES.CheckBox10.Visible = True
If NBBASES < 12 Then MAJCIBLES.CheckBox11.Caption = Sheets("TRAITEMENT").Cells(21, 1).Value
If NBBASES < 12 Then MAJCIBLES.CheckBox11.Visible = True
If NBBASES < 13 Then MAJCIBLES.CheckBox12.Caption = Sheets("TRAITEMENT").Cells(22, 1).Value
If NBBASES < 13 Then MAJCIBLES.CheckBox12.Visible = True
If NBBASES < 14 Then MAJCIBLES.CheckBox13.Caption = Sheets("TRAITEMENT").Cells(23, 1).Value
If NBBASES < 14 Then MAJCIBLES.CheckBox13.Visible = True
If NBBASES < 15 Then MAJCIBLES.CheckBox14.Caption = Sheets("TRAITEMENT").Cells(24, 1).Value
If NBBASES < 15 Then MAJCIBLES.CheckBox14.Visible = True
If NBBASES < 16 Then MAJCIBLES.CheckBox15.Caption = Sheets("TRAITEMENT").Cells(25, 1).Value
If NBBASES < 16 Then MAJCIBLES.CheckBox15.Visible = True
If NBBASES < 17 Then MAJCIBLES.CheckBox16.Caption = Sheets("TRAITEMENT").Cells(26, 1).Value
If NBBASES < 17 Then MAJCIBLES.CheckBox16.Visible = True
If NBBASES < 18 Then MAJCIBLES.CheckBox17.Caption = Sheets("TRAITEMENT").Cells(27, 1).Value
If NBBASES < 18 Then MAJCIBLES.CheckBox17.Visible = True
If NBBASES < 19 Then MAJCIBLES.CheckBox18.Caption = Sheets("TRAITEMENT").Cells(28, 1).Value
If NBBASES < 19 Then MAJCIBLES.CheckBox18.Visible = True
End Sub
Là je n'ai pas d'erreur mais ça ne fait absolument pas ce que j'attend : seul le nom de la dernière base listée apparait. Les chexkbox avant n'apparaissent pas et les check boxs après apparaissent sans nom
Exemple : j'ai 8 bases. Les 7 premiers checkbox n'apparaissent pas. Le 8ème apparait avec le nom de la 8 ème base. Les 10 chekbox restant apparaissent mais sans nom.
Si quelqu'un a une idée, je suis preneur.
Je joins le fichier avec la deuxième version de code...
Gilles
J'ai construit un USF nommé MAJCIBLES qui contient 18 checkbox, nommée checkbox1 à checkbox18 et dont la propriété visible est par défaut sur false. J'ai par ailleurs un tableau sur une feuille me donnant des noms de bases dont le nombre peut varier de 1 à 18 (1 à 18 cellules remplies).
Je veux que l'usf s'affiche avec autant de cases à cocher qu'il y a de bases en indiquant sur chaques case affichée un nombe bases. J'ai donc tenté le code suivant :
Dim NBBASES As Integer
NBBASES = Sheets("TRAITEMENT").Range("A10").CurrentRegion.Rows.Count - 2
For i = 1 To NBBASES
With MAJCIBLES.CheckBoxes("CheckBox" & i)
.Caption = Sheets("TRAITEMENT").Cells(10 + i, 1).Value
.Visible = True
End With
Next i
ce qui ne marche pas(message d'erreur).
J'ai aussi tenté une approche plus lourdingue en nommmant un à un les checkboxs
Dim NBBASES As Integer
NBBASES = Sheets("TRAITEMENT").Range("A10").CurrentRegion.Rows.Count - 2
If NBBASES < 2 Then MAJCIBLES.CheckBox1.Caption = Sheets("TRAITEMENT").Cells(11, 1).Value
If NBBASES < 2 Then MAJCIBLES.CheckBox1.Visible = True
If NBBASES < 3 Then MAJCIBLES.CheckBox2.Caption = Sheets("TRAITEMENT").Cells(12, 1).Value
If NBBASES < 3 Then MAJCIBLES.CheckBox2.Visible = True
If NBBASES < 4 Then MAJCIBLES.CheckBox3.Caption = Sheets("TRAITEMENT").Cells(13, 1).Value
If NBBASES < 4 Then MAJCIBLES.CheckBox3.Visible = True
If NBBASES < 5 Then MAJCIBLES.CheckBox4.Caption = Sheets("TRAITEMENT").Cells(14, 1).Value
If NBBASES < 5 Then MAJCIBLES.CheckBox4.Visible = True
If NBBASES < 6 Then MAJCIBLES.CheckBox5.Caption = Sheets("TRAITEMENT").Cells(15, 1).Value
If NBBASES < 6 Then MAJCIBLES.CheckBox5.Visible = True
If NBBASES < 7 Then MAJCIBLES.CheckBox6.Caption = Sheets("TRAITEMENT").Cells(16, 1).Value
If NBBASES < 7 Then MAJCIBLES.CheckBox6.Visible = True
If NBBASES < 8 Then MAJCIBLES.CheckBox7.Caption = Sheets("TRAITEMENT").Cells(17, 1).Value
If NBBASES < 8 Then MAJCIBLES.CheckBox7.Visible = True
If NBBASES < 9 Then MAJCIBLES.CheckBox8.Caption = Sheets("TRAITEMENT").Cells(18, 1).Value
If NBBASES < 9 Then MAJCIBLES.CheckBox8.Visible = True
If NBBASES < 10 Then MAJCIBLES.CheckBox9.Caption = Sheets("TRAITEMENT").Cells(19, 1).Value
If NBBASES < 10 Then MAJCIBLES.CheckBox9.Visible = True
If NBBASES < 11 Then MAJCIBLES.CheckBox10.Caption = Sheets("TRAITEMENT").Cells(20, 1).Value
If NBBASES < 11 Then MAJCIBLES.CheckBox10.Visible = True
If NBBASES < 12 Then MAJCIBLES.CheckBox11.Caption = Sheets("TRAITEMENT").Cells(21, 1).Value
If NBBASES < 12 Then MAJCIBLES.CheckBox11.Visible = True
If NBBASES < 13 Then MAJCIBLES.CheckBox12.Caption = Sheets("TRAITEMENT").Cells(22, 1).Value
If NBBASES < 13 Then MAJCIBLES.CheckBox12.Visible = True
If NBBASES < 14 Then MAJCIBLES.CheckBox13.Caption = Sheets("TRAITEMENT").Cells(23, 1).Value
If NBBASES < 14 Then MAJCIBLES.CheckBox13.Visible = True
If NBBASES < 15 Then MAJCIBLES.CheckBox14.Caption = Sheets("TRAITEMENT").Cells(24, 1).Value
If NBBASES < 15 Then MAJCIBLES.CheckBox14.Visible = True
If NBBASES < 16 Then MAJCIBLES.CheckBox15.Caption = Sheets("TRAITEMENT").Cells(25, 1).Value
If NBBASES < 16 Then MAJCIBLES.CheckBox15.Visible = True
If NBBASES < 17 Then MAJCIBLES.CheckBox16.Caption = Sheets("TRAITEMENT").Cells(26, 1).Value
If NBBASES < 17 Then MAJCIBLES.CheckBox16.Visible = True
If NBBASES < 18 Then MAJCIBLES.CheckBox17.Caption = Sheets("TRAITEMENT").Cells(27, 1).Value
If NBBASES < 18 Then MAJCIBLES.CheckBox17.Visible = True
If NBBASES < 19 Then MAJCIBLES.CheckBox18.Caption = Sheets("TRAITEMENT").Cells(28, 1).Value
If NBBASES < 19 Then MAJCIBLES.CheckBox18.Visible = True
End Sub
Là je n'ai pas d'erreur mais ça ne fait absolument pas ce que j'attend : seul le nom de la dernière base listée apparait. Les chexkbox avant n'apparaissent pas et les check boxs après apparaissent sans nom
Exemple : j'ai 8 bases. Les 7 premiers checkbox n'apparaissent pas. Le 8ème apparait avec le nom de la 8 ème base. Les 10 chekbox restant apparaissent mais sans nom.
Si quelqu'un a une idée, je suis preneur.
Je joins le fichier avec la deuxième version de code...
Gilles