Recuperer le lien et/ou l'index d'un fichier lie

Carnage029

XLDnaute Occasionnel
Bonjour a tous :)

J'ai developpe un gros fichier Excel qui va chercher des informations dans plusieurs autres fichiers Excel.

Apres avoir developpe (VBA) une interface (userform) qui permet de changer les fichiers "d'origine" avec des donnees plus recentes (par exemple chaque mois).

Le probleme principal que j'ai rencontre est le fait que l'index de mes liens change par moment et sans raison apparante (en tout cas je n'ai pas compris/trouve la cause).

Le processus suivi est le suivant :

A l'ouverture de mon "Master" excel, je recupere les liens dans une range de cellules comme suit:

Code:
Sub PrintLinks()
   Dim v() As Variant, i As Integer
   v = ThisWorkbook.LinkSources(XlLink.xlExcelLinks)
   For i = 1 To UBound(v)
      ThisWorkbook.Sheets("Mapping").Cells(i + 1, 9) = v(i)
   Next i
End Sub


Puis a l'aide d'un userform l'utilisateur peut modifier ces liens


Code:
' Premier lien

If Me.Label2.Caption <> Sheets("Mapping").Cells(2, 9).Text Then

    ActiveWorkbook.ChangeLink Name:= _
        Sheets("Mapping").Cells(2, 9).Text _
        , NewName:=Me.Label2.Caption, Type:= _
        xlExcelLinks
                     
    Application.Calculate
    If Not Application.CalculationState = xlDone Then
        DoEvents
    End If
    
    Sheets("Mapping").Cells(2, 9).Value = Label2.Caption
    
End If

'Deuxieme lien
If Me.Label3.Caption <> Sheets("Mapping").Cells(3, 9).Text Then


    ActiveWorkbook.ChangeLink Name:= _
        Sheets("Mapping").Cells(3, 9).Text _
        , NewName:=Me.Label3.Caption, Type:= _
        xlExcelLinks
                     
    Application.Calculate
    If Not Application.CalculationState = xlDone Then
        DoEvents
    End If
    
    Sheets("Mapping").Cells(3, 9).Value = Label3.Caption
    
End If

'Troisieme lien
If Me.Label5.Caption <> Sheets("Mapping").Cells(4, 9).Text Then


    ActiveWorkbook.ChangeLink Name:= _
        Sheets("Mapping").Cells(4, 9).Text _
        , NewName:=Me.Label5.Caption, Type:= _
        xlExcelLinks
                     
    Application.Calculate
    If Not Application.CalculationState = xlDone Then
        DoEvents
    End If
    
    Sheets("Mapping").Cells(4, 9).Value = Label5.Caption
    
End If

'Template
If Me.Label7.Caption <> Sheets("Mapping").Cells(6, 9).Text Then

    Sheets("Mapping").Cells(6, 9).Value = Label7.Caption
    
End If

Le probleme etant que si lors du printlink les liens ont changes d'index la deuxieme procedure ne fonctionne plus, existe t'il un moyen de s'assurer que les liens sont dans le "bon" ordre ? Par exemple en recuperant le full path d'un lien d'une cellule en particulier ?


Merci a tous de votre aide :)
Carnage029
 

Discussions similaires

Statistiques des forums

Discussions
312 207
Messages
2 086 228
Membres
103 160
dernier inscrit
Torto