XL 2010 VBA MaJ liaisons par rapport à un tableau

sand13

XLDnaute Occasionnel
Bonjour à vous,

Je dispose dans un fichier excel, appelé Récap, un tableau qui défini des répertoires et noms de fichiers en dynamique par rapport à une date.

Par exemple j'ai un ClasseurA. dans le répertoire C:\2019-09\ClasseurA.xlsm, un autre dans C:\2019-08\ClasseurA.xlsm et un autre dans C:\2019-08\ClasseurA.xlsm

exemple.jpg


Sur ce fichier Recap quand je commence à travailler sur la situation au 30/09/2019, les liaisons du ClasseurA par exemple sont celles de 2019-07 et 2019-08. Il me faut donc mettre à jour la liaison du 2019-08 avec celui du 2019-09 et celui de 2019-07 avec celui de 2019-08 (pour avoir le mois et le mois précédent).

J'utilise le code suivant pour que soit affiché dans une Listbox1 les liaisons actives d'un classeur.

VB:
 Dim L, i&
   L = ActiveWorkbook.LinkSources

      For i = 1 To UBound(L)
           ListBox1.AddItem L(i)
      Next i

Serait-il possible de faire un code qui testerait les liaisons listées dans la Listbox1 avec les données de mon tableau excel en colonne D et que si cela match il me fasse une action ?

Exemple si dans ma Listbox1 j'ai C:\2019-07\ClasseurA.xlsm alors faire telle action, puis si j'ai également C:\2019-07\ClasseurD.xlsm alors faire telle action ?

J'espère que je suis assez clair dans mes explications.

Jusqu'a présent j'utilisais le code suivant pour automatiser mes laisons:

VB:
Dim i As Integer
    Dim flag As Boolean
    
    flag = False
    For i = 0 To ListBox1.ListCount - 1
        If ListBox1.List(i) = ClasseurA Then
            flag = True: Exit For
        End If
    Next i
    
    If flag Then
ActiveWorkbook.ChangeLink ClasseurA1, ClasseurA, xlLinkTypeExcelLinks
ActiveWorkbook.ChangeLink ClasseurA2, ClasseurA1, xlLinkTypeExcelLinks
Userform_initialize
    Else
    End If

ClasseurA = ClasseurA du 30/09/2019
ClasseurA1 = ClasseurA du 31/08/2019
ClasseurA2 = ClasseurA du 31/07/2019

Le soucis avec ce code c'est qu'il m'obige à écrire toutes ces lignes pour chacun des classeurs (A, B, C, D etc..) et j'en ai beaucoup, d'où ma volonté de changer de méthode.


Un grand merci à vous pour vos indications.
 
Dernière édition:

Discussions similaires

Statistiques des forums

Discussions
312 177
Messages
2 085 972
Membres
103 073
dernier inscrit
MSCHOE16