Rechercher une valeur cellule sur autre feuille et aller vers la cellule

Dfault Messages postés 20 Date d'inscription   Statut Membre Dernière intervention   -  
Dfault Messages postés 20 Date d'inscription   Statut Membre Dernière intervention   -
Bonjour,

Afin de retrouver d'aller vers la référence d'un contrat initial dans un tableau contenant toutes les références de contrat et se trouvant sur une autre feuille, j'aimerais utiliser une fonction VBA sous forme de bouton me permettant d'aller vers la cellule recherchée.
J'ai essayé le code suivant, mais cela ne fontionne pas. Auriez-vous une idée de ce qu'il faudrait modifier à la formule VBA suivante :

Sub Invoice_to_list()

rngY = Range("G1").Value

Set ws = Worksheets("INVOICES_TO_COMPANY")
ws.Columns("C").Select
Selection.find(What:=rngY, After:=ActiveCell, LookIn:=xlFormulas, _
LookAt:=xlWhole, SearchOrder:=xlByRows, SearchDirection:=xlNext, _
MatchCase:=False, SearchFormat:=False).Activate

ActiveCell.Select
End Sub

La cellule G1 contient la référence du contrat, et la liste de tous les contrat se trouve sur la feuille 'INVOICES_TO_COMPANY' dans la 3eme collonne.

Merci d'avance,

3 réponses

ThauTheme Messages postés 1442 Date d'inscription   Statut Membre Dernière intervention   160
 
Bonjour Dfault, bonjour le forum,

Quand on travaille sur plusieurs onglets, mieux vaut les spécifier systématiquement pour éviter les erreurs. Essaie comme ça (OI à adapter à ton cas) :
Sub Invoice_to_list()
Dim OI As Worksheet 'déclare la variable OI (Onglet Initial)
Dim REF As Variant 'déclare la variable Ref (REFérence)
Dim OT As Worksheet 'déclare la variable OT (Onglet du Tableau)
Dim R As Range 'déclare la variable R (Recherche)

Set OI = Worksheets("ton_onglet_initial") 'à adapter à ton cas
REF = OI.Range("G1").Value 'définit la variable REF
Set OT = Worksheets("INVOICES_TO_COMPANY") 'définit l'onglet du tableau OT
Set R = OT.Columns(3).Find(REF, , xlValues, xlWhole) 'définit la recherche R
If Not R Is Nothing Then 'condition : s'il existe au moins une occurrence trouvée
    OT.Activate 'active l'onglet OT
    R.Select 'sélectionne la cellule de la première occurrence trouvée
End If 'fin de la condition
End Sub

1
Dfault Messages postés 20 Date d'inscription   Statut Membre Dernière intervention  
 
Bonjour ThauTheme,

Cette solution fonctionne à merveille, merci beaucoup !
0
Dfault Messages postés 20 Date d'inscription   Statut Membre Dernière intervention  
 
Re-bonjour,

Désolé encore une question.
Comment peut-on modifier la macro afin que le OI soit toujours la feuille active. Ceci permettant d'utiliser cette meme macro sur plusieurs feuilles differentes en la recopiant a chaque fois ?

Merci beaucoup
0
Dfault Messages postés 20 Date d'inscription   Statut Membre Dernière intervention  
 
En fait il suffisait de supprimer les lignes OI et d'utiliser le activesheet.name comme REF.
0