Mise a jour des liens hypertextes
Bonjour,
J'ai créé un tableau excel qui est en quelque sorte une base données de la documentation existante dans mon entreprise.
J'ai à peu près 220 documents existants et chaque ligne du tableau renvoie vers le document en question via un lien hypertexte. Ces documents sont eux-même stockés dans notre intranet.
Le fait est que ces documents stockés dans l'intranet vont être déplacés.
Comment conserver les liens hypertexte de mon tableau excel sans les modifier un à un (car dans ce cas j'aurais 220 liens à refaire...).
Merci pour votre aide.
KAPU59
- Messages
- 358
- Excel
- 2003-2007 FR
- Inscrit
- 02/08/2011
- Emploi
- Consultant Test Performance / Audit
Salut,
Un peu de mal a comprendre ce que tu souhaites faire sans fichier d'exemple.
Il y a la macro suivante, qui permet de modifier les Adresses des liens hypertext en masse :
Exemple si tu change de serveur :
Ancienne valeur = "
"
Nouvelle valeur = "htt^://NouveauServeur/Mondoc.hml"
Il faut modifier les lignes :
oldvalue = "http://Ancienserveur"
newvalue = "http://nouveauserveur"Code Macro complet ( a copier dans un module):
Faire une selection de cellule et lancer la macro.
Sub replace_change_lienhypertext()
Dim plage As Range
Dim oldvalue As String
Dim newvalue As String
Dim c As Range
Dim tempstr As String
'A modifier
oldvalue = "http://Ancienserveur"
newvalue = "http://nouveauserveur"
Set plage = Selection
For Each c In plage
If c.Hyperlinks.Count > 0 Then
If InStr(1, c.Hyperlinks(1).Address, oldvalue) > 0 Then
c.Hyperlinks(1).Address = Replace(c..Hyperlinks(1).Address, oldvalue, newvalue)
End If
End If
Next
End SubDis moi si c'est ce que tu souhaites ?
Damien
Bonjour Damien,
C'est vrai je ne suis pas claire dans mes explications.
Voici un exemple concret :
Nom de la cellule 1 =
Enquête de santé (c'est le nom du document)
Le lien hypertexte sur cette cellule est le suivant : http://nom du serveur/sites/intranet/Outils/enquete_de_sante.pdf
Ce document classé dans "outils" de l'intranet va être déplacé dans un autre dossier de l'intranet.
J'en ai plus de 200 comme çà....
Suis-je plus précise ?
En fait, comment ne pas modifier les 200 liens hypertexte de mon tableau excel ?
Merci de ton aide très précieuse.
KAPU59
- Messages
- 358
- Excel
- 2003-2007 FR
- Inscrit
- 02/08/2011
- Emploi
- Consultant Test Performance / Audit
Re,
Si tu as avant :
http://nom du serveur/sites/intranet/Outils/enquete_de_sante.pdf que tu dois remplacer par
http://nom du serveur/sites/intranet/OUTILS22/enquete_de_sante.pdf
Par exemple alors il suffit de mettre
oldvalue = "http://nom du serveur/sites/intranet/Outils/enquete_de_sante.pdf "
newvalue = "http://nom du serveur/sites/intranet/OUTILS22/enquete_de_sante.pdf"Et lance la macro: cela changera le lien sur tout l'onglet actif.
Autre exemple
oldvalue = "http://nom du serveur/sites/intranet/Outils"
newvalue = "http://nom du serveur/sites/intranet/OUTILS22"Replacera tout les liens contenant http://nom du serveur/sites/intranet/Outils/...... par http://nom du serveur/sites/intranet/OUTILS22./.... As tu fait un test ?
En fait, comment ne pas modifier les 200 liens hypertexte de mon tableau excel ?
Je ne comprend pas ce que tu veux dire exactement ? Si tu ne veux pas les modifier n'y touche pas
Damien
Bonjour
Merci Damien
C'est pile poil ce que je recherchais
mes bases de données sont trimballées de serveur (ou PC) en serveur (ou PC) suivant les affectations (France ou etranger)
ça va me sauver la mise car c'est en milliers de documents que l'opération peut se faire.
merci beaucoup.
Thierry
PS: j'ai corrigé une petite erreur: il y a un "." de trop dans la 2eme expression "c.Hyperlinks(1)"
bonjour à tous
autre possibilité sans macro
dans une cellule mettre le chemin du répertoire contenant les fichiers. Ex en Z32 on met http://nom du serveur/sites/intranet/Outils/
puis dans les cellules associées aux documents on met le nom du document. Ex en B2 on met EnqueteClient.doc
puis en C2 on met = LIENHYPERTEXTE ($Z$32 & B2)
à tirer vers le bas
on peut donner un NOM à la cellule Z32 ou bien la mettre sur un onglet spécial (celui qui contient le mode d'emploi de ton fichier, je suppose que tu rédiges un petit mode d'emploi de ta gestion des documents
il sufffit à chaque utilisateur de saisir en Z32 le chemin une seule fois et tout est à jour
Ok jmd mais si les fichiers sont rangés par un ensemble de répertoire et de sous répertoires, ça se complique un peu mais c'est une solution.
j'avais agi comme ça pour créer le lien hypertexte mais je ne connaissais pas la fonction LIENHYPERTEXTE, dans ce cas là j'aurais utilisé ta méthode.
merci, je case ça dans ma mémoire.
ça marche aussi avec des sous-répertoires
à condition que tu déplaces d'un bloc le gros répertoire qui contient tous les sous-répertoires
dans la ligne du document tu mets CheminDuSousReptoire\NomDuDocument.doc
bonjour,
je souhaiterai trouver une facon plus rapide pour imprimer des lien hypertexte.
j'ai reussi a faire une macro pour imprimer mes lien hypertexte mais le problème est le suivant.
j'ai créer un tableau pour confirmer des commande, quand je tape la référence du produit le lien hypertexte s'affiche.
le probleme c'est que si j'utilise la meme ligne pour confirmer une autre commande le lien hyper texte reste le meme que le premier.
auriez-vous une solution?
voici la macro que j'ai trouvé
' Macro5 Macro
'
'
Range("C4").Select
Selection.Hyperlinks(1).Follow NewWindow:=False, AddHistory:=True
ActiveWindow.SelectedSheets.PrintOut Copies:=1, Collate:=True, _
IgnorePrintAreas:=False
ActiveWindow.Close
Range("C5").Select
Selection.Hyperlinks(1).Follow NewWindow:=False, AddHistory:=True
ActiveWindow.SelectedSheets.PrintOut Copies:=1, Collate:=True, _
IgnorePrintAreas:=False
ActiveWindow.Close
Range("C6").Select
Selection.Hyperlinks(1).Follow NewWindow:=False, AddHistory:=True
ActiveWindow.SelectedSheets.PrintOut Copies:=1, Collate:=True, _
IgnorePrintAreas:=False
ActiveWindow.Close
End SubBonjour Damien,
J'essaye d'utiliser ta macro pour changer l'origine de mes liens hypertextes, malheuresement, je n'y arrive pas.
L'ancien lien est :
http://intranet2.travail/sites/santesecune/Controles/Indicateurs%20-%20tableaux%20de%20bord/NK0/N0T/PDPLe nouveau est :
https://travail.sharepoint.com/sites/travail/NK0/Indicateurs%20et%20TdB/2019/N0T/PDP/PDP%202018%20en%20coursJ'ai donc mis cette macro :
Sub replace_change_lienhypertext()
Dim plage As Range
Dim oldvalue As String
Dim newvalue As String
Dim c As Range
Dim tempstr As String
oldvalue = "http://intranet2.travail.net/sites/santesecune/Controles/Indicateurs%20-%20tableaux%20de%20bord/NK0/N0T/PDP"
newvalue = "https://travail.sharepoint.com/sites/travail/NK0/Indicateurs%20et%20TdB/2019/N0T/PDP/PDP%202018%20en%20cours"
Set plage = Selection
For Each c In plage
If c.Hyperlinks.Count > 0 Then
If InStr(1, c.Hyperlinks(1).Address, oldvalue) > 0 Then
c.Hyperlinks(1).Address = Replace(c.Hyperlinks(1).Address, oldvalue, newvalue)
End If
End If
Next
End SubQuand je la mets en route, rien ne se passe...
Ai-je louper quelque chose?
Peux-tu m'éclairer?
Merci d'avance,
Bonne journée