RechercheV dans un userform vba excel [Résolu]

avyrex1926 360 Messages postés dimanche 3 décembre 2006Date d'inscription 3 janvier 2012 Dernière intervention - 23 janv. 2007 à 00:53 - Dernière réponse : cs_MPi 3863 Messages postés mardi 19 mars 2002Date d'inscription 13 mars 2018 Dernière intervention
- 23 janv. 2007 à 11:53
Re bonjour à tous,

Me revoilà avec une nouvelle question.

J'ai un userform avec ComboBox1 - ComboBox2 - TextBox1 - TextBox2 - TextBox3 - TextBox4 - TextBox5  et  TextBox6.

Je voudrais que si j'entre une données du ComboBox1 (Colonne A)  ou ComboBox2 (Colonne B)qui sont reliés avec l'onglet Liste des clients, que les données de la colone C, D, E, F, G, H se transcrivent dans les TextBox1 à 6. Comme une rechercheV.

Je voudrais que les données s'inscrivent automatiquement dans les TextBox.

Comment faire?
Afficher la suite 

7 réponses

Répondre au sujet
cs_MPi 3863 Messages postés mardi 19 mars 2002Date d'inscription 13 mars 2018 Dernière intervention - 23 janv. 2007 à 11:14
+3
Utile
C'est assez simple, il me semble...
Tu as la Function déjà faite, tu as le genre d'appel à faire... quoi de plus ?

Bon, je commence à douter de la clarté de mes explications...
Copie la Function Recherche, crée une procédure BlaBla() et fais un test
Lorsque tu cliques sur un bouton, appelle la procédure BlaBla

Sub BlaBla()
Dim Ligne as long

'sélection de la feuille
Sheets("MaFeuilleàRechercher").Activate
Ligne Recherche(combobox 1 .text, <gras>1) ' recherche du texte sélectionné du combobox1 dans la colonne A ( columns("A:A") </gras> Columns(1) )

If Ligne = 0 then exit sub ' valeur non trouvée


On a trouvé la valeur sur la ligne Ligne
Textbox1 = Range("C" & Ligne)
Textbox2 = Range("D" & Ligne)

Si tu veux faire la recherche sur la colonne B
Ligne = Recherche(combobox2.text, 2) ' recherche du texte sélectionné dans la colonne B
If Ligne = 0 then exit sub ' valeur non trouvée
Textbox1 = Range("C" & Ligne)

Textbox2 = Range("D" & Ligne)

est-ce plus clair ?

MPi
Cette réponse vous a-t-elle aidé ?  
Commenter la réponse de cs_MPi
cs_MPi 3863 Messages postés mardi 19 mars 2002Date d'inscription 13 mars 2018 Dernière intervention - 23 janv. 2007 à 02:23
0
Utile
Il te faudrait faire Recherche de la colonne A jusqu'à ce que tu trouves la valeur du Combo1. Quand tu trouves la valeur, tu vérifies éventuellement que la cellule en B soit identique au Combo2. Si c'est le cas, tu replis tes textbox avec les cellules de droite sur cette ligne trouvée.

Je dis éventuellement parce que tu ne dis pas si c'est possible qu'une donnée en A ou en B puisse se répéter.

Si ce n'est pas le cas une simple recherche dans la colonne voulue sera assez.
Tu peux utiliser une Function comme celle-ci pour retracer la ligne

Function Recherche(Valeur, Colonne As Integer) As Long
    Dim Trouve As Range
   
    Set Trouve = Columns(Colonne).Find(Valeur, , xlValues, xlWhole)
    If Not Trouve Is Nothing Then  'Trouvé
        Recherche = Trouve.Row
    End If
End Function

Tu l'appelles comme ceci
Dim Ligne as Long
Ligne = Recherche(LeTexte, NumeroDeColonne)
Textbox1 = Range("C" & Ligne)
Textbox2 = Range("D" & LIgne)
.................etc

MPi
Commenter la réponse de cs_MPi
cs_MPi 3863 Messages postés mardi 19 mars 2002Date d'inscription 13 mars 2018 Dernière intervention - 23 janv. 2007 à 02:29
0
Utile
J'ai oublié de mentionner que la Function doit retourner 0, disons, si la valeur n'a pas été trouvée pour éviter les erreurs

Donc,
Function Recherche(Valeur, Colonne As Integer) As Long
    Dim Trouve As Range
   
    Set Trouve = Columns(Colonne).Find(Valeur, , xlValues, xlWhole)
    If Not Trouve Is Nothing Then  'Trouvé
        Recherche = Trouve.Row
    Else
        Recherche = 0
    End If
End Function

Et tu vérifies la valeur de Ligne avant de remplir tes textbox
Ligne = Recherche(LeTexte, NumeroDeColonne)
If Ligne > 0 then
'Remplir les textbox

Et comme le paramètre Valeur de la Function est Variant, tu peux aussi rechercher un chiffre

MPi
Commenter la réponse de cs_MPi
avyrex1926 360 Messages postés dimanche 3 décembre 2006Date d'inscription 3 janvier 2012 Dernière intervention - 23 janv. 2007 à 02:36
0
Utile
Excuse moi mais j'ai un peux de difficulté à comprendre tous ça.

Désolé je suis apprenti vba 
Commenter la réponse de avyrex1926
avyrex1926 360 Messages postés dimanche 3 décembre 2006Date d'inscription 3 janvier 2012 Dernière intervention - 23 janv. 2007 à 02:54
0
Utile
En réalité, dans le comboBox1 ( Donnée de la colone A), je choisi le numéro de client donc si je choisi par exemple le numéro de client 123456, dans le combobox 2 et tous les textbox, il me donne les info du client qui se retrouve dans l'onglet Liste des clients qui sont représenté par ligne dans la page excel exemple ligne 4 car ligne 5 et + represente les autres clients.
Donc sur la ligne 4, colonne A représente # de client, colonne B Nom du client, Colonne C adresse etc........

Je veux aussi avoir le choix aussi par nom de client (ComboBox2) pour remplire l'autre ComboBox1 et les textBox.
Commenter la réponse de avyrex1926
avyrex1926 360 Messages postés dimanche 3 décembre 2006Date d'inscription 3 janvier 2012 Dernière intervention - 23 janv. 2007 à 11:46
0
Utile
Merci beaucoup MPI pour ton aide 
Commenter la réponse de avyrex1926
cs_MPi 3863 Messages postés mardi 19 mars 2002Date d'inscription 13 mars 2018 Dernière intervention - 23 janv. 2007 à 11:53
0
Utile
Y a pas de quoi
Bonne continuation

MPi
Commenter la réponse de cs_MPi

Vous n'êtes pas encore membre ?

inscrivez-vous, c'est gratuit et ça prend moins d'une minute !

Les membres obtiennent plus de réponses que les utilisateurs anonymes.

Le fait d'être membre vous permet d'avoir un suivi détaillé de vos demandes et codes sources.

Le fait d'être membre vous permet d'avoir des options supplémentaires.