VBA mise à jour d'un lien hypertexte
Résolu
Tipom
Messages postés
4
Statut
Membre
-
Polux31 Messages postés 7219 Statut Membre -
Polux31 Messages postés 7219 Statut Membre -
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
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:
- VBA mise à jour d'un lien hypertexte
- Mise a jour chrome - Accueil - Applications & Logiciels
- Mise a jour windows 10 - Accueil - Mise à jour
- Créer un lien pour partager des photos - Guide
- Lien url - Guide
- Mise a jour chromecast - Accueil - Guide TV et vidéo
6 réponses
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)
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)
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
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
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 :
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
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 :
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
Vous n’avez pas trouvé la réponse que vous recherchez ?
Posez votre question
Merci pour ces indications, Polux!
...mais ça ne marche toujours pas... toujours le message "référence non valide"...
Grrrr...
Paul
...mais ça ne marche toujours pas... toujours le message "référence non valide"...
Grrrr...
Paul
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
ç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