Bonjour,
mise en place d'une procédure "générique" afin de ne pas répéter les codes :
Sub Cible()
Dim Adr As String
' on récupère le nom de l'image cliquée qui correspond à l'adresse de la cellule cible avec le "_" en premier caractère
Adr = Application.Caller
' on enlève le premier caractère, le "_", afin d'avoir l'adresse de la cellule cible
Adr = Right(Adr, Len(Adr) - 1)
' on demande à scroller sur cette adresse
Application.Goto Reference:=Range(Adr), Scroll:=True
End Sub
Grace à Application.Caller, on récupère le nom de l'image qui vient d'être cliquée.
On supprime de ce nom le "_" qui se trouve devant.
Puis on demande de "scroller" pour aller à l'adresse demandée.
Ce qu'il faut faire :
sur chaque image que l'on clique pour accéder à une adresse de cellule qui doit engendrer un scrolle :
Supprimer le lien hypertexte de l'image (en effet s'il y a une macro et un lien sur un bouton, seul le lien fonctionnera)
Affecter à chaque image la macro "Cible"
Donner à chaque image un nom qui correspond à "_" & l'adresse de la cellule cible.
Exemple pour la cellule A!J128 :
Ecrire comme nom d'image : _A!J128
Maintenant quand vous cliquez sur l'image la cellule A!J128 se retrouve en haut à gauche de l'écran.
Mais comme dit sur un message précédent, cela implique que les "cibles" ne changent pas d'adresse à moins de nommer la cellule elle-même.
Du coup la cellule A!J128, vous la nommez par exemple Cel_1, l'image cliquée pour "aller dessus" se nommera _Cel_1
Du coup le code VBA supprimera le premier "_" et ira sur l'adresse de la cellule nommée Cel_1 !
Le fichier avec les deux solutions : En MP
Personnellement je préfère la deuxième qui permet une modification de la structure des feuilles sans avoir à renommer tous les boutons !
@ bientôt
LouReeD