Bonjour à tous,
J'ai un Userform qui contient 2 listbox:
La première Listbox (appelée Listbox2...) contient le code suivant qui me permet de lister tous les classeurs excel ouverts:
Lorsque je sélectionne un des classeurs dans cette listbox, cela vient lister les liaisons externes dans la 2ème listbox (appelée Listbox1...):
A partir de ces informations j'ai un code sur un bouton validé qui me permet d'automatiser des liaisons de fichiers:
Est ce que dans cette boucle il serait possible de faire un refresh des données que contient la Listbox1 pour prendre en compte la mise à jour de lien qui s'effectue ?
D'avance merci pour vos pistes !
J'ai un Userform qui contient 2 listbox:
La première Listbox (appelée Listbox2...) contient le code suivant qui me permet de lister tous les classeurs excel ouverts:
VB:
Private Sub Userform_initialize()
For Each wk In Workbooks
ListBox2.AddItem wk.Name
Next
End Sub
Lorsque je sélectionne un des classeurs dans cette listbox, cela vient lister les liaisons externes dans la 2ème listbox (appelée Listbox1...):
Code:
Private Sub listbox2_Click()
ListBox1.Clear
Dim L, i&
L = Workbooks(ListBox2.Value).LinkSources
If IsEmpty(Workbooks(ListBox2.Value).LinkSources) Then
MsgBox "pas de liaison"
Exit Sub
Else
For i = 1 To UBound(L)
ListBox1.AddItem L(i)
Next i
End If
End Sub
A partir de ces informations j'ai un code sur un bouton validé qui me permet d'automatiser des liaisons de fichiers:
Code:
Private Sub CommandButton4_Click()
Dim L, M, N, i, x
For i = 1 To ListBox1.ListCount
x = Application.Match(ListBox1.List(i - 1), Workbooks("Assistant").Sheets("feuil1").Range("V:V"), 0)
' check si la liaison dans la Listbox1 est présente dans un tableau de récap sur mon fichier
If IsError(x) Then
'si pas présente on ne fait rien
Else
L = Workbooks("Assistant").Sheets("feuil1").Cells(x, 20).Value
M = Workbooks("Assistant").Sheets("feuil1").Cells(x, 21).Value
N = Workbooks("Assistant").Sheets("feuil1").Cells(x, 22).Value
ActiveWorkbook.ChangeLink M, L, xlLinkTypeExcelLinks 'mise à jour de lien
' si elle est présente, on nomme en variable différents classeurs excel puis on fait une mise à jour de liens
End If
Next
Est ce que dans cette boucle il serait possible de faire un refresh des données que contient la Listbox1 pour prendre en compte la mise à jour de lien qui s'effectue ?
D'avance merci pour vos pistes !