Hyperliens internes renvoie le chemin du document

titiborregan5

XLDnaute Accro
Bonjour à tous,


je suis face à une difficulté...

Voici le but de ma macro actuelle:
j'ai une liste d'agents avec leur service. Je crée un fichier par service avec un onglet par agent... ça ça marche (me reste juste à gérer quand un agent est en double ce qui provoque un bug dans la macro mais passons...)
Sur chaque fichier le 1er onglet s'appelle accueil et contient un lien vers chaque onglet du fichier et chaque onglet du fichier sauf accueil contient un lien vers l'accueil pour permettre à celui qui va remplir ça de pouvoir naviguer plus facilement...

Le truc c'est que mon lien est "long" et reprend tout le chemin du fichier alors que c'est un lien "interne" et que ce document a vocation à être envoyé par mail... Du coup le chemin change. En plus de cela, un message de mise à jour s'affiche pour chaque document...

Est-il possible que tout cela reste en interne??


J'espère avoir été clair, sinon dites-le moi et j'essaierai autrement...

Merci d'avance,

Tibo
 

Pièces jointes

  • pb hyperliens.JPG
    pb hyperliens.JPG
    9.6 KB · Affichages: 66

job75

XLDnaute Barbatruc
Re : Hyperliens internes renvoie le chemin du document

Bonjour titiborregan5,

Un fichier aurait été le bienvenu, mais on peut mettre ceci dans ThisWorkbook :

Code:
Private Sub Workbook_SheetActivate(ByVal Sh As Object)
If Sh.Name <> "Accueil" Then Sh.Hyperlinks.Add _
  Sh.[A2], "", "#Accueil!$A$1", "Accueil!$A$1", "Accueil"
End Sub
La feuille "Accueil" doit bien sûr exister.

Edit : salut Pierre.

A+
 

titiborregan5

XLDnaute Accro
Re : Hyperliens internes renvoie le chemin du document

re,
voici le fichier anonyme...

Bien évidement vous devez changer le nom du répertoire de destination pour la sauvegarde du nouveau classeur.

Si vous pensez que ma macro n'est pas optimale...

Mais le "truc" principal reste la création des hyperliens en "interne" (je ne sais pas si le terme est le bon...)

Merci d'avance
 

Pièces jointes

  • ts.xls
    171.5 KB · Affichages: 84
  • ts.xls
    171.5 KB · Affichages: 82

pierrejean

XLDnaute Barbatruc
Re : Hyperliens internes renvoie le chemin du document

Bonjour titi...

Salut Gerard

A tester:

Code:
Sub sommaire()
With Sheets("Accueil")
.Range("b2") = "Liste des agents"
ligne = 6
For i = 2 To Sheets.Count
x = Sheets(i).Name
 ActiveSheet.Hyperlinks.Add Anchor:=.Range("B" & ligne), Address:=ThisWorkbook.Path & "\" & ThisWorkbook.Name, SubAddress:="'" & x & "'!A1", TextToDisplay:=x
ligne = ligne + 1
Next
End With
End Sub
 

titiborregan5

XLDnaute Accro
Re : Hyperliens internes renvoie le chemin du document

pierrejean, peux-tu m'expliquer la différence avec mon code?

Je viens de tester le tien, lorsque je passe ma souris dessus sans cliquer, j'ai toujours la bulle qui affiche le chemin entier...Normal? (cf image post #1)


Hors sujet : lorsqu'on met un on error resume next il passe à la ligne suivante hein? il ne va pas au next de ma boucle?
 

pierrejean

XLDnaute Barbatruc
Re : Hyperliens internes renvoie le chemin du document

Re

Oui c'est normal !!
Mais essaie de mettre le fichier dans un autre disque dur (ou même dans un autre répertoire et vois ce qui est dans la bulle )
OUI après un on Error resume next les lignes suivantes seront soit executées soit ignorées jusqu'au on error goto 0 (que je te recommande vivement)
Par ailleurs ,je me borne a encadrer une ligne dont je sais quelle erreur elle peut provoquer et je sais pouvoir l'ignorer
 
Dernière édition:

pierrejean

XLDnaute Barbatruc
Re : Hyperliens internes renvoie le chemin du document

Re

La nuit porte conseil

Je te recommande plutot:

Code:
Sub sommaire()
With Sheets("Accueil")
.Range("b2") = "Liste des agents"
ligne = 6
For i = 2 To Sheets.Count
x = Sheets(i).Name
 ActiveSheet.hyperlinks.Delete
 ActiveSheet.Hyperlinks.Add Anchor:=.Range("B" & ligne), Address:=ThisWorkbook.Path & "\" & ThisWorkbook.Name, SubAddress:="'" & x & "'!A1", TextToDisplay:=x
ligne = ligne + 1
Next
End With
End Sub

Avec Dans thisworkbook

Code:
Private Sub Workbook_Open()
Call sommaire
End Sub
 

titiborregan5

XLDnaute Accro
Re : Hyperliens internes renvoie le chemin du document

Re

La nuit porte conseil

Je te recommande plutot:

Code:
Sub sommaire()
With Sheets("Accueil")
.Range("b2") = "Liste des agents"
ligne = 6
For i = 2 To Sheets.Count
x = Sheets(i).Name
 ActiveSheet.hyperlinks.Delete
 ActiveSheet.Hyperlinks.Add Anchor:=.Range("B" & ligne), Address:=ThisWorkbook.Path & "\" & ThisWorkbook.Name, SubAddress:="'" & x & "'!A1", TextToDisplay:=x
ligne = ligne + 1
Next
End With
End Sub

Avec Dans thisworkbook

Code:
Private Sub Workbook_Open()
Call sommaire
End Sub
Hello pierrejean, merci pour ta nouvelle réponse...
je vais essayer dans un autre disque dur... Pour l'instant les fichiers sont crées sur le même dd mais pas dans le même fichier...

Le hic avec la 2ème proposition qui consiste à créer le sommaire à l'ouverture du classeur si j'ai bien compris? c'est que je vais envoyé le fichier personnalisé à plusieurs dizaines de responsables, et je sais d'ores et déjà que certains n'auront pas les macros d'activées... Et là ce sera le drame... ;)

Encore merci pour tout!

A+

tibo
 

Discussions similaires

Statistiques des forums

Discussions
312 391
Messages
2 087 940
Membres
103 679
dernier inscrit
yprivey3