Modifier les liens suite à un changement de dossier

bonjour,

Dans mon document, j'ai crée des liens vers des fichiers PDF. Je clic, ça ouvre le fichier pdf.

Je souhaiterai déplacer tous ces PDF dans un dossier unique. Le fait de les déplacer, mes liens ne sont plus bons, mon PDF ne s'ouvre plus.

Actuellement, tous les PDF sont dans le même fichier, mais je souhaiterai tous les déplacer dans un sous-fichier.

Existe t-il une astuce pour modifier l'ensemble (environ 350 liens), ou pour me simplifier la vie?

Merci d'avance.

Il est possible en VBA de modifier tous les liens d'une (ou plusieurs) feuilles vers une destination unique. Deux situations :

- opération à partir du début : un fichier Excel qui ouvre des fichiers PDF placés un peut partout. On déplace les fichiers vers un dossier unique par récursivité et on modifie les liens en même temps dans le fichier Excel

- les fichiers PDF ont déjà été regroupés vers un dossier unique (attention : vous confondez "fichiers" et "dossiers"). C'est encore plus simple : on recherche tous les liens hypertextes du fichier Excel et on change les chemins d'accès (paths).

Bonjour,

merci pour ta réponse.

Pour apporter plus de précision:

Tous les pdf sont réunis dans un seul et même dossier mais ils sont mélangés avec d'autre pdf. Je souhaite donc créer un sous dossier (pour qu'ils soient mieux rangés). Le fait de les déplacer vers un sous dossier fait que, les liens ne s'ouvrent plus. Dans ce fichier excel (dans la feuille en question) il y a environ 350 lignes, avec sur chaque ligne, un lien vers le pdf et un lien vers le site internet correspondant (colonne lien pdf, colonne lien internet).

Pour en revenir à ta réponse:

VBA?: j'ai lu qu'il fallait mettre l'onglet développeur mais après je ne sais pas.

je pencherai plus pour ta première solution (cela exclura les liens vers internet), mais je ne sais pas comment faire.

tu en penses quoi?

Donnez-nous une feuille avec juste les liens hypertextes des fichiers à déplacer. Vous pourrez retirer les autres feuilles et les autres colonnes.

Mon vrai fichier excel ou un semblant avec quelques lignes pour exemple?

Vous pouvez placer votre fichier ici s'il n'y a rien de confidentiel dedans ou, dans le cas contraire, ne mettre que la feuille contenant la liste des liens.
Donnez-moi également le nom du sous-dossier où vous voulez stocker ceux qui sont liés à votre fichier.
Pour des raisons de sécurité la macro copiera les fichiers au lieu de les déplacer. Je vous l'expliquerai ultérieurement (elle est prête parce que j'ai eu le même travail à faire pour mes photos).

OK

je joins mon fichier, j'ai supprimer les autres feuilles.

actuellement, les pdf sont dans:

C:\Users\chris\Synology\Responsable Technique\EN COURS DE MODIFICATION\803DOC03 - complet

et je souhaiterai les placer dans un sous-dossier nommé "norme", ce qui donnerait:

C:\Users\chris\Synology\Responsable Technique\EN COURS DE MODIFICATION\803DOC03 - complet\norme

et merci d'avance

Vos liens sont étranges. Je prends le 1er :

le fichier AFNOR C 17-205 (214 08).pdf comme vous le dites n'est pas dans :
C:\Users\chris\Synology\Responsable Technique\EN COURS DE MODIFICATION\803DOC03 - complet

mais dans :
../../Synology/Responsable Technique/EN COURS DE MODIFICATION/803DOC03 - complet/AFNOR C 17-205 (2014 08).pdf

Je veux bien simuler le dossier dont vous parlez, mais il faudra que ce soit sur un PC, sous Windows, pas en réseau et avec un paramétrage où c'est l'antislash qui sert de séparateur et non pas le slash.

