Microsoft 365 Besoin d'aide sur la fonction find en vba

  • Initiateur de la discussion Initiateur de la discussion comardud
  • Date de début Date de début

Boostez vos compétences Excel avec notre communauté !

Rejoignez Excel Downloads, le rendez-vous des passionnés où l'entraide fait la force. Apprenez, échangez, progressez – et tout ça gratuitement ! 👉 Inscrivez-vous maintenant !

comardud

XLDnaute Nouveau
Bonjour à tous,
j'ai une nouvelle fois besoin des spécialistes Excel.
Je bute sur la fonction find en vba, je vous explique mon soucis:

Dans le fichier joint j'ai 2 onglets (Feuil1 et Feuil2),
ce que je voudrais obtenir c'est que dans l'onglet Feuil2 quand je double clic dans une cellule de la colonne I (i) ça sélectionne le numéro qui se trouve 2 cellules à droite (colonne K) et que ce numéro soit recherché (fonction find ?) dans l'onglet Feuil1 et quand celui ci est trouvé ça sélectionne la 4eme cellule à gauche de ce résultat.

Je ne sait pas si je suis très clair 🙂 j'ai mis en PJ un extrait du fichier en question avec les explications, ce sera surement plus parlant.

Merci de votre aide.
 

Pièces jointes

Solution
Bonjour comardud,

La macro dans le code de Feuil2 :
VB:
Private Sub Worksheet_BeforeDoubleClick(ByVal Target As Range, Cancel As Boolean)
Dim c As Range
If Intersect(Target, [I:I]) Is Nothing Or CStr(Target(1, 3)) = "" Then Exit Sub
Cancel = True
With Feuil1
    .Visible = xlSheetVisible 'si la feuille est masquée
    Set c = .Columns(5).Resize(, .Columns.Count - 4).Find(CStr(Target(1, 3)), , xlValues, xlWhole)
End With
If Not c Is Nothing Then Application.Goto c.Offset(, -4)
End Sub
Notez qu'en VBA il est déconseillé de sélectionner...

A+
Bonjour comardud,

La macro dans le code de Feuil2 :
VB:
Private Sub Worksheet_BeforeDoubleClick(ByVal Target As Range, Cancel As Boolean)
Dim c As Range
If Intersect(Target, [I:I]) Is Nothing Or CStr(Target(1, 3)) = "" Then Exit Sub
Cancel = True
With Feuil1
    .Visible = xlSheetVisible 'si la feuille est masquée
    Set c = .Columns(5).Resize(, .Columns.Count - 4).Find(CStr(Target(1, 3)), , xlValues, xlWhole)
End With
If Not c Is Nothing Then Application.Goto c.Offset(, -4)
End Sub
Notez qu'en VBA il est déconseillé de sélectionner...

A+
 

Pièces jointes

- Navigue sans publicité
- Accède à Cléa, notre assistante IA experte Excel... et pas que...
- Profite de fonctionnalités exclusives
Ton soutien permet à Excel Downloads de rester 100% gratuit et de continuer à rassembler les passionnés d'Excel.
Je deviens Supporter XLD

Discussions similaires

Réponses
72
Affichages
1 K
Réponses
38
Affichages
888
Réponses
11
Affichages
772
Retour