Alexsimps
XLDnaute Nouveau
Bonsoir à tous,
Je tente désespérément de faire des changelink sur plusieurs fichiers en liaisons, mais ça ne fonctionne pas...
Je vous explique :
Dans deux fichiers modèles, j'ai des formules qui ont des liaisons dans certaines colonnes.
Je dois copier ces formules (en ajoutant des colonnes) dans un autre fichier qui contient les données à exploiter.
Avant de copier les formules, pour gagner du temps, je réalise les changelink qui vont bien.
Les changelink se réalisent, sans erreur déclenchée, mais rien ne change ;(
Une idée ? en PJ, le code que j'utilise.
Mes variables sont bien alimentées avec des noms de fichiers qui existent...
Merci d'avance de votre aide.
Alexsimps
Je tente désespérément de faire des changelink sur plusieurs fichiers en liaisons, mais ça ne fonctionne pas...
Je vous explique :
Dans deux fichiers modèles, j'ai des formules qui ont des liaisons dans certaines colonnes.
Je dois copier ces formules (en ajoutant des colonnes) dans un autre fichier qui contient les données à exploiter.
Avant de copier les formules, pour gagner du temps, je réalise les changelink qui vont bien.
Les changelink se réalisent, sans erreur déclenchée, mais rien ne change ;(
Une idée ? en PJ, le code que j'utilise.
Mes variables sont bien alimentées avec des noms de fichiers qui existent...
Merci d'avance de votre aide.
Alexsimps
VB:
Sub Liaisons_externe(WB As Workbook)
Dim Alinks As Variant
Dim I As Long
Alinks = WB.LinkSources(xlExcelLinks)
If Not IsEmpty(Alinks) Then
For I = 1 To UBound(Alinks)
'MsgBox "Link " & I & ":" & Chr(13) & Alinks(I)
If InStr(1, Alinks(I), "DSN_COT_Modele.xlsx") > 0 Then
WB.ChangeLink Alinks(I), wsMaitre.Range("FichierDSNCOT").Value, xlLinkTypeExcelLinks
ElseIf InStr(1, Alinks(I), "DSN_COT_E") > 0 Then
WB.ChangeLink Name:=Alinks(I), newname:=wsMaitre.Range("FichierDSNCOT").Value, Type:=xlLinkTypeExcelLinks
ElseIf InStr(1, Alinks(I), "ENEFPS01_BD021_Modele.xlsx") > 0 Then
WB.ChangeLink Alinks(I), wsMaitre.Range("FichierENEFP").Value, xlLinkTypeExcelLinks
ElseIf InStr(1, Alinks(I), "ENEFPS01_BD021_E") > 0 Then
WB.ChangeLink Alinks(I), wsMaitre.Range("FichierENEFP").Value, xlLinkTypeExcelLinks
ElseIf InStr(1, Alinks(I), "DSN_CC_") > 0 Then
WB.ChangeLink Alinks(I), wsMaitre.Range("FichierLiaison1").Value, xlLinkTypeExcelLinks
ElseIf InStr(1, Alinks(I), "_PP_CF COLL DIFF DE @-fr_") > 0 Then
WB.ChangeLink Alinks(I), wsMaitre.Range("FichierLiaison2").Value, xlLinkTypeExcelLinks
ElseIf InStr(1, Alinks(I), "_go_stop_enefp_") > 0 Then
WB.ChangeLink Alinks(I), wsMaitre.Range("FichierLiaison3").Value, xlLinkTypeExcelLinks
ElseIf InStr(1, Alinks(I), "Export_ContexteDSNGlobal_") > 0 Then
WB.ChangeLink Alinks(I), wsMaitre.Range("FichierLiaison4").Value, xlLinkTypeExcelLinks
ElseIf InStr(1, Alinks(I), "Réf._formules_") > 0 Then
WB.ChangeLink Alinks(I), wsMaitre.Range("FichierLiaison5").Value, xlLinkTypeExcelLinks
End If
Next
End If
End Sub