Excel 2010 / Macro bouton recherche

Résolu/Fermé
Signaler
Messages postés
85
Date d'inscription
samedi 4 avril 2009
Statut
Membre
Dernière intervention
5 septembre 2017
-
Messages postés
85
Date d'inscription
samedi 4 avril 2009
Statut
Membre
Dernière intervention
5 septembre 2017
-
Bonjour à tous,

J'utilise un tableau excel qui se tient sur 2 pages.

La 1ère feuille est un tableau d'information client qui se base sur les données de la 2ème feuille Excel.

J'ai crée un bouton** (Database) tout simple fait passer de la 1ère feuille à la seconde feuille. J'aimerai ajouter qu'il séléction directement la numéro entrée dans une cellule*. Comme un Ctrl + F.

(*dans cette cellule, un numéro de client est entrée pour obtenir les informations liée à la feuille 2.)

(** Sub Renvoie()
Sheets("Base de données à modifier").Select
End Sub )

Si je ne suis pas très clair dites-le moi =).

Merci d'avance et bonne journée à tous.


3 réponses

Messages postés
12257
Date d'inscription
jeudi 15 mai 2008
Statut
Modérateur
Dernière intervention
3 septembre 2021
2 667
Bonjour,

Par exemple avec la méthode Find.
Remplace ta Sub renvoie par celle-ci :

Sub Renvoie() 
Dim rngTrouve As Range

With Sheets("Base de données à modifier")
    Set rngTrouve = .Cells.Find(Range("F5").Value, lookat:=xlWhole)
    If rngTrouve Is Nothing Then
        MsgBox "Référence non valide."
    Else
        .Select
        rngTrouve.Select
    End If
End With
End Sub 
1
Merci

Quelques mots de remerciements seront grandement appréciés. Ajouter un commentaire

CCM 41989 internautes nous ont dit merci ce mois-ci

Messages postés
85
Date d'inscription
samedi 4 avril 2009
Statut
Membre
Dernière intervention
5 septembre 2017
14
Avant tout merci de ta réponse.

Après tout, EXTRAORDINAIRE =) 20/20 Exactement ce qu'il me fallait.


Je comprends juste pas ce "lookat:=xlwhole"
et ce "rng" c'est l'abréviation de range ?

Merci beaucoup, bonne après-midi
Messages postés
12257
Date d'inscription
jeudi 15 mai 2008
Statut
Modérateur
Dernière intervention
3 septembre 2021
2 667
rngTrouve est une variable de type Range. Il est coutumier de débuter le nom des variables par 3 lettres rappelant leur type.
Exemple :
rngTrouve, intNum, strMot etc...
Le but est de simplifier la lecture pour une éventuelle maintenance de ton code par un inconnu.

lookat:=xlwhole indique à la méthode find qu'elle doit chercher la valeur exacte.
Effectivement, tu parlais dans ta question de un numéro de client . Or si tu cherches 1, il est présent dans 10 (par exemple). D'où l'importance de régler ce paramètre (lookat) de la méthode find sur xlWhole.
Si tu avais souhaité te placer sur la première cellule contenant un mot proche mais pas exact, on aurait, à ce moment écris :
Set rngTrouve = .Cells.Find(Range("F5").Value, lookat:=xlPart)


Bon aprème également.
Messages postés
85
Date d'inscription
samedi 4 avril 2009
Statut
Membre
Dernière intervention
5 septembre 2017
14
Okey j'ai saisi la chose.

merci encore pour les explications.