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
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.
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:
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.
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
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: