Boostez vos compétences Excel avec notre communauté !
Rejoignez Excel Downloads, le rendez-vous des passionnés où l'entraide fait la force.
Apprenez, échangez, progressez – et tout ça gratuitement !
👉 Inscrivez-vous maintenant !
Mon listbox1 est donc placé dans un userform.
Ce que j'aimerais, c'est introduire au dessus du listbox1, une zone de texte, dans laquelle on rentre les lettres du client que l'on recherche
Par exemple : ALFRED
Dès que l'on rentre le A... j'aimerais que le curseur de la listbox se déplace sur la lettre A, puis lettre on rajoute L... se place sur AL etc etc
Es ce faisable avec excel ?
Merci pour votre aide par avance
un petit bout de code peut me suffir à faire la suite.
Re : Listbox = Liste des clients...Besoin d'une selection lettre à lettre
Bonsoir.
Effectivement, ton code marche niquel.
Ca provenait donc juste de la sélection de feuille. . .
Quel idiot je suis...
Et pour le tri, il s'agit d'un tri sur A1:A1000 erreur de ma part.
Merci beaucoup en tout cas
Bonne soirée 🙂
Re : Listbox = Liste des clients...Besoin d'une selection lettre à lettre
bonsoir à tous
content que le dictionary vous plaise 🙂
jcgl, pour remplir une listbox sans doublon, sans passer par une colonne de la feuille :
Code:
Private Sub UserForm_Initialize()
Dim Data
Dim Tablo, i As Integer
Set Data = CreateObject("Scripting.Dictionary")
Tablo = Range("A1:A" & Range("A65536").End(xlUp).Row)
For i = 1 To UBound(Tablo)
Data.Item(Tablo(i, 1)) = Data.Item(Tablo(i, 1))
Next i
ListBox1.List = Application.Transpose(Data.Keys)
End Sub
suivant ton exemple posté plus tot dans la journée.
Re : Listbox = Liste des clients...Besoin d'une selection lettre à lettre
Bonjour
Je remonte cette discussion car le système de bibliothèque est vraiment super interessant !!
Mais je n'arrive pas complètement à le gérer, le comprendre.
voici mon code :
Code:
Dim Data
Dim Tablo, i As Integer
Set Data = CreateObject("Scripting.Dictionary")
Tablo = Range("A2:C" & Range("A65536").End(xlUp).Row)
For i = 1 To UBound(Tablo)
Data.Item(Tablo(i, 1)) = Data.Item(Tablo(i, 1)) + Tablo(i, 2) + Data.Item(Tablo(i, 3))
Next i
Range("I1", Cells(Data.Count, 9)) = Application.Transpose(Data.Items)
Range("K1", Cells(Data.Count, 11)) = Application.Transpose(Data.Items)
Range("L1", Cells(Data.Count, 12)) = Application.Transpose(Data.keys)
Peut etre il vous paraitra illogique ! J'en suis conscient.
Mais, étant donné que je ne le comprends qu'a moitié, j'ai travaillé à tatillon si je puis dire.
Ce que j'aimerais recevoir au final de ce code, c'est une liste avec les codes articles, leur désignation, et leur prix. ( colonne A, b et c )
Et tout ca, affiché dans une listbox d'un userform.
Le probleme, c'est que si j'insère une ligne du genre :
ListBox1.List = Application.Transpose(Data.Keys)
La listbox sera effectivement listée, mais seulement de la première colonne de donnée.
Alors .. es ce possible ?
Es ce faisable ?
Quelqu'un pour expliquer correctement ce code ?
Et tant que j'y suis, question bete :
Es t il possible dans un userform, d'avoir une zone de liste divisée en trois colonnes ? ( donnée de la colonne A, B et C sur la meme ligne ? )
Re : Listbox = Liste des clients...Besoin d'une selection lettre à lettre
Salut Jeanbulle
Bonjour le fil (un coucou particulier à mon Ami Hervé)
Bonjour le Forum
Jeanbulle as tu définie les propriété de ta listBox
Exemple à l'initialisation de ton Userform as tu mis
Code:
With Userform1
.listBox1.ColumnCount= 3 [COLOR=green] 'défini le nombre de _[/COLOR]
[COLOR=green] colonnes de la listBox[/COLOR]
.ColumnWidths="50;50;50" [COLOR=green]'défini la largeur des _[/COLOR]
[COLOR=green] Trois colonnes de la listBox[/COLOR]
End With
tiens nous au courant
une question car moi je ne comprends jamais vite Lol
tu veux remplir une listBox sur trois colonnes avec les elements qui concernent une liste sans doublons de produits (il faut que je relise le fil)
Bonne journée
Re : Listbox = Liste des clients...Besoin d'une selection lettre à lettre
Re
une adaptation de mon fichier à ce que j'ai cru comprendre Lol
si ce n'est pas cela met un exemple de ce que tu as et de ce que tu veux avec explications
Re : Listbox = Liste des clients...Besoin d'une selection lettre à lettre
Bonjour ChTi160, bonjour le forum.
Vraiment, je suis désolé, mais j'ai eu beau chercher dans le genre de terme
" Zone de liste multicolonne ", je n'avais pas trouvé.
Il faudrait que je puisse me trouver un bouquin qui explique chacune des fonctions ( listbox1.columncount par exemple 😛 )
Je ne connaissais pas... donc forcément, tu as déjà solutionné la moitié de mon probleme. 🙂 MERCI
Ensuite, oui je désirerais faire un tri sans doublon pour mettre dans une listbox comme tu le présentes sur l'exemple. Et egalement, j'ai besoin de la même chose, mais sans le tri de doublon.
Alors, avant de demander, je préfère chercher un petit peu.
je posterais un exemple de fichier si j'ai un nouveau probleme.
Mais je pense que le travail est déjà pas mal maché grace à ce forum.
A plus tard, et merci encore d'avoir pris de ton temps pour répondre.
il faut savoir que tu as acces à toutes ces propriétés via le clic droit sur l'object de ton choix dans l'editeur de Vb tu choisis propriétés et ensuite tu modifies et tu peux en selectionnant le terme à gauche de la liste des propriétés faire F1
tu dis
Ensuite, oui je désirerais faire un tri sans doublon pour mettre dans une listbox comme tu le présentes sur l'exemple. Et egalement, j'ai besoin de la même chose, mais sans le tri de doublon.
Re : Listbox = Liste des clients...Besoin d'une selection lettre à lettre
Re 🙂
C'est simplement qu'il me faudrait comprendre exactement comment TABLO gère les données qu'il trouve.
Et également, avec le code proposé plus haut, le systeme data.count
Si tu peux m'expliquer ca ^^ 🙂
pas facile de trouver l'explication exacte sur Internet, et pas dispo sur VB ?? chez moi en tout cas
pour ce qui est de la procèdure qui emploie Scripting.Dictionary je ne sais pas si tu peux de cette facon récupérer les trois colonnes L'objet Dictionary est un objet conservant des paires clés-éléments de données.
ou alors en bidouillant Clé et Item1 &"-"& Item2 Bonne fin de journée
Re : Listbox = Liste des clients...Besoin d'une selection lettre à lettre
Bonsoir à tous.
Je m'y suis penché à nouveau. Je comprends de mieux en mieux le code de chtit... mais je dirais que je l'ai complètement compris.
Par contre, Bruno.. ton fichier est super intéressant.
Il a l'air plus rapide d'exécution en tout cas.
Saurais tu comment l'ont pourrait faire pour récupérer dans le data à la fois la valeur variable "C" (qui recupere la colonne B), et par exemple, la valeur sur la meme ligne de la colonne D ?
L'histoire de : " data.Add C, CStr(C) "
Signifie : dans le data bdd, j'ajoute une valeur " Gaufres " , et CStr ? son boulot est de créer une erreur ??? ... j'comprends pas vraiment.
Egalement, si l'on tape une lettre supérieure à la lettre c, prenons G, lors de l'execution en pas à pas, la valeur C ( variable dans le code ), devient automatiquement "carolla rouge" ... Quelqu'un pour l'expliquer ?
Pétard !!! Faut être patient avec le vb quand meme ^^
Re : Listbox = Liste des clients...Besoin d'une selection lettre à lettre
Salut Jean
Bonjour le fil
Bonjour le Forum
arff je vais tenté de faire avancer le Chimilimblickkk
pour ce qui est de ta premiere demande
L'histoire de : " data.Add C, CStr(C) "
le Cstr (fonction)sert à convertir la donnée C en String (Texte)
pour ce qui est de l'erreur
tu avant le remplissage de la data On error resume next qui veut dire si il y a une erreur (c'est à dire si l'on veut ajouter une données déjà présente dans la data passe à la donnée suivant et juste après le remplissage On Error Goto 0 qui annule l'erreur générée plus haut et ainsi de suite pour ce qui est de la derniere demande au sujet de la variable qui prend la valeur de carolla rouge une explication qui n'engage que moi la methode find recherche une occurence en outre g elle le trouve(en premier) dans le mot carolla rouge donc C prend la valeur du mot qui contient cette occurence ensuite on fait un test If UCase(Recherche) = UCase(Left(C, Len(Recherche))) si g en Majuscule (UCase) et egale à la premiere lettre ( len(recherche ) donne 1 si textbox1 =g )en majuscule(UCase) du mot dans lequel le g à été trouvé ,ce qui n'est pas le cas , puisque dans carolla rouge c'est le 12 ème et ensuite on passe à l'occurence suivante ,en espèrant t'avoir aidé bonne journée
- Navigue sans publicité - Accède à Cléa, notre assistante IA experte Excel... et pas que... - Profite de fonctionnalités exclusives Ton soutien permet à Excel Downloads de rester 100% gratuit et de continuer à rassembler les passionnés d'Excel. Je deviens Supporter XLD