Excel 2010 / Macro bouton recherche

Résolu
Razaii Messages postés 90 Statut Membre -  
Razaii Messages postés 90 Statut Membre -
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.



--
Je ne cherche pas à gagner ma vie, je l'ai déjà. (Boris Vian )

3 réponses

  1. pijaku Messages postés 13513 Date d'inscription   Statut Modérateur Dernière intervention   2 773
     
    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
  2. Razaii Messages postés 90 Statut Membre 13
     
    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
    0
    1. pijaku Messages postés 13513 Date d'inscription   Statut Modérateur Dernière intervention   2 773
       
      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.
      0
  3. Razaii Messages postés 90 Statut Membre 13
     
    Okey j'ai saisi la chose.

    merci encore pour les explications.
    0