Listbox = Liste des clients...Besoin d'une selection lettre à lettre

Jeanbulle

XLDnaute Occasionnel
Bonjour...

Encore une fois, j'ai besoin de votre aide.
J'ai passé ce soir, deux heures et demi à rechercher comment je pouvais faire.

J'ai une listbox1, qui index toutes les données ( déjà classées par ordre alphabétique ) de la feuille 1, colonne A
Code:
 L = Sheets("Feuil1").Range("A65536").End(xlUp).Row
Plage = Sheets("Feuil1").Range("A1:A" & L).Address
ListBox1.RowSource = "Feuil1!" & Plage

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.

Grand merci encore ...

Erwan
 

Jeanbulle

XLDnaute Occasionnel
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 :)
 

Hervé

XLDnaute Barbatruc
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.

salut
 

Jeanbulle

XLDnaute Occasionnel
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 ? )

Merciiii de vos infos ;)

Bonne nuit les veilles tard ;)
 

ChTi160

XLDnaute Barbatruc
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
 

ChTi160

XLDnaute Barbatruc
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

Le Fichier : Regarde la pièce jointe ClasseurAlpha4.xls

Merci D'avance
Bonne journée
 

Pièces jointes

  • ClasseurAlpha4.xls
    37.5 KB · Affichages: 104
  • ClasseurAlpha4.xls
    37.5 KB · Affichages: 95

Jeanbulle

XLDnaute Occasionnel
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 :p )

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.

bonne journée
 

ChTi160

XLDnaute Barbatruc
Re : Listbox = Liste des clients...Besoin d'une selection lettre à lettre

Salut jean
pour ce qui est de la suite j'attends donc Lol

tu dis
Il faudrait que je puisse me trouver un bouquin qui explique chacune des fonctions ( listbox1.columncount par exemple )
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.
c'est à dire que tu as plusieurs fois le même produit avec la même reférence et le même prix ??

dans l'attente
Bonne fin de Journée
 

Jeanbulle

XLDnaute Occasionnel
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

merci encore
c'est super sympa de m'aider
 

ChTi160

XLDnaute Barbatruc
Re : Listbox = Liste des clients...Besoin d'une selection lettre à lettre

re jean
tu peux aussi aller voir du coté des pages de MichelXLD qui sont une mine d'or
Lien supprimé

je te remets mon fichier avec des commentaires

le fichier :

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
 

Pièces jointes

  • ClasseurAlpha4.xls
    30.5 KB · Affichages: 62
  • ClasseurAlpha4.xls
    30.5 KB · Affichages: 63
Dernière édition:

Jeanbulle

XLDnaute Occasionnel
Re : Listbox = Liste des clients...Besoin d'une selection lettre à lettre

Super
Merci chtit160

Je lirais ca un peu plus tard, que je suis au travail, et beaucoup de client arrive en boutique ;)

Je ne manquerais pas de faire un suivi de cette discussion dans la semaine
:p

d'ici la, bon week end
 
C

Compte Supprimé 979

Guest
Re : Listbox = Liste des clients...Besoin d'une selection lettre à lettre

Bonsoir tout le monde,

Désolé de m'immiscer comme ça dans le post, mais j'ai un USF qui pourrait bien intéressé pas mal de monde.

J'avais trouvé ça sur le forum il y'a quelques temps ;)

Dans l'USF en question, on a un ListBox qui affiche toutes les occurences correspondantes à la saisie lettre par lettre dans le textbox.

Je ne sais pas si j'ai bien été clair, mais voilà le fichier :D
 

Pièces jointes

  • Occurences Listbox par Saisie dans Textbox.xls
    37.5 KB · Affichages: 152

JCGL

XLDnaute Barbatruc
Re : Listbox = Liste des clients...Besoin d'une selection lettre à lettre

Bonsoir à tous
Salut JM Tchou-Thou,:)
Salut Bruno, :)

Et Salut à Véri qui est "ressuscité" sur XLD grâce à Bruno

Juste une petite incursion qui n'apporte rien au fil mais je ne pouvais pas résister au plaisir de saluer mon ami Véri ;)

Bonne soirée à tous
 

Jeanbulle

XLDnaute Occasionnel
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 ^^
 

ChTi160

XLDnaute Barbatruc
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
 
Dernière édition:

Discussions similaires

Statistiques des forums

Discussions
312 777
Messages
2 092 029
Membres
105 156
dernier inscrit
GermainPair