Changer les liens hypertextes automatiquement en vba excel

Résolu/Fermé
hakimr Messages postés 186 Date d'inscription lundi 1 mai 2017 Statut Membre Dernière intervention 1 décembre 2022 - Modifié le 23 nov. 2017 à 11:57
hakimr Messages postés 186 Date d'inscription lundi 1 mai 2017 Statut Membre Dernière intervention 1 décembre 2022 - 24 nov. 2017 à 23:43
Bonjour,

Sous excell je cherche à programmer une macro qui génère des liens hypertextes automatiques dans le ^m classeur lors d'une copie et création d'une nouvelle feuille.
je m'explique dans une feuille j'ai 4 ou 5 boutons de lien hypertexte pour aller directement a une adresse voulu par exemple page haut et page bas, a chaque fois en cliquant sur un bouton nouvelle feuille je change manuellement les liens hypertextes au non de la feuille crée.
question: comment est ce que je peu écrire sous vba pour changer automatiquement les liens hypertextes au nom de la feuille crée
merci d'avance.

4 réponses

jordane45 Messages postés 36945 Date d'inscription mercredi 22 octobre 2003 Statut Modérateur Dernière intervention 7 février 2023 4 491
24 nov. 2017 à 23:27
Bonjour,

Déjà.. il faudrait lancer les codes dans l'ordre....
Ensuite... pourquoi ne pas appliquer le code que l'on t'a donné....
Et enfin.. il aurait été bien que ta première feuille contienne des liens qui marchent... sinon les copies.. ben.. elles ne fonctionnent pas non plus !

Bref...
vu que le nom de tes feuilles contiennent des tirets, il faut en effet légèrement modifié mon code.

Donc voici ton code corrigé et fonctionnel
Sub Groupe59_QuandClic()

ActiveSheet.Copy after:=Sheets(Sheets.Count)
[c7].Value = [c7].Value + 1
[A843].Value = [C843].Value
'test = Application.Proper(Format(Range("e779"), "mmm-yyyy"))
ActiveSheet.Name = "Nov-2017"

Call modifiLink

End Sub

Sub modifiLink()
Dim sh As Worksheet
Dim L As Hyperlink
Dim exclapos  As Integer
Dim strFPrec  As String
'On défini la feuille active
Set sh = ActiveSheet
Debug.Print (sh.Name)
'On boucle sur chaque lien de la feuille
For Each L In sh.Hyperlinks
    'On trouve l'emplacement du !
    exclapos = InStr(1, L.SubAddress, "!", vbTextCompare)
    'Nom de la feuille précédente
    strFPrec = Mid(L.SubAddress, 1, exclapos - 1)
    'On remplace par le nom de la feuille actuelle
    
    L.SubAddress = Replace(L.SubAddress, strFPrec, "'" & sh.Name & "'")
    
Next
End Sub

1
hakimr Messages postés 186 Date d'inscription lundi 1 mai 2017 Statut Membre Dernière intervention 1 décembre 2022 1
24 nov. 2017 à 23:43
merci beaucoup monsieur, enfin mon problème est bien résolu et ça marche très bien
vive le forum et encore merci pour votre aide.
0