Excel modification liaisons
zouzou
-
Utilisateur anonyme -
Utilisateur anonyme -
Bonjour,
je travaille sous excel et je dispose d'un dossier qui s'appele "octobre" avec 12 sous-dossiers (un sous-dossier = a un nom de personne).
A le racine du dossier "octobre" j'ai 5 fichiers excel qui recapitule les infos des fichiers des sous-dossiers avec des liaisons.
Si je veux dupliquer mon dossier "Octobre" en "Novembre" toutes les liaisons sont a revoir.
Bref, Je dois changer 2000 liens a la main en modifiant le chemin du dossier octobre par novembre.
2 solutions sont possibles :
- faire un remplacer octobre par novembre mais ca me plante mon fichier
- ou editions liaisons a la main pour 2000 liens.
Avez-vous une solution svp?
merci d'avance pour votre aide
je travaille sous excel et je dispose d'un dossier qui s'appele "octobre" avec 12 sous-dossiers (un sous-dossier = a un nom de personne).
A le racine du dossier "octobre" j'ai 5 fichiers excel qui recapitule les infos des fichiers des sous-dossiers avec des liaisons.
Si je veux dupliquer mon dossier "Octobre" en "Novembre" toutes les liaisons sont a revoir.
Bref, Je dois changer 2000 liens a la main en modifiant le chemin du dossier octobre par novembre.
2 solutions sont possibles :
- faire un remplacer octobre par novembre mais ca me plante mon fichier
- ou editions liaisons a la main pour 2000 liens.
Avez-vous une solution svp?
merci d'avance pour votre aide
Configuration: Windows XP Internet Explorer 6.0
4 réponses
-
-
Bonjour,
Suggestion :
bien sur, il faut faudra adapter à votre situation !
Sub MAJ_Liaisons() Const cteMoisCourant = "Octobre" Const cteMoisNouveau = "Novembre" Dim Liaisons As Variant, Num As Long, Valeur As String Dim Chemin As String, Position As Long Dim NomFichier As String, NouveauLien As String Liaisons = ThisWorkbook.LinkSources If Not IsEmpty(Liaisons) Then For Num = 1 To UBound(Liaisons) Valeur = Liaisons(Num) Chemin = Left(Valeur, InStrRev(Valeur, "\")) NomFichier = Mid(Valeur, Len(Chemin) + 1) Position = InStr(1, Valeur, cteMoisCourant, vbTextCompare) NouveauLien = Mid(Valeur, 1, (Position - 1)) NouveauLien = NouveauLien & cteMoisNouveau NouveauLien = NouveauLien & Mid(Valeur, (Position + Len(cteMoisCourant))) ActiveWorkbook.ChangeLink Liaisons(Num), NouveauLien Next End If End Sub
Lupin -
-
re :
J'avais 2 variables de trop !
Sub MAJ_Liaisons() Const cteMoisCourant = "Octobre" Const cteMoisNouveau = "Novembre" Dim Liaisons As Variant Dim Num As Long, Position As Long Dim NouveauLien As String, Valeur As String Liaisons = ThisWorkbook.LinkSources If Not IsEmpty(Liaisons) Then For Num = 1 To UBound(Liaisons) Valeur = Liaisons(Num) Position = InStr(1, Valeur, cteMoisCourant, vbTextCompare) NouveauLien = Mid(Valeur, 1, (Position - 1)) NouveauLien = NouveauLien & cteMoisNouveau NouveauLien = NouveauLien & Mid(Valeur, (Position + Len(cteMoisCourant))) ActiveWorkbook.ChangeLink Liaisons(Num), NouveauLien Next End If End Sub
Lupin