VBA mise à jour d'un lien hypertexte

Résolu/Fermé
Tipom Messages postés 4 Date d'inscription vendredi 9 janvier 2009 Statut Membre Dernière intervention 9 janvier 2009 - 9 janv. 2009 à 12:20
Polux31 Messages postés 6917 Date d'inscription mardi 25 septembre 2007 Statut Membre Dernière intervention 1 novembre 2016 - 9 janv. 2009 à 14:43
Bonjour,

j'ai écris une petit macro qui crée, à partir d'une liste, autant de feuilles que d'items dans la liste. Chacune de ces feuilles est formée sur la base d'une feuille modèle. jusque là, pas de souci.

Je veux aussi que dans la liste de départ soient insérés des liens hypertexte pointant chacun vers la feuille qui se rapporte à l'item.

Pour les besoins de ma macro, je crée à chaque fois une feuille appelée Temp, que je renomme en fin de procédure avec le bon nom. Je crée donc le lien hypertexte pointant vers la feuille Temp. Quand je change le nom de la feuille, le lien n'est plus valide.

Est-il possible de mettre à jour le lien, ou de créer un lien vers une feuille donnée, quelque soit son nom?

Je vous mets ci-dessous le détail de la macro qui correspond à ce problème, et si quelqus'un d'avisé peut jeter un coup d'oeil, je lui en suis très reconnaissant!

....
Sheets("Général").Select
Cells(i, 1).Select
ActiveSheet.Hyperlinks.Add Anchor:=Selection, Address:="", SubAddress:= _
"Temp!A1", TextToDisplay:=Sheets("Général").Cells(i, 1).Value

Sheets("Temp").Name = Sheets("Général").Cells(i, 1).Value
i = i + 1

Merci!

Paul
A voir également:

6 réponses

Polux31 Messages postés 6917 Date d'inscription mardi 25 septembre 2007 Statut Membre Dernière intervention 1 novembre 2016 1 204
9 janv. 2009 à 13:37
Bonjour,

Juste une petite question.

Pourquoi ne pas renommer la feuille "Temp" avant de créer le lien et mettre le nom de cette feuille dans le lien ?

;o)
0
Tipom Messages postés 4 Date d'inscription vendredi 9 janvier 2009 Statut Membre Dernière intervention 9 janvier 2009
9 janv. 2009 à 13:45
Bonjour Polux,

parce que dans l'instruction qui insère le lien, je n'arrive pas à faire autrement qu'écrire explicitement le nom de la feuille vers laquelle le lien va pointer... Or comme la macro boucle sur une liste, ce nom change à chaque fois...

Même en essayant un truc du genre Subadress="Whorksheets(j).Cells(1,1)" où j est le numéro de la dernière feuille (à chaque feuille crée, celle-ci est placée à la fin), cela ne parce pas!

Ce doit être un bête problème de confusion nom/adresse de ma part, mais je ne trouve pas...:-(

Paul
0
Polux31 Messages postés 6917 Date d'inscription mardi 25 septembre 2007 Statut Membre Dernière intervention 1 novembre 2016 1 204
9 janv. 2009 à 13:57
Je vais peut être dire une bétise mais, dans la même procédure tu fais ton lien et ensuite tu renommes ta feuille.

Je ferai plutôt l'inverse, genre :
'.... 
Dim nomSheet As Variant

Sheets("Général").Select 
Cells(i, 1).Select 

nomSheet = Sheets("Général").Cells(i, 1).Value 
Sheets("Temp").Name = nomSheet
ActiveSheet.Hyperlinks.Add Anchor:=Selection, Address:="", SubAddress:= _ 
nomSheet & "!A1", TextToDisplay:=nomSheet

i = i + 1 

0
Polux31 Messages postés 6917 Date d'inscription mardi 25 septembre 2007 Statut Membre Dernière intervention 1 novembre 2016 1 204
9 janv. 2009 à 13:57
Je vais peut être dire une bétise mais, dans la même procédure tu fais ton lien et ensuite tu renommes ta feuille.

Je ferai plutôt l'inverse, genre :
'.... 
Dim nomSheet As Variant

Sheets("Général").Select 
Cells(i, 1).Select 

nomSheet = Sheets("Général").Cells(i, 1).Value 
Sheets("Temp").Name = nomSheet
ActiveSheet.Hyperlinks.Add Anchor:=Selection, Address:="", SubAddress:= _ 
nomSheet & "!A1", TextToDisplay:=nomSheet

i = i + 1 

0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
Tipom Messages postés 4 Date d'inscription vendredi 9 janvier 2009 Statut Membre Dernière intervention 9 janvier 2009
9 janv. 2009 à 14:15
Merci pour ces indications, Polux!

...mais ça ne marche toujours pas... toujours le message "référence non valide"...
Grrrr...

Paul
0
Tipom Messages postés 4 Date d'inscription vendredi 9 janvier 2009 Statut Membre Dernière intervention 9 janvier 2009
9 janv. 2009 à 14:29
Très cher Polux,
ça marche! J'ai ajouté des guillemets:

ActiveSheet.Hyperlinks.Add Anchor:=Selection, Address:="", SubAddress:= _
"'" & nomSheet & "'!A1", TextToDisplay:=nomSheet

et là, ça fonctionne bien! Je ne cherche pas à comprendre (shame on me!), mais j'en m'en satisfait fort!

Merci pour la rapidité de tes réponses et tes conseils avisés!
Paul
0
Polux31 Messages postés 6917 Date d'inscription mardi 25 septembre 2007 Statut Membre Dernière intervention 1 novembre 2016 1 204
9 janv. 2009 à 14:43
De rien...

Bon courage et bonne continuation

;o)
0