If UCase(Recherche) = UCase(Left(C, Len(Recherche))) Then

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 !

Evelynetfrancois

XLDnaute Impliqué
BONJOUR a tous
(je n ai garder que l userform bien degrossi de la partie du programme qui me pose probleme )

Actuellement , je peux rechercher un article par alpha (voir fichier usf) en tapant sa premiere lettre ,.....(ou plus..)

je souhaiterais egalement pouvoir alimenter cette meme listbox1 toujours en alpha , mais en tapant la réference(chiffre de la col A) du produit..

auriez-vous une super idée ??je vous en remercie d avance !!!
bonne journée a tous

E et F
 

Pièces jointes

Re : If UCase(Recherche) = UCase(Left(C, Len(Recherche))) Then

Bonjour,

Je ne crois pas avoir très bien compris... Si tu ajoutes un autre TextBox réservé à la saisie des références et que tu fais une recherche avec cette référence tu vas tout de suite trouver le bon produit : il suffit donc d'ajouter un textbox pour les références.

Sinon tu peux aussi ajouter un test à l'entrée de la textbox pour savoir si c'est de l'alpha ou du numérique et avoir 2 macros différentes pour ta listbox.

Cordialement
 
Re : If UCase(Recherche) = UCase(Left(C, Len(Recherche))) Then

Tout dabord Spitnolan08 merci pour ta reactivité !!!

Si tu ajoutes un autre TextBox réservé à la saisie des références et que tu fais une recherche avec cette référence tu vas tout de suite trouver le bon produit : il suffit donc d'ajouter un textbox pour les références

Quand (moi) je le fais j obtiens les ref dans ma listbox1, hors je souhaite les apellations alpha de ces references...

Sinon tu peux aussi ajouter un test à l'entrée de la textbox pour savoir si c'est de l'alpha ou du numérique et avoir 2 macros différentes pour ta listbox.

combiner les deux serait merveilleux !!! saisir alpha ou numerique me renvois le produit alpha dans listbox1

E et F
 
Re : If UCase(Recherche) = UCase(Left(C, Len(Recherche))) Then

Re,

Je te propose :
Code:
Private Recherche As String

Private Sub TextBox1_Change()
ListBox1.Clear
Recherche = TextBox1.Value
If IsNumeric(Recherche) Then
    RechercheV "A", 1
Else
    RechercheV "B", 0
End If
End Sub

Private Function RechercheV(Col As String, Decal As Byte)
Dim Plage As Range,  C As Range
Dim Ligne As Integer
Dim Adresse As String
Ligne = Sheets("BASE").Range(Col & "65536").End(xlUp).Row
Set Plage = Sheets("BASE").Range(Col & "3:" & Col & Ligne)
    With Plage
        Set C = .Find(Recherche)
        If Not C Is Nothing Then
            Adresse = C.Address
            Do
                 If UCase(Recherche) = UCase(Left(C, Len(Recherche))) Then
                    With ListBox1
                        .AddItem C.Offset(0, Decal) '
                        .List(.ListCount - 1, 1) = C.Row
                    End With
                 End If
                Set C = .FindNext(C)
            Loop While Not C Is Nothing And C.Address <> Adresse
        End If
    End With
End Function
en conservant uniquement TextBox1.

Cordialement

Edit : Je n'ai fait que reprendre ton code en y ajoutant la fonctionnalité proposée.

Edit 2 : J'ai modifié le code car j'avais omis de déplacer les déclarations de variables...
 
Dernière édition:
Re : If UCase(Recherche) = UCase(Left(C, Len(Recherche))) Then

RE Spitnolan08
je viens de tester.... puis de mettre ton code dans mon programme complet
que dire ??............... tout simplement génial ,aucun bug !! tout s'enchaine correctement avec le reste de ma macro ........la perfection !!!
je te remercie vraiment beaucoup , pour ta rapidite et la justesse de ta macro
te souhaitant un bon dimanche
merci !!!
E et F
 
Re : If UCase(Recherche) = UCase(Left(C, Len(Recherche))) Then

BONSOIR tout le monde

je garde le meme fil .................que je fais remonter pour une question suivante...

Est il possible d envoyer dans la listbox , non pas une infos mais deux
c est a dire les noms de la colonnes B (ca cest la macro actuelle de Spitnolan08
) + ceux de la meme ligne , colonne F

merci d avance et bonne soirée a tous

E et F
 
Re : If UCase(Recherche) = UCase(Left(C, Len(Recherche))) Then

BONJOUR Spitnolan08, le forum
un tres grand MERCI
C,est exactement ce que je souhaitais
je vais pouvoir bien avancer ....
bonne journée et au plaisir de te lire de nouveau ..

E et F

(oups ce retard , j etais sur la route..)
 
Re : If UCase(Recherche) = UCase(Left(C, Len(Recherche))) Then

Bonjour à tous,

J'ai récupéré la fonction de recherche de Spitnolan08. Elle fait son boulot à merveille. Je m'en sers pour rechercher le nom d'un maître de stage.

Dans un userform, je clique sur un bouton Recherche qui lance la macro. Une fois le maître de stage coché, je voudrais récupérer toutes les infos en cliquant sur un bouton OK ajouté après la textbox de recherche et que ces infos s'écrivent dans le userform précédent.

Merci pour toutes les infos que l'on trouve sur ce forum.

Xav
 
- 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

Discussions similaires

Réponses
125
Affichages
12 K
Réponses
9
Affichages
1 K
Retour