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 !

nono555

XLDnaute Occasionnel
Bonjour,

J'ai un programme dans lequel je voudrais chercher dans une table excel une valeur correspondant à une valeur saisie dans un useform (l'équivalent du recherchev mais en code VBA). ex : je rentre le nom d'un modèle, je retourne le prix associé.

Merci
 
Re : recherchev en VBA

Voilà un bout de code pour exemple

Code:
Sub recherche()
    Dim valeur, vt, rep
    Dim Msg1, Style, Title, Response1
    rep = Application.InputBox("Recherches", "Inscrivez le Nom Recherché", "Le Nom")
    Msg1 = "Voulez vous continuez la recherche ?"
    Style = vbYesNo + vbCritical + vbDefaultButton2

    valeur = rep  '<---- à adapter
    Title = "RECHERCHE de " & valeur
    Range("A1").Select
    On Error Resume Next
    ActiveSheet.Cells.Find(What:=valeur, After:=ActiveCell, LookIn:=xlFormulas, LookAt:= _
                           xlPart, SearchOrder:=xlByColumns, SearchDirection:=xlNext, MatchCase:=False) _
                           .Activate
    vt = Application.Find(valeur, ActiveCell)
    If vt = 2015 Then GoTo suite
    Response1 = MsgBox(Msg1, Style, Title)
    If Response1 = vbNo Then
        Exit Sub
    Else
        Do While Response1 = vbYes

            Cells.FindNext(After:=ActiveCell).Activate    '
            If ActiveCell.Column <> 1 Then Range("A1").End(xlDown).Select
            Response1 = MsgBox(Msg1, Style, Title)
        Loop
    End If
suite:
    If ActiveCell <> valeur Then MsgBox ("Le nom cherché n'a pas été trouvé ")
End Sub
 
Re : recherchev en VBA

Salut,

Un petit exemple avec Find, puisque perso, j'ai eu du mal a comprendre sa syntaxe au début. A incorporer dans ton code et en supposant que la valeur recherchée soit dans le Textbox1) :
Code:
Dim c As Range
'recherche dans toute la feuille (si tu veux faire la recherche sur une plage spécifique, modifie Cells par Range("A1:E100"))
Set c = .Cells.Find(Textbox1.Value, LookIn:=xlValues)
If Not c Is Nothing Then
    MsgBox "La valeur existe a l'adresse :" & c.Address
End If

@+

Edition : Arf, tu as ete plus rapide RGI...
 
Re : recherchev en VBA

bonjour

Application.VLookup(ValeurCherchée, [D18:E100], NumeroDeColonneRenvoyée,ValeurProcheOuiNon)

Où [D18:E100] représente la plage de recherche

Avec les même limites que la fonction de feuille de calcul (Aide sur RechercheV)
 
Re : recherchev en VBA

Bonjour Nono, bonjour le forum,

un approche simple (que tu devras adapter à ton cas) :

Code:
Sub Macro1()
Dim txt As String [COLOR=green]'déclare la variable txt[/COLOR]
Dim ch As Range [COLOR=green]'déclare la variable ch[/COLOR]
Dim plag As Range [COLOR=green]'déclare la variable plag[/COLOR]
 
Set plag = Sheets("Feuil1").Range("A1:J128") [COLOR=green]'définit la variable plag (à adapter)[/COLOR]
txt = Textbox1.Value [COLOR=green]'définit la variable txt (à adapter)[/COLOR]
 
With plag
    Set ch = .Find(txt) [COLOR=green]'définit la variable ch[/COLOR]
End With
 
If Not ch Is Nothing Then ch.Select [COLOR=green]'sélectionne la cellule contenant l'occurrence[/COLOR]
 
End Sub

Sélectionne Find et clique sur F1. L'aide de VBA te donnera de plus amples informations.

Édition :

Non C'est plus possible !!! Vous êtes trop rapides les gars. Je demande un contrôle anti dopage.... Salut à tous
 
Dernière édition:
Re : recherchev en VBA

Bonjour le fil , bonjour le forum,

Arffff ! Bon je tente une autre excuses... En vérité, là je bosse mais chuuuuuuuut...

Sinon, heu Romain.... je te la fait à la Coluche : Tu veux mes lunettes.... par la gueule....

pas commenté mon code....
 
Re : recherchev en VBA

re,

Ouai Robert, à la première lecture, je n'avais pas fais attention aux commentaires, mais aussi, tu pourrais faire l'effort de les mettre en verts !!!! 😀
Sans rire, moi aussi je suis au taf, mais comme je suis tres loin d'etre surchargé, j'en profite...
Au plaisir,

@+
 
Re : recherchev en VBA

Bonjour le fil

Une autre approche

Ci joint un fichier avec une macro pour rechercher une valeur dans une feuille.
Affichage d'un USF pour indiquer la valeur recherchée dans la feuille
Affichage du résultat de la recherche dans une listview.
Paramètrage
Macro à modifier : recherche2()
Concernant la listview il faut indiquer la taille des colonnes dans
nbmaxcol = 5 ' nombre de colonne la première colonne est A
dimcol = Array(80, 0, 0, 0, 50) ' 0 si la colonne est invisible

En retour on obtient le numéro de ligne.

A tester et à modifier

JP
 

Pièces jointes

- 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

  • Question Question
Réponses
7
Affichages
190
  • Question Question
Réponses
5
Affichages
172
Réponses
29
Affichages
365
Réponses
6
Affichages
310
Retour