Re : Liste à choix multiples
Bonjour
A ) Tu dois utiliser un contrôle "Listbox" qui émane de la barre d'outils "Contrôle".
B ) Pour boucler sur tous les items du listbox, tu dois te rappeler que l'index de
l'item 1 est 0 non pas 1. Tu dois adapter la boucle en conséquence :
For i = 0 To .ListCount - 1
C ) Au lieu d'utilise des expressions comme ActiveSheet, Il est préférable d'employer
Soit une variable objet "Worksheet" comme dans l'exemple No 2 ou de faire
Intervenir le nom de l'objet "Feuille" visible seulement dans l'environnement de
de l'éditeur de vba dans l'arborescence des objets de ton projetVBA
Exemple : Feuil1(toto)
Feuil1 -> représente la propriété Name de l'objet "Feuille"
Toto -> est le nom de l'onglet de la feuille de calcul.
L'avantage de procéder de cette manière est que tu vas obtenir une liste déroulante
affichant les propriétés et méthodes disponibles des objets contrairement à ActiveSheet.
Tu auras moins de chance de faire des fautes d'orthographe, de plus, cette liste déroulante
est un aide mémoire important des propriétés et méthodes disponibles pour un objet.
D ) Ici, ce sont des intégristes du VBA, si tu ne publies pas un fichier, tu n'as pas de réponse!
'------------------------------------------------------------
Sub ListBox3_Change()
Dim LB As ListBox, Compteur As Long
Dim i As Long
Compteur = 54 ' La ligne de départ
'Feuil1 n'est pas le nom de l'onglet mais le nom
'de la propriété "Name" de l'objet "Feuille" visible
'seulement en VBA.
With Feuil1
With .ListBox1
For i = 0 To .ListCount - 1
If .Selected(i) Then
Feuil1.Cells(Compteur, "A").Value = .List(i, 0)
Compteur = Compteur + 1
End If
Next
End With
End With
End Sub
'------------------------------------------------------------
Sub ListBox3_Change2()
Dim LB As ListBox, Compteur As Long
Dim i As Long, Sh As Worksheet
Set Sh = ActiveSheet
Compteur = 54 ' La ligne de départ
With Sh
With .Shapes("ListBox1").OLEFormat.Object.Object
For i = 0 To .ListCount - 1
If .Selected(i) Then
Feuil1.Cells(Compteur, "A").Value = .List(i, 0)
Compteur = Compteur + 1
End If
Next
End With
End With
End Sub
'------------------------------------------------------------
MichD
---------------------------------------------------------------