Bonjour,
J'ai un fichier avec un tas de CheckBox, je souhaiterais les remplacer par 1 ou 2 listbox par Userform.
Alimenter la listbox via des additem n'est pas le problème.
Ce que je n'arrive pas à faire c'est attribuer une destination pour chaque selection d'une listbox.
Actuellement, chaque Checkbox envoie un résultat vers une cellule précise, de façon à avoir des résultat en colonnes :
Private Sub CheckBox28_Click()
If CheckBox28.Value Then
Sheets("Données").Range("AH3").Value = 1
Else
Sheets("Données").Range("AH3") = ""
End If
End Sub
La mise à jour du tableau via le Userform se fait sur la ligne 3. Quand il y a une nouvelle saisie, cela vient insérer sur la ligne 3 et descend toutes les données précédentes vers le bas. Curieux mais bon.
Je ne veux pas changer le principe d'adresser une valeur vers une cellule d'une colonne, mais la manière de faire, afin de réduire la taille de la Userform. J'ai donc pensé qu'une listbox à selection multiple serait plus simple d'usage et prendra beaucoup moins de place. Et que les mises à jour du tableau se fasse par le bas, ligne 5, ligne 6, etc.
Private Sub UserForm_Initialize()
With ListBox1
.AddItem "A" (Si selectionné, alors envoyer une valeur "AAA" dans la colonne AH, première cellule vide)
.AddItem "B" (Si selectionné, alors envoyer une valeur "BBB"dans la colonne AB,première cellule vide)
.AddItem "C" (Si selectionné, alors envoyer une valeur "CCC"dans la colonne AZ,première cellule vide)
End With
End Sub
Pour envoyer une selection vers une colonne, pas de problème.
Mais pour 2 ou 3 selections dans la même listbox, je sais pas.
Private Sub ListBox1_Click()
Dim i As Integer
i = 0
With Sheets("Liste")
For i = 1 To Sheets("Liste").Range("A65536").End(xlUp).Row
If Sheets("Liste").Range("B" & i).Value = ListBox1.Value Then
End If
Next i
End With
End Sub
Je suis débutant en VBA.
Merci de vos conseils.