Ceci est une page optimisée pour les mobiles. Cliquez sur ce texte pour afficher la vraie page.
  • Initiateur de la discussion Initiateur de la discussion salhisarra
  • Date de début Date de début

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 !

S

salhisarra

Guest
Bonjour à toutes et à tous,

Je cherche auprès de la communauté de programmeur qqu'un qui pourra m'aider dans mon programme VBA Excel.

L'idée est de faire a travers une textbox une option recherche dans ma basse de donnée et de me charger dans dans une listbox le resultat des noms de la colonne excel en fonction de la chaine de caracteres saisi car dans cette liste il est possible que plusieurs clients portent le meme nom.

Ma volonté serait de faire dans l'idée un peu comme une fonction recherche me permettant ensuite d'accéder au client dans la listbox. Sans recherche manuelle dans la liste.

Je vous remercie par avance de votre intérêt pour ma demande et de votre soutien et aide apportée.
Bien cordialement.
 

Pièces jointes

Re : listbox

Salut c'est tout à fait ce dont je recherchais, sa m'aide énormément. J'aimerais perfectionner cette liste avec les noms et prenoms bien a ligner de part et d'autre de la listbox. Serait-il possible que tu puisse m'aider stp ?
 
Re : listbox

Bonjour salhisarra, le forum,

Peut-être en utilisant un tableau à 2 dimensions pour "charger" le contenu dans la ListBox à 2 colonnes?
Teste ce code en lieu et place du précédent:
VB:
Private Sub TextBox1_Change()
ListBox1.Clear
    With Sheets("Feuil2")
        Dim tablo()
        ListBox1.ColumnCount = 2
        lig = 0
        For Each c In .[C2].Resize(Application.CountA(.[C:C]) - 1)
            If UCase(Left(c, Len(TextBox1.Value))) = UCase(TextBox1.Value) Then
                ReDim Preserve tablo(1, lig)
                tablo(0, lig) = c
                tablo(1, lig) = c.Offset(0, 1)
                lig = lig + 1
            End If
        Next c
        ListBox1.Column() = tablo
    End With
End Sub
 
Re : listbox

oui c'est exactement ce que je voulais mais y a un soucis lorsque j'ecris des lettres qui ne commence par la première du nom le programme bloque
 
Re : listbox

Re-bonjour,

lorsque j'ecris des lettres qui ne commence par la première du nom le programme bloque
Je suis parti du principe que tu ferais des adaptations au code proposé, en fonction de tes tests 😛

Ca devrait fonctionner si tu ajoutes:
Code:
On Error Resume Next
... juste avant
Code:
ListBox1.Column() = tablo
 
Re : listbox

je suis desolé mais j'ai une autre question stp je suis vraiment nul mais j'arrive pas a debloquer dans mon programme voila mon fichier lorsque j'ecris bail en haut dans le textbox et que je selectionne pr le faire apparaitre ds le textbox correspodant nom et prenom j'ai un decalage mais je ne trouve pas de solution pr extraire les elements selectionner pck si je pars d'une liste trop longue j'aimerai pouvoir la récuperer facilement avec un textbox
 

Pièces jointes

Re : listbox

Re²,

Tu te souviens que tu as demandé à améliorer ma première proposition? Dans le dernier fichier que tu déposes, tu n'utilises pas le code qui te convenait, en définitive 😱😕

Je suppose que ce que tu voudrais faire, maintenant, c'est sélectionner un nom-prénom dans la liste et faire apparaître ces deux infos dans tes deux TextBox?
- Si tu utilises, dans la ListBox, le premier code fourni, nom et prénom sont concaténés avec une espace comme séparateur. Tu vas faire comment pour les "splitter", si tu as des noms composés?
- Si tu as saisi les premiers caractères d'un nom dans le TextBox1, tous les noms de la Feuil2 n'apparaissent plus dans la ListBox. Ta boucle For i = 0 To Nb - 1 n'est donc pas adaptée.
- Pour des raisons semblables, le i dans UserForm1.ListBox1.Selected(i) ne correspond pas à la position du nom sélectionné dans la colonne C de la Feuil2 !!
- Quand tu écris Sheets("Feuil2").Range("A" & i + 2).Select, ... Pourquoi la colonne A ?? Et pourquoi i + 2
- Avec Controls("TextBox" & Y + 1), si Y vaut 0, au premier tour, tu pointes sur ton TextBox1!? Ca ne doit sans doute pas être ce que tu voulais!?

Je n'ai absolument pas le temps de tout corriger au fur et à mesure ... si quelqu'un veut prendre le relais, il/elle est le/la bienvenu(e)!
 
Re : listbox

si j'ai bien sur utiliser la formule du tableau que tu m'a fournis mais la feuille que je transmet et juste une feuille qui est une feuille de test que j'adapte en fonction de la feuille que je veux réaliser, c'est un fichier client. Dans lequel je voudrais ajouter des clients, supprimer des clients ............ Je vois bien que mon programme cloche bien car mon code est décaler mes je ne sais pas comment extrait le numéro de selection de la liste et obtenir les information de la deuxieme feuille pr les faire parvenir ds les textbox.
 
- 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
Assurez vous de marquer un message comme solution pour une meilleure transparence.

Discussions similaires

Réponses
10
Affichages
661
  • Question Question
XL 2021 listbox
Réponses
18
Affichages
740
Réponses
16
Affichages
1 K
Les cookies sont requis pour utiliser ce site. Vous devez les accepter pour continuer à utiliser le site. En savoir plus…