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
A voir également:
- Excel modification liaisons
- Liste déroulante excel - Guide
- Suivi de modification word - Guide
- Word et excel gratuit - Guide
- Si ou excel - Guide
- Déplacer colonne excel - Guide
4 réponses
Bonjour,
Suggestion :
bien sur, il faut faudra adapter à votre situation !
Lupin
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 !
Lupin
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