Avant toute chose, je vous conseillerais, pour des raisons de sécurité, de copier le dossier C:\Users\chris sur un autre disque dur. Vous pourrez changer sa lettre à la ligne 20 de la macro. Si vous voulez travailler en toute sécurité, mettez en remarque la ligne 31, les fichiers copiés dans le sous-dossier ..\norme ne seront pas détruits après avoir été copiés. Si les nouveaux liens ne fonctionnent pas, ce sera dû à ce problème de slash/anti-slash évoqué un peu plus haut. Il faudra adapter la macro à votre système.

Le fichier .xlsm doit être placé dans le dossier contenant les PDF au départ.

Option Explicit

  Sub Déplacement()
1    Dim i As Integer, j As Integer
2    Dim rng As Range
3    Dim chemin As String, lien As String
4    Dim origine As String, destination As String
5    Dim table() As String

6    'Si le dossier n'existe pas, on le crée
7    chemin = ThisWorkbook.Path & "\norme\"
8    If Dir(chemin, vbDirectory) = "" Then MkDir chemin

9    Set rng = Range("C8:C372")
10   rng.Select

11    Application.ScreenUpdating = False
12    j = 7
13    For Each rng In Selection
14        j = j + 1
15        If rng.Hyperlinks.Count > 0 Then
16            lien = rng.Hyperlinks(1).Address
17            lien = Replace(lien, "/", "\")
18            table = Split(lien, "\")
19            'table(0) = "C:\Users"
20            table(0) = "D:\Users"
21            table(1) = "chris"
22            origine = ""
23            For i = 0 To 5
24               origine = origine & table(i) & "\"
25            Next i
26            destination = origine & "norme\" & table(6)
27            origine = origine & table(6)
28            FileCopy origine, destination
29            Cells(j, 3).Select
30            ActiveSheet.Hyperlinks.Add Anchor:=Selection, Address:=destination
31            Kill origine
32        End If
33    Next rng
34    Application.ScreenUpdating = True
35    MsgBox "Fin de traitement"
36 End Sub

effectivement, c'est sur le serveur, pour les sauvegardes (c'est un ordinateur pro...)

j'ai copié le fichier Excel et le dossier contenant les pdf sur mon disque dur.

j'ai donc les pdf dans : C:\Users\chris\OneDrive\Documents\803DOC03 - complet

ces pdf devront arriver dans: C:\Users\chris\OneDrive\Documents\803DOC03 - complet\norme

est ce que ça va mieux comme ça?

Avant de faire n'importe quoi, car pour moi c'est du "Chinois", est ce qu'il y a des choses à modifier?

je pense qu'il ne faut pas supprimer les pdf, quitte à avoir des doublons, je les supprimerai une fois les liens corrects

j'attends votre retour avant tout (je ne veux rien perdre...)

Tout le code est à refaire parce qu'il est construit sur l'arborescence que vous m'aviez donnée et que vous avez précisée en écrivant que vos fichiers PDF étaient dans :

C:\Users\chris\Synology\Responsable Technique\EN COURS DE MODIFICATION\803DOC03 - complet

Le problème, c'est que je n'aurai plus le temps maintenant avant mon départ. J'espère que quelqu'un pourra l'adapter si vous n'y arrivez pas. Je serai de retour dans une quinzaine. (:((

OH pardon. je pensais que ça allait simplifier la chose.

sinon je tente celui que vous avez fait sur celui qui est sur le serveur?

(je copie l'ensemble dans "mes document" pour sauvegarde)

Certainement pas. Aucune chance que ça fonctionne sur un serveur et de grandes possibilités de faire une grosse bêtise.

Je vous mets ici en PJ la liste des fichiers à déplacer. Ca pourra aider quelqu'un.

14fichierspdf.xlsx (9.79 Ko)

Ok

Merci d'avoir pris du temps pour y regarder.

J'attends donc un nouveau retour avant de toucher a quelque chose.

j'ai résolu le problème en modifiant les liens à la main.

Rechercher des sujets similaires à "modifier liens suite changement dossier"