OVH Cloud OVH Cloud

Distribuer un tableau sur 3 ListBox

35 réponses
Avatar
Apitos
Bonjour =C3=A0 tous,

J'ai un tableau de 6 colonnes, et j'aimerais bien le distribuer sur 3 ListB=
ox.

La premi=C3=A8re ListBox contiendra la premi=C3=A8re colonne du tableau

La deuxi=C3=A8me ListBox contiendra les trois colonnes suivantes =C3=A0 sav=
oir 2,3 et 4

La troisi=C3=A8me ListBox contiendra la derni=C3=A8re colonne du tableau.

Est-ce possible ?

Merci d=E2=80=99avance.

10 réponses

1 2 3 4
Avatar
Apitos
Pour une meilleure vue, voici un bout de code :
'-----
Private Sub TxtFix_Change()
Nbmax = Sheets("Base").Range("A100000").End(xlUp).Row
If Me.TxtFix <> "" Then
Me.TextNom = ""
Me.TxtMob = ""
Me.ListClient.Clear
Me.ListFix.Clear
Me.ListMob.Clear
Dim tm As Single
tm = Timer
Dim tTab(), tExtract()
Dim iIdx%
tTab = Range("A2:J" & Range("E" & Rows.Count).End(xlUp).Row).Valu e
If Len(Me.TxtFix) >= 2 Then
For x = 1 To UBound(tTab, 1)
For y = 2 To UBound(tTab, 2)
If InStr(UCase(tTab(x, y)), UCase(Me.TxtFix.Value)) > 0 Then
iIdx = iIdx + 1
ReDim Preserve tExtract(7, iIdx)
tExtract(0, iIdx - 1) = tTab(x, 1) + 1
tExtract(1, iIdx - 1) = tTab(x, 5)
tExtract(2, iIdx - 1) = tTab(x, 6)
tExtract(3, iIdx - 1) = tTab(x, 7)
tExtract(4, iIdx - 1) = tTab(x, 8)
tExtract(5, iIdx - 1) = tTab(x, 9)
tExtract(6, iIdx - 1) = tTab(x, 10)
If y <> 5 Then tExtract(2, iIdx - 1) = tTab(x, y)
Exit For
End If
Next
Next
End If
Me.ListClent.List = tExtract(1)
Me.ListFix.List = tExtract(2) & tExtract(3) & tExtract(4)
Me.ListMob.List = tExtract(5) & tExtract(6)
MsgBox "Durée d'exécution: " & Timer - tm & " s"
End If
End Sub
'-----
Avatar
MichD
Bonjour,
Voici un fichier exemple :
https://www.cjoint.com/c/ILuvJPYLVnj
MichD
Avatar
Apitos
Bonjour MichD,
J'aimerais remplir les ListBox depuis un tableau dimensionné, comme in diquer dans le bout de code fourni.
Merci.
Avatar
MichD
Le 20/12/19 à 17:41, Apitos a écrit :
Bonjour MichD,
J'aimerais remplir les ListBox depuis un tableau dimensionné, comme indiquer dans le bout de code fourni.
Merci.

Explique ton code ou publie un classeur avec ton tableau dimensionné et
le résultat que tu recherches.
Si ton code ne fonctionne pas, comment veux-tu que je devine ce qu'est
ton problème si tu ne l'expliques pas. Désolé, ça ne me tente pas
d'essayer de comprendre...!
MichD
Avatar
MichD
Le 21/12/19 à 12:28, Apitos a écrit :
Bonjour MichD,
Voila un fichier exemple :
https://www.cjoint.com/c/ILvrze7WO86
Colonne 1 (Titulaire) du tableau tExtract est affectée à ListClient
Colonne 2,3,4 (Fixe1,Fixe2,Fixe3) du tableau tExtract sont affectées à ListFix
Colonne 5,6 (Mobile1,Mobile2) du tableau tExtract sont affectées à ListMob
Merci d'avance.

Fournir le classeur c'est bien, tu pourrais pour le moins expliquer ce
que tu tentes de faire.
Dans ton tableau des données, la ligne 14 est totalement vide, pourquoi
laisser des lignes vides sans aucune donnée?
Que doit contenir les 3 listbox? seulement le contenu des cellules non
vide ou toute la colonne?
Au-dessus des 3 listbox, tu as des textbox servant à entrer je suppose
l'item que tu recherches? Où doit se faire la recherche pour chacune des
textbox? Seulement dans l'un des listbox ou dans les 3 textbox?
Ceci n'est seulement un exemple de questions auquel tu devrais répondre.
Du code, je peux en pondre mais je ne suis pas encore de deviner ce que
le demandeur veut.
MichD
Avatar
Michel__D
Bonjour,
Le 21/12/2019 à 22:24, Apitos a écrit :
Bon, j'ai en train de réaliser un gestionnaire d'annuaire téléphonique, dans lequel un titulaire peut avoir au minimum un seul ou plusieurs numéros de téléphone fixe (dans mon exemple 3 fixes), en plus il peut y avoir des numéros de mobiles.
Cet annuaire me servira dans mon service technique.
Le formulaire est utilisé pour aider à faire une gestion complète de l'annuaire dont on peut rechercher, ajouter, modifier ou supprimer un titulaire.
Dans ton tableau des données, la ligne 14 est totalement vide, pourquoi laisser des lignes vides sans aucune donnée?


Elle a du être glissée par erreur.
Que doit contenir les 3 ListBox? seulement le contenu des cellules non vide ou toute la colonne?


Les ListBox devront contenir le résultat des recherches, soit par "Titulaire", soit par numéro de téléphone "Fixe" ou par numéro de téléphone "Mobile".
Au-dessus des 3 listbox, tu as des textbox servant à entrer je suppose l'item que tu recherches? Où doit se faire la recherche pour chacune des textbox? Seulement dans l'un des listbox ou dans les 3 textbox?


La recherche peut se faire au moins par un seul TextBox.
On peut l'améliorer pour en faire un seul TextBox pour une recherche multi-mots, s’il est possible, bien sur.

Une façon de voir les choses :
https://mon-partage.fr/f/Q7mLc2Ig/
Avatar
Michel__D
Re,
Le 22/12/2019 à 19:07, Apitos a écrit :
Bonsoir MichD,

Non ce n'est pas MichD qui t'a répondu.
Apres quelques tests, et dans n'importe quel TextBox, si je tape un mot (mot*), une correspondance est trouvée, sinon, en tapant (*mot*), aucun résultat n'est retourné.
A ce que j'ai compris, la recherche s'exécute toujours de cette façon : (mot*) et non pas (*mot*).
Par exemple pour le champ titulaire, j'ai essayé avec le mot (TIT), dans le deuxième champ avec (11) et le dernier avec (22), aucun résultat obtenu.

Ben il ne te reste plus qu'à l'adapter à ton besoin :)
(le code est assez court cela ne devrait pas être trop difficile)
Avatar
MichD
Voici le fichier, quelques explications à l'intérieur de ce dernier.
https://www.cjoint.com/c/ILwsImnacKj
MichD
Avatar
Apitos
Bonsoir Michel, MichD,
Michel > Désolé de t'avoir confondu avec MichD.
MichD > Il n'y a pas de recherche dans l’annuaire, et la sélec tion simple directe dans les ListBox, ne sera pas facile si l’annua ire devra contenir des centaines de lignes.
Avatar
MichD
Le 22/12/19 à 18:32, Apitos a écrit :
Bonsoir Michel, MichD,
Michel > Désolé de t'avoir confondu avec MichD.
MichD > Il n'y a pas de recherche dans l’annuaire, et la sélection simple directe dans les ListBox, ne sera pas facile si l’annuaire devra contenir des centaines de lignes.

Voici un fichier exemple sur 2 manières de procéder, l'une des manières
fait une véritable recherche sur les champs "Titulaire" et "Titre1". Il
te restera à compléter la procédure, si tu veux avoir cela sur tous les
champs.
https://www.cjoint.com/c/ILxpb7C71Xj
MichD
1 2 3 4