Ceci est une page optimisée pour les mobiles. Cliquez sur ce texte pour afficher la vraie page.

XL 2010 VBA - Refresh d'une Listbox pendant une macro

sand13

XLDnaute Occasionnel
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:

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 !
 

Discussions similaires

Les cookies sont requis pour utiliser ce site. Vous devez les accepter pour continuer à utiliser le site. En savoir plus…