Bonjour,
Ou, avec une fonction :
Sub Test()
MsgBox EstOuvert("Mon Classeur.xls")
End Sub
Function EstOuvert(w As String)
Dim Val
On Error Resume Next
Val = Workbooks(w).Worksheets(1).Range("A1")
EstOuvert = Err.Number = 0
End Function
NB - Le résultat sera erroné si le classeur ne comporte
aucune feuille de calcul, mais c'est d'un cas d'école. On
peut le tester en créant un nouveau classeur, auquel on
ajoute une feuille macro XL4 (menu contextuel au niveau
d'un onglet). Il faut ensuite supprimer toutes les feuilles
de calcul et ajouter un module au classeur contenant cette
procédure et la fonction "EstOuvert" :
Sub Test()
MsgBox EstOuvert(ThisWorkbook.Name)
End Sub
La Sub provoque l'affichage de FAUX, l'erreur provenant
de WorkSheets(1), car la collection est vide.
C'est exprès que je n'ai pas mis Sheets(1), car la pre-
mière feuille peut être une feuille graphique, pour laquel-
le Range("A1") n'est pas défini.
Post by papouBonjour Annette
Sub test()
On Error Resume Next
Workbooks("Mon CLasseur.xls").Activate
If Err <> 0 Then
MsgBox "Le classeur Mon Classeur.xls n'est pas ouvert"
Else: MsgBox "Le classeur Mon CLasseur.xls est ouvert"
End If
End Sub
Cordialement
Pascal
Bonjour,
j'ai un souçi tout bête.
Comment, en VBA, tester si tel fichier Excel est déjà
ouvert ou non ?
Merci beaucoup
Anne
--
Cordialement,
Michel Gaboly
http://www.gaboly.com