VBA - Fonction recherche

amely_41 Messages postés 5 Statut Membre -  
 Paf -
Bonjour à tous,

Sur ma feuille « RETOUR » j'ai un tableau de 8 colonnes (A à G) et un nombre de ligne illimité.

Je voudrais créer une InputBox qui permettrais d'effectuer une recherche afin éviter de regarder une par une les lignes et que le résultat de cette recherche soit copié/coller dans une nouvelle feuille qui se créé (si possible).

La recherche s'effectuerait sur 3 colonnes (A, E et G) en fonction de ce que j'ai à chercher (Num, Ref ou Fichier)

Colonne A = Num
Colonne E = Ref
Colonne G = Fichier

J'ai créér l'InputBox qui permet de saisir la valeur à rechercher, d'en afficher les coordonnées si la valeur est trouvée et de mettre un msg d'erreur si rien n'est trouvé mais je n'arrive pas à sélectionner la ou les lignes et à copier/coller le résultat dans une nouvelle feuille.

Voila ma formule :

Sub Recherche_valeur() 
REP = InputBox("Entrez la valeur à rechercher") 
Set R = Sheets("RETOURS").Range("A:G").Find(REP) 
If R Is Nothing Then 
MsgBox "La valeur " & REP & " n'a pas été trouvée", vbOKOnly + vbInformation, "Attention" 
Exit Sub 
End If 
If Not R Is Nothing Then 
MsgBox R.Address 
Rows().Select 
End If 
End Sub


Toute ma feuille est sélectionnée et je ne sais pas définir les 3 colonnes de recherche.

Quelqu'un peux m'aider SVP ??

MERCI

2 réponses

  1. Paf
     
    bonjour

    si tu veux ne sélectionner que la cellule contenant la valeur recherchée:
    Range(R.Address).Select

    Pour ne selectionner que les 3 colonnes:
    Set R = Range("A:A,E:E,G:G").Find(REP)

    Bonne suite
    0
  2. amely_41 Messages postés 5 Statut Membre
     
    Merci beaucoup.

    Pour selectionner la ligne complète de ma recherche, j'ai cette formule
    Rows().Select


    Mais tout mon tableau est selectionné.
    Comment faire pour ne selectionner que la ligne trouver lors de ma recherche ?
    0
    1. Paf
       
      Rows(Range(R.Address).Row).Select
      0
    2. amely_41 Messages postés 5 Statut Membre
       
      Merci, je vais tester ça :)
      0
    3. chossette9 Messages postés 6855 Date d'inscription   Statut Contributeur Dernière intervention   1 313
       
      @Paf : et en essayant simplement Row().Select ?

      Pour moi, Row au singulier ne donne qu'une ligne, Rows au pluriel en donne plusieurs.

      Est-ce que je me trompe ?

      Cordialement.
      0
    4. amely_41 Messages postés 5 Statut Membre
       
      Row().Select
      ----> ça ne marche pas. Il faut écrire ROWS avec le S
      0
    5. chossette9 Messages postés 6855 Date d'inscription   Statut Contributeur Dernière intervention   1 313
       
      Effectivement, il faut mettre Rows.

      Si tu ne veux sélectionner qu'une ligne, il faut réussir à retrouver son numéro, et l'indiquer entre parenthèses.

      Cordialement.
      0