Bonjour,
Je voulais tester si un classeur était ouvert sans utiliser on error resume next. Or le classeur qui existe bien ne fait partie ni de la collection workbooks, ni de la collection addins. Il s'agit d'un programme dont le nom est machin.xla, mais qu'un programme d'installation place dans le répertoire xlstart.
Avez-vous un moyen de lister tous les classeurs ouverts .xls et .xla ?
Sub test()
Dim wb As Workbook, wa As AddIn
i = 1
For Each wb In Workbooks
Cells(i, 1) = wb.Name
i = i + 1
Next wb
For Each wa In AddIns
Cells(i, 1) = wa.Name
i = i + 1
Next wa
End Sub
Le classeur machin.xla est simplement mis dans le répertoire xlstart donc il s'ouvre en même temps qu'excel, mais comme il n'est pas xls, il n'apparaît pas dans la collection workbooks, et comme il n'a jamais été installé comme macro complémentaire, il n'apparaît pas non plus dans la collection Addins.
Si je demande workbooks("machin.xla").name ça va marcher mais c'est parceque je connais le nom.
Non pas du tout, c'est un programme extérieur à Excel qui installe des dlls et copie ce fichier dans le document xlstart. Ici c'est un fichier utile, mais il me semble que si c'était un virus ce serait pareil.