Empêcher la double ouverture d'un classeur

Si par VBA j'essaie d'ouvrir un classeur déjà ouvert, le seul message d'alerte se trouve dans la barre des titres avec le nom de fichier qui comporte la mention (lecture seule). Comment interrompre dans ce cas l'ouverture et afficher un message d'alerte.

Voici une macro et une fonction qui associées permettent de faire ce que tu demandes

Private sub CommandButtonOpenDemand_Click()
 Dim Msg, Style, Title
 
 If IsFileOpen("P:\IT DevelopmentsCommun\ Tools\Demand.xls") Then
  MsgBox "Le classeur demandé est en cours d'utilisation"
 Else
  MsgBox "Le classeur demandé est disponible"
  Workbooks.Open "P:\IT DevelopmentsCommun\ Tools\Demand.xls"
 End If
 end sub
Function IsFileOpen(filename As String)
 Dim filenum As Integer, errnum As Integer
 
 On Error Resume Next
 filenum = FreeFile()
 Open filename For Input Lock Read As #filenum
 Close filenum
 errnum = Err
 On Error GoTo 0
 Select Case errnum
  Case 0
    IsFileOpen = False
  Case 70
    IsFileOpen = True
  Case Else
    Error errnum
 End Select
 End Function

Auteurs : , ,

Mots clefs associés à cette page : , , , , , ,