Liens hypertexte "internes" et envoi par mail

titiborregan5

XLDnaute Accro
Bonjour à tous,

j'avais déjà fait une discussion (https://www.excel-downloads.com/threads/hyperliens-internes-renvoie-le-chemin-du-document.212642/) mais je préfère créer un nouveau sujet, je vais essayer d'expliquer mon problème différemment...

Le contexte:
j'ai une liste d'agents avec le nom de leur service.
A partir de là, je crée un fichier par service au sein duquel il y a un onglet par agent du service...

Jusqu'ici tout va bien...

Ensuite je crée une feuille "Sommaire" sur laquelle je fais un listing et un lien hypertexte de toutes les feuilles présentes dans le fichier...

OK mais je vais devoir envoyer ces feuilles... et je crains que les liens hypertexte ne soient plus opérationnels pour mes destinataires...

Voici mon code pour les liens (merci pierrejean):
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

Avez-vous une idée, une façon de procéder ou autre?

Merci d'avance!!!

Tibo
 
G

Guest

Guest
Re : Liens hypertexte "internes" et envoi par mail

Bonjour,

En insérant par macro une fonction Lien_HyperText dans les cellules:

Code:
Sub sommaire()
Dim ligne As Long, i As Integer, x As String
    With Sheets("Accueil")
        .Range("b2") = "Liste des agents"
        ligne = 6
        For i = 2 To Sheets.Count
            x = Sheets(i).Name
            Range("B" & ligne).Formula = "=HYPERLINK(""[""&SUBSTITUTE(SUBSTITUTE(CELL(""nomfichier""),""["",""""),""accueil"",""" & x & "!A1""),""" & x & """)"
            ligne = ligne + 1
        Next
    End With
End Sub

Si j'ai tout suivi....????

P.S. attention aux """" et autres guillemets
A+
 

titiborregan5

XLDnaute Accro
Re : Liens hypertexte "internes" et envoi par mail

Bonjour Hasco, merci de ta réponse...

je vais essayer ça, mais en attendant, peux-tu m'expliquer un peu ce que tu as fait, ainsi que la différence avec l'ancien code?

Ma problématique est donc de créer un fichier avec des liens dans le fichier qui marchent peu importe l'endroit où se trouve le fichier...
 
G

Guest

Guest
Re : Liens hypertexte "internes" et envoi par mail

Bonjour,

La différence réside dans le fait que la cellule contiendra un lien construit autour de la fonction 'Cellule("nomfichier")' qui renvoie le nom complet du fichier de la cellule (s'il est enregistré). Les liens renverront toujours vers le fichier enregistré, quelle que soit la machine hôte.

P.S. la macro de Pierre-Jean doit fonctionner aussi, si elle est envoyée avec le classeur et lancée (par exemple sur workbook_open) sur la machine/chemin hôte.

A+
 
Dernière modification par un modérateur:
G

Guest

Guest
Re : Liens hypertexte "internes" et envoi par mail

Re,

Non tu n'as pas à toucher à quoi que ce soit!
Tape dans une cellule d'un fichier enregistré: =Cellule('nomfichier') et tu verras le résultat!

A+
 
Dernière modification par un modérateur:

titiborregan5

XLDnaute Accro
Re : Liens hypertexte "internes" et envoi par mail

Re,

Nom tu n'as pas à toucher à quoi que ce soit!
Tape dans une cellule d'un fichier enregistré: =Cellule('nomfichier') et tu verras le résultat!

A+

ok j'ai vu...
par contre j'ai un message d'erreur dans excel (pas en vba) "Référence non valide"...
Je n'arrive pas à le corriger! Car avec cellulle("nomfichier") il me renvoie le nom de la feuille également...

Edit: ok c'est bon j'ai réussi je crois...
j'essaie sur mon fichier réel...
 

Pièces jointes

  • test.xls
    26 KB · Affichages: 53
  • test.xls
    26 KB · Affichages: 54
  • test.xls
    26 KB · Affichages: 55
Dernière édition:

titiborregan5

XLDnaute Accro
Re : Liens hypertexte "internes" et envoi par mail

Re,
Tjs une référence non valide lorsque je le fais sur mon fichier :s
Quand je change le nom manuelle dans la case et sur l'onglet ça marche... étrange...
Via la macro, tous les espaces qui pourraient se mettre "involontairement" (noms des agents issus d'une base de données) sont bien repris?
 

titiborregan5

XLDnaute Accro
Re : Liens hypertexte "internes" et envoi par mail

Re,

Je ne comprends pas ta question, sois plus précis.

A+

Mon problème c'est que j'ai tjs le message d'erreur "référence non valide"!

je me disais que ça venait peut-être du noms des feuilles assez longs mais a priori non car la macro les reprend...
j'ai mis le fichier complèt ce sera sûrement plus parlant...

Désolé
 
G

Guest

Guest
Re : Liens hypertexte "internes" et envoi par mail

Re,

Il faut entourer le nom de la feuille par des guillemets simple : 'Nom feuille' :

Code:
Sub sommaire()
Dim ligne As Long, i As Integer, x As String
    With Sheets("Accueil")
        .Range("b2") = "Liste des agents"
        ligne = 6
        For i = 2 To Sheets.Count
            x = Sheets(i).Name
            .Range("B" & ligne).Formula = "=HYPERLINK(""[""&SUBSTITUTE(SUBSTITUTE(CELL(""nomfichier""),""["",""""),""accueil"",""'" & x & "'!A1""),""'" & x & "'!A1"")"
            ligne = ligne + 1
        Next
    End With
End Sub

A+
 
Dernière modification par un modérateur:
G

Guest

Guest
Re : Liens hypertexte "internes" et envoi par mail

Re,

1 - j'ai ouvert ton fichier: pas de feuille 'Accueil', on ne sait pas sur quelle feuille tu veux faire ton sommaire.
2 - si tu ne mets pas plus de bonne volonté à expliciter tes diverses questions, je passe la main! Je ne sais pas ce que veut dire: ça ne le fait pas sur mon fichier réel.

A+
 

Discussions similaires

Réponses
21
Affichages
1 K

Statistiques des forums

Discussions
312 215
Messages
2 086 331
Membres
103 188
dernier inscrit
evebar