RESOLU! problème de code ListBox

pnlop

XLDnaute Occasionnel
Bonjour le forum,
J'ouvre une nouvelle discussion pour mon projet car l'autre est devenue trop longue et n'a plus rien à voir avec le début.
Voici mon problème:
j'ai un UserForm avec un ListBox1 (1 colonne) qui s'alimente comme je le veut et un ListBox2 multichoix (5 colonnes dont 4 masquées) qui ne s'alimente pas comme je veux...
En résumé:
La ListBox2 se rempli selon le choix fait dans la ListBox1. Les données sont prises dans la feuille portant le nom de la séléction de l'Item dans la ListBox1 -> Worksheets("ListBox1.ListIndex"), les données viennet des colonnes A à E (seul. B sera visible dans la ListBox2).

Voici mon code... qui ne fonctionne pas, sinon je ne serais pas venue vers vous!!!
Private Sub ListBox1_Click()
If ListBox1.ListIndex = -1 Then Exit Sub
With ListBox1.ListIndex
Dim i As Integer, j As Byte
For j = 0 To 4
ListBox2.List() = Worksheets("ListBox1.ListIndex").Range("i" & j).Value
Next
End With

End Sub

Private Sub UserForm_Initialize()

With ListBox1
.ListStyle = fmListStyleOption
.List = Sheets("termes").[B11:B17].Value
End With

With ListBox2
Dim i As Integer, j As Integer
.ListStyle = fmListStyleOption
.MultiSelect = fmMultiSelectMulti
.ColumnCount = 5
.ColumnWidths = "0; 200;0 ; 0 ; 0"
End With

End Sub

Une Idée?

Merci d'avance
pnlop
 
Dernière édition:

Paritec

XLDnaute Barbatruc
Re : problème de code ListBox

re pnlop le forum
a+
papou:eek:

VB:
Private Sub ListBox1_Click()
    Dim i&, j&, x&, fin& ' là c'est pour déclarer les variables en long
    If ListBox1.ListIndex = -1 Then Exit Sub 'ça j'ai compris!
    ListBox2.Clear'ça aussi
    With Sheets(ListBox1.Value)' ça aussi!
        fin = .Range("A" & Rows.Count).End(xlUp).Row 'là c'est pour trouver la dernière ligne de la liste de ta feuille
        For i = 1 To fin 'là c'est pour faire une boucle de la ligne 1 à le dernière ligne remplie
            If .Range("B" & i) <> "" Then  'là je vérifie si la colonne B contient bien une valeur et si oui j'ajoute à la listbox
            ListBox2.AddItem .Range("B" & i).Value   'ajout à la listbox
            For a = 1 To 4 ' là je donne à la variable a la valeur de 1 à 4 pour les colonnes
                ListBox2.List(ListBox2.ListCount - 1, a) = .Cells(i, a) 'là j'ajoute les colonnes 1 à 4
            Next a
        End If
    Next i
End With
End Sub
 
Dernière édition:

Discussions similaires

Réponses
4
Affichages
165
Réponses
17
Affichages
760

Statistiques des forums

Discussions
311 725
Messages
2 081 949
Membres
101 851
dernier inscrit
vaiata