VBA - Fonction recherche

amely_41 Messages postés 5 Date d'inscription   Statut Membre Dernière intervention   -  
 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
A voir également:

2 réponses

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
amely_41 Messages postés 5 Date d'inscription   Statut Membre Dernière intervention  
 
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
Paf
 
Rows(Range(R.Address).Row).Select
0
amely_41 Messages postés 5 Date d'inscription   Statut Membre Dernière intervention  
 
Merci, je vais tester ça :)
0
chossette9 Messages postés 4239 Date d'inscription   Statut Contributeur Dernière intervention   1 311
 
@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
amely_41 Messages postés 5 Date d'inscription   Statut Membre Dernière intervention  
 
Row().Select
----> ça ne marche pas. Il faut écrire ROWS avec le S
0
chossette9 Messages postés 4239 Date d'inscription   Statut Contributeur Dernière intervention   1 311
 
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