Bonjour,
Je cherche à créer un UserForm dans Excel qui affiche une liste de tous les classeurs Excel ouverts et permet de copier le nom du classeur sélectionné dans une cellule, par exemple en B2. Le code que j'ai écrit fonctionne, cependant, la mise à jour des classeurs ouverts ou fermés prend du temps. Je me demandais s'il était possible d'ajouter une commande qui permettrait à Excel de mettre à jour cette liste de manière plus réactive. Je vous joins le code auquel je suis parvenu.
Private Sub UserForm_Initialize()
Me.ListBox1.Clear
For Each Workbook In Application.Workbooks
Me.ListBox1.AddItem Workbook.Name
Next Workbook
End Sub
Private Sub CommandButton1_Click()
If Me.ListBox1.ListIndex <> -1 Then
' Afficher le nom du classeur sélectionné dans la cellule C3
ThisWorkbook.Sheets("DONNEES").Range("F6").Value = Me.ListBox1.Value
Unload Me
Else
MsgBox "Veuillez sélectionner un fichier.", vbExclamation, "Sélectionner un fichier"
End If
End Sub
Private Sub CommandButton2_Click()
Me.Tag = "Cancelled"
Me.Hide
End Sub