EXCEL lien hypertexte vers feuille graphique [Résolu/Fermé]

Signaler
Messages postés
17
Date d'inscription
mardi 29 juillet 2008
Statut
Membre
Dernière intervention
28 août 2008
-
Messages postés
14934
Date d'inscription
lundi 18 octobre 2004
Statut
Contributeur
Dernière intervention
24 juin 2020
-
Bonjour,

j'ai une première feuille avec dans ma première colonne plusieurs trajet de trains :
- paris-->marseille
- paris-->lyon
- paris-->poitiers

etc.

pour chaque trajet, j'ai rentré plusieurs prix (en fonction de la date de départ par exemple)

j'ai ensuite crée des graphiques pour visualiser ces variations. les graphiques sont enregistrés sur des feuilles a part, dans le même classeur.

J'aimerai créer des liens hypertextes renvoyant à ces graphes.

Qqn propose cette solution :

Ce n'est pas possible directement car une feuille graphique ne contient pas de cellule à lier.
Une solution de substitution consiste à créer le lien vers une cellule d'un autre onglet et cette cellule contiendra le nom de la feuille graphique. Ensuite, dans le module objet de l'onglet contenant la cellule de destination, ajoutez cette macro évènementielle:

Vba

Private Sub Worksheet_SelectionChange(ByVal Target As Range)
Dim Ch As Chart

If Not Intersect(Target, Range("A1")) Is Nothing Then
On Error Resume Next
Set Ch = Charts(Target.Value)
On Error GoTo 0

'Active le feuille graphique si elle existe.
If Not Ch Is Nothing Then Charts(Target.Value).Activate
End If
End Sub

Le lien va atteindre la cellule et l'évènement SelectionChange redirige automatiquement vers le graphique, dont le nom est saisi dans la cellule. Ici, le lien doit pointer vers la cellule A1.

Je rencontre DEUX problèmes.
1°) je crée l'onglet "redirection" et je met le titre paris-->marseille en A1
je retourne sur ma première feuille et je clique sur mon lien : CA MARCHE, j'arrive sur mon graphe
je retourne sur ma première feuille et je clique sur mon lien : ca NE marche PLUS, j'arrive sur l'onglet redirection, et je dois cliquer sur une cellule autre que A1 puis sur A1 pour accéder a mon onglet graphique !!!
(je pense que cela s'explique par le fait qu'il faut que la curseur "aille" en A1 pour que ca marche et que si il y est déjà, ca plante, mais je ne sais pas comment y remédier)

2°) comme dis plus haut, j'ai plusieurs trajets; Je voudrais par contre n'avoir qu'un onglet redirection avec tous mes trajets. Or, je ne sais pas programme et donc je n'arrive pas a modifier le code en conséquence

Voila. J'espère être assez clair, je peux vous envoyer mon fichier si ca aide. Je sais que ca serait possible en mettant le graphe dans une feuille classique et en renvoyant a une cellule mais c'est moins "beau"

Merci beaucoup pour votre future aide.

Victor

6 réponses

Messages postés
14934
Date d'inscription
lundi 18 octobre 2004
Statut
Contributeur
Dernière intervention
24 juin 2020
4 201
bonjour

En fait, tu n'as pas besoin d'onglet "redirection".

Dans ta feuille de données, en supposant que tes noms de graphe sont dans la colonne E, (si c'est une autre colonne, suffit d'adapter) tu mets ta macro modifiée comme ceci :
Private Sub Worksheet_SelectionChange(ByVal Target As Range)

If Not Intersect(Target, Range("E:E")) Is Nothing And Target.Value <> "" Then
    On Error Resume Next
'Active la feuille graphique si elle existe.
    Charts(Target.Value).Activate
    If Err.Number <> 0 Then
        Err.Clear
        MsgBox "Pas de graphique à ce nom"
    End If
End If
End Sub

En sélectionnant le nom du graphe tu atteins le graphique concerné.
2
Merci

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

CCM 60511 internautes nous ont dit merci ce mois-ci

Messages postés
8700
Date d'inscription
dimanche 8 avril 2007
Statut
Contributeur
Dernière intervention
22 janvier 2020
1 114
Bonsoir,
Je pense qu'il est facile de mettre un lien hypertext pou accéder à un graph qui est sur le même classeur ou autre...
>> Sélectionner la cellule ou le lien doit être incorporer >> Cliquer sur le bouton Insérer un lien hypertext
Dans le texte du haut mettre le texte à écrire dans la cellule >> Cliquer sur Signet, sélectionner la feuille et mettre la cellule d'un coin du graphe.
et si c'est une feuille graph c'est encore plus simple, sélectionner seulement la feuille.
A+
Messages postés
17
Date d'inscription
mardi 29 juillet 2008
Statut
Membre
Dernière intervention
28 août 2008

@ gbinforme : merci beaucoup, ca marche impec comme ca. Le problème de la répétition (par exemple afficher deux fois de suite Paris-Marseille) existe toujours mais là, ca me semble normal.

@lermitte222 si tu peux détailler un peu plus car il n'y a pas de "signet" dans la fenêtre s'ouvrant après lien hypertexte...

merci beaucoup en tout cas...

victor
Messages postés
8700
Date d'inscription
dimanche 8 avril 2007
Statut
Contributeur
Dernière intervention
22 janvier 2020
1 114
Bizarre...Voir ici et ensuite là
A+
Messages postés
14934
Date d'inscription
lundi 18 octobre 2004
Statut
Contributeur
Dernière intervention
24 juin 2020
4 201
bonjour

Tu peux remplacer le clic de sélection par le double clic et tu peux utiliser deux fois de suite
Private Sub Worksheet_BeforeDoubleClick(ByVal Target As Range, Cancel As Boolean)
Cancel = True
If Not Intersect(Target, Range("E:E")) Is Nothing And Target.Value <> "" Then
    On Error Resume Next
'Active la feuille graphique si elle existe.
    Charts(Target.Value).Activate
    If Err.Number <> 0 Then
        Err.Clear
        MsgBox "Pas de graphique à ce nom"
    End If
End If
End Sub
Messages postés
17
Date d'inscription
mardi 29 juillet 2008
Statut
Membre
Dernière intervention
28 août 2008

je pense que ca vient du fait que c'est des feuilles graphiques
Messages postés
8700
Date d'inscription
dimanche 8 avril 2007
Statut
Contributeur
Dernière intervention
22 janvier 2020
1 114
salut vicozongo,
Exact, ca ne fonctionne pas avec des feuilles graph, mais serait possible de mettre des graph sur une feuille et qu'il serrait étirer à la grandeur de la feuille.
C'est dommage parce qu'il ne faut pas une seule ligne de code pour accéder à une autre feuille.
A+
Messages postés
17
Date d'inscription
mardi 29 juillet 2008
Statut
Membre
Dernière intervention
28 août 2008

oui je sais mais je mettais mis ca en tête et puis c'est plus beau je trouve comme solution (il me reste a la comprendre en détails)
merci pour ton aide

vicozongo