Public Function IsWorkbookOpen(tWkb As String, _
Optional tPath As String = vbNullString) As Boolean
'=> déclaration de la fonction IsWorkbookOpen qui requiert qu'on lui passe un paramètre obligatoire et un paramètre optionnel.
Dim wkb As Workbook
'=> déclaration d'une variable objet de type workbook
On Error Resume Next
'=> indiquer à excel le comportement à suivre
Set wkb = Workbooks(tWkb)
'=> en utlisant la variable tWkb, qui contient le nom du classeur à contrôler, on tente l'affectation de la variable objet
'=> si le classeur n'est pas présent, la gestion d'erreur va permettre de continuer l'exécution de la macro
'=> si le classeur n'existe pas, la variable wkb ne contiendra rien du tout
'=> si elle ne contient rien du tout, le fichier n'est pas ouvert, il va être ouvert par la macro
If wkb Is Nothing Then
'=> gestion d'erreur supplémentaire
On Error GoTo PROC_ERR
If Len(tPath) Then
tPath = IIf(Right(tPath, 1) = "\", tPath, tPath & "\")
Set wkb = Workbooks.Open(tPath & tWkb)
End If
IsWorkbookOpen = True
End If
PROC_EXIT:
Exit Function
=> si une erreur s'est produite le classeur n'existe pas, on retourne le résultat booléen FAUX comme résultante de la fonction
PROC_ERR:
IsWorkbookOpen = False
Resume PROC_EXIT
End Function
bye
Stéphane