vendredi 27 février 2015

Vérifier par VBA si un classeur est déjà ouvert sur le même PC ou en réseau

Placer ce code dans un module de l'éditeur VBA :


Sub TestSiClasseurOuvert()
    If Not FichierDejaOuvert("C:\Planning.xlsx") Then 'le chemin doit être renseigné
        MsgBox "Classeur pas ouvert"
    Else
        MsgBox "Classeur ouvert"
    End If
End Sub

Public Function FichierDejaOuvert(MonFichier As String) As Boolean  'Vérifie si un classeur est déjà ouvert
    On Error Resume Next
    Open MonFichier For Binary Access Read Lock Read As #1
    Close #1
    FichierDejaOuvert = IIf(Err.Number > 0, True, False)
    On Error GoTo 0
End Function