Listbox
amram.a
Messages postés
56
Date d'inscription
Statut
Membre
Dernière intervention
-
ThauTheme Messages postés 1442 Date d'inscription Statut Membre Dernière intervention -
ThauTheme Messages postés 1442 Date d'inscription Statut Membre Dernière intervention -
Bonjour,
j'ais un tableau de 25 colonnes dont de A à Y
j'ai fais un userform sur le quel, j'ai mis comboBox1 et listBox1
maintenant, j'aimerais qu'en sectionnant une ville dans la comboBox1 , touts les membre enregistré de cette ville affiche dans la lisbox1
ville se trouve dans la colonne H
mais mon soucis est que la liste des villes
affiche mais, aucun membre enregistré de la ville sélectionné n'affiche dans la listbox1
voici si déssou le code saisis
Private Sub ComboBox1_Change()
Dim a As Integer
Dim cherche As String
cherche = ComboBox1.Value
Dim i As Integer
f = 0
Me.ListBox1.Clear
Set f = Sheets("IDENTIFICATION")
For Each C In Range(f.[A5], f.[A70].End(xlUp))
If C.Offset(0, 2) = Me.ComboBox1 Then
Me.ListBox1.AddItem
Me.ListBox1.List(i, 0) = C.Offset(0, 0)
i = i + 1
End If
Next C
End Sub
j'ais un tableau de 25 colonnes dont de A à Y
j'ai fais un userform sur le quel, j'ai mis comboBox1 et listBox1
maintenant, j'aimerais qu'en sectionnant une ville dans la comboBox1 , touts les membre enregistré de cette ville affiche dans la lisbox1
ville se trouve dans la colonne H
mais mon soucis est que la liste des villes
affiche mais, aucun membre enregistré de la ville sélectionné n'affiche dans la listbox1
voici si déssou le code saisis
Private Sub ComboBox1_Change()
Dim a As Integer
Dim cherche As String
cherche = ComboBox1.Value
Dim i As Integer
f = 0
Me.ListBox1.Clear
Set f = Sheets("IDENTIFICATION")
For Each C In Range(f.[A5], f.[A70].End(xlUp))
If C.Offset(0, 2) = Me.ComboBox1 Then
Me.ListBox1.AddItem
Me.ListBox1.List(i, 0) = C.Offset(0, 0)
i = i + 1
End If
Next C
End Sub
3 réponses
Bonjour Amram.a, bonjour le forum,
Très étrange ton f = 0. C'est incompatible avec Range(f.[A5], f.[A70].End(xlUp)). je pense que tu voulais plutôt initialiser i mais ce n'est pas nécessaire, donc cette ligne est à supprimer...
Ensuite, tu recherches dans les cellules de la colonne A une valeur décalée de deux colonnes à droite (=> colonne C) et tu dis que la ville se trouve en colonne H. Il est donc normal que ça n'affiche rien. De A à H ça donne Offset(0, 7) et pas Offset(0, 2)... Le code devrait être :
Très étrange ton f = 0. C'est incompatible avec Range(f.[A5], f.[A70].End(xlUp)). je pense que tu voulais plutôt initialiser i mais ce n'est pas nécessaire, donc cette ligne est à supprimer...
Ensuite, tu recherches dans les cellules de la colonne A une valeur décalée de deux colonnes à droite (=> colonne C) et tu dis que la ville se trouve en colonne H. Il est donc normal que ça n'affiche rien. De A à H ça donne Offset(0, 7) et pas Offset(0, 2)... Le code devrait être :
Private Sub ComboBox1_Change() Dim cherche As String Dim f As Worksheet Dim a As Integer Dim C As Range Dim i As Integer cherche = ComboBox1.Value Me.ListBox1.Clear Set f = Sheets("IDENTIFICATION") For Each C In Range(f.[A5], f.[A70].End(xlUp)) If C.Offset(0, 7) = Me.ComboBox1 Then Me.ListBox1.AddItem Me.ListBox1.List(i, 0) = C.Value i = i + 1 End If Next C End Sub
Mais j'ais un petit soucis
tous les colonne n'affiches pas .
voici si dessous la liste
CODE , ODRE ALPHABETIQUE, NOM & PRÉNOMS, DATE, LIEU, N° CNI OU EXTRAIS, VILLE D'ORIGINE, RESID-ACT, SITUATION FAMILIALE, CONJOINT(E), DATE, LIEU, NBRE D'ENFTS, DATE, LIEU, LIEU DE CULTE, BAPTISE(E), DATE, LIEU, N° L DE MBRE, EGLISE, SOCIALE, TEL, CEL, ADRESSE ELECTRONIQUE
mais j'ais remarqué qu'après la colonne J (SITUATION FAMILIALE) ça ne continus plus
merci d'avance
tous les colonne n'affiches pas .
voici si dessous la liste
CODE , ODRE ALPHABETIQUE, NOM & PRÉNOMS, DATE, LIEU, N° CNI OU EXTRAIS, VILLE D'ORIGINE, RESID-ACT, SITUATION FAMILIALE, CONJOINT(E), DATE, LIEU, NBRE D'ENFTS, DATE, LIEU, LIEU DE CULTE, BAPTISE(E), DATE, LIEU, N° L DE MBRE, EGLISE, SOCIALE, TEL, CEL, ADRESSE ELECTRONIQUE
mais j'ais remarqué qu'après la colonne J (SITUATION FAMILIALE) ça ne continus plus
merci d'avance
Re,
En pièce jointe, un exemple avec code commenté d'une méthode très rapide. La propriété [RowSource] de la Combobox1 et de la ListBox1 est vierge. Cette propriété est incompatible avec cette méthode...
https://www.cjoint.com/c/GDbxx02WMYR
En pièce jointe, un exemple avec code commenté d'une méthode très rapide. La propriété [RowSource] de la Combobox1 et de la ListBox1 est vierge. Cette propriété est incompatible avec cette méthode...
https://www.cjoint.com/c/GDbxx02WMYR
voilà ce que j'ai puis faire mais ça ne passe pas
cherche = ComboBox1.Value
Me.ListBox1.Clear
Set f = Sheets("IDENTIFICATION")
For Each C In Range(f.[A5], f.[A70].End(xlUp))
If C.Offset(0, 7) = Me.ComboBox1 Then
Me.ListBox1.AddItem
Me.ListBox1.List(i, 0) = C.Value
Me.ListBox1.List(i, 1) = C.Offset(0, 1)
Me.ListBox1.List(i, 2) = C.Offset(0, 2)
Me.ListBox1.List(i, 3) = C.Offset(0, 3)
Me.ListBox1.List(i, 4) = C.Offset(0, 4)
Me.ListBox1.List(i, 5) = C.Offset(0, 5)
Me.ListBox1.List(i, 6) = C.Offset(0, 6)
Me.ListBox1.List(i, 7) = C.Offset(0, 7)
Me.ListBox1.List(i, 8) = C.Offset(0, 8)
Me.ListBox1.List(i, 9) = C.Offset(0, 9)
Me.ListBox1.List(i, 7) = C.Offset(0, 7)
Me.ListBox1.List(i, 8) = C.Offset(0, 8)
Me.ListBox1.List(i, 9) = C.Offset(0, 9)
Me.ListBox1.List(i, 9) = C.Offset(0, 10)
Me.ListBox1.List(i, 9) = C.Offset(0, 11)
Me.ListBox1.List(i, 9) = C.Offset(0, 12)
Me.ListBox1.List(i, 9) = C.Offset(0, 13)
Me.ListBox1.List(i, 9) = C.Offset(0, 14)
Me.ListBox1.List(i, 9) = C.Offset(0, 15)
Me.ListBox1.List(i, 9) = C.Offset(0, 16)
Me.ListBox1.List(i, 9) = C.Offset(0, 17)
Me.ListBox1.List(i, 9) = C.Offset(0, 18)
Me.ListBox1.List(i, 9) = C.Offset(0, 19)
Me.ListBox1.List(i, 9) = C.Offset(0, 20)
Me.ListBox1.List(i, 9) = C.Offset(0, 21)
Me.ListBox1.List(i, 9) = C.Offset(0, 22)
Me.ListBox1.List(i, 9) = C.Offset(0, 23)
Me.ListBox1.List(i, 9) = C.Offset(0, 24)
Me.ListBox1.List(i, 9) = C.Offset(0, 25)
i = i + 1
End If
Next C
End Sub
https://www.cjoint.com/c/GDdwvFKOH2h
cherche = ComboBox1.Value
Me.ListBox1.Clear
Set f = Sheets("IDENTIFICATION")
For Each C In Range(f.[A5], f.[A70].End(xlUp))
If C.Offset(0, 7) = Me.ComboBox1 Then
Me.ListBox1.AddItem
Me.ListBox1.List(i, 0) = C.Value
Me.ListBox1.List(i, 1) = C.Offset(0, 1)
Me.ListBox1.List(i, 2) = C.Offset(0, 2)
Me.ListBox1.List(i, 3) = C.Offset(0, 3)
Me.ListBox1.List(i, 4) = C.Offset(0, 4)
Me.ListBox1.List(i, 5) = C.Offset(0, 5)
Me.ListBox1.List(i, 6) = C.Offset(0, 6)
Me.ListBox1.List(i, 7) = C.Offset(0, 7)
Me.ListBox1.List(i, 8) = C.Offset(0, 8)
Me.ListBox1.List(i, 9) = C.Offset(0, 9)
Me.ListBox1.List(i, 7) = C.Offset(0, 7)
Me.ListBox1.List(i, 8) = C.Offset(0, 8)
Me.ListBox1.List(i, 9) = C.Offset(0, 9)
Me.ListBox1.List(i, 9) = C.Offset(0, 10)
Me.ListBox1.List(i, 9) = C.Offset(0, 11)
Me.ListBox1.List(i, 9) = C.Offset(0, 12)
Me.ListBox1.List(i, 9) = C.Offset(0, 13)
Me.ListBox1.List(i, 9) = C.Offset(0, 14)
Me.ListBox1.List(i, 9) = C.Offset(0, 15)
Me.ListBox1.List(i, 9) = C.Offset(0, 16)
Me.ListBox1.List(i, 9) = C.Offset(0, 17)
Me.ListBox1.List(i, 9) = C.Offset(0, 18)
Me.ListBox1.List(i, 9) = C.Offset(0, 19)
Me.ListBox1.List(i, 9) = C.Offset(0, 20)
Me.ListBox1.List(i, 9) = C.Offset(0, 21)
Me.ListBox1.List(i, 9) = C.Offset(0, 22)
Me.ListBox1.List(i, 9) = C.Offset(0, 23)
Me.ListBox1.List(i, 9) = C.Offset(0, 24)
Me.ListBox1.List(i, 9) = C.Offset(0, 25)
i = i + 1
End If
Next C
End Sub
https://www.cjoint.com/c/GDdwvFKOH2h
Bonjour Amram.a, bonjour le forum,
Tu n'as absolument pas utilisé la méthode que je t'ai proposée !?...
Ton fichier modifié à télécharger. J'ai supprimé la propriété [ColumnHeads] non compatible avec cette méthode mais le code affiche la ligne des étiquettes. J'ai aussi supprimé la propriété [ColumnCount] qui est définie à l'initialisation de l'UserForm.
Il n'y a qu'une seule procédure d'initialisation pour une UserForm. Initialise_2 n'existe pas et ne fonctionnera pas !... Je l'ai supprimée aussi. Code commenté...
Tu remarqueras que la première colonne de la ListBox1 est cachée. Elle contient le numéro de ligne. Cela permet de retrouver dans la tableau la ligne d'un élément sélectionne de la ListBox1. Tu ne t'en sers visiblement pas mais c'est juste pour que tu comprennes. Imaginons que tu aies la procédure DblClick de la LisTbox1, la variable Ligne te permet de d'accéder à la ligne de l'élément double-cliqué (plus 4 car la première ligne du tableau commence à la ligne 5...) :
Le fichier :
https://www.cjoint.com/c/GDekl5DxDcc
Tu n'as absolument pas utilisé la méthode que je t'ai proposée !?...
Ton fichier modifié à télécharger. J'ai supprimé la propriété [ColumnHeads] non compatible avec cette méthode mais le code affiche la ligne des étiquettes. J'ai aussi supprimé la propriété [ColumnCount] qui est définie à l'initialisation de l'UserForm.
Il n'y a qu'une seule procédure d'initialisation pour une UserForm. Initialise_2 n'existe pas et ne fonctionnera pas !... Je l'ai supprimée aussi. Code commenté...
Tu remarqueras que la première colonne de la ListBox1 est cachée. Elle contient le numéro de ligne. Cela permet de retrouver dans la tableau la ligne d'un élément sélectionne de la ListBox1. Tu ne t'en sers visiblement pas mais c'est juste pour que tu comprennes. Imaginons que tu aies la procédure DblClick de la LisTbox1, la variable Ligne te permet de d'accéder à la ligne de l'élément double-cliqué (plus 4 car la première ligne du tableau commence à la ligne 5...) :
Private Sub ListBox1_DblClick(ByVal Cancel As MSForms.ReturnBoolean) Dim Ligne As Long With Me.ListBox1 Ligne = CInt(.Column(0, .ListIndex)) + 4 End With End Sub
Le fichier :
https://www.cjoint.com/c/GDekl5DxDcc
une fois de plus encore merci
ça marche parfaitement