Vérifier si un fichier est déjà ouvert

J-Charles

XLDnaute Occasionnel
Bonjour à tous,
J'ai créé des fichiers qui sont exploités sur un réseau par plusieurs utilisateurs. Si un utilisateur essais d'ouvrir un fichier déjà ouvert, un mesage de windows nous prévient et nous incite à l'ouvrir en lecture seule. J'aimerais en revanche qu'un message prévienne que ce fichier est déjà ouvert, mais sans possibilité de l'ouvrir (juste un bouton OK). Je sais créé une commande pour faire un test à l'ouverture du fichier (fonction: IsFileOpen ...), mais dans mon cas les fichiers sont ouvert directement à partir d'un raccourci sur le bureau ou en cliquant sur le fichier.
J'ai essayé d'écrire une commande dans "ThisWorkbook:Workbook_Activate ou Workbook_Open" mais sans succés.
Si quelqu'un à une petite idée, je serais heureux de la connaître ...
Je remercie tous ceux qui prennent leur temps pour secourir les petits "bleus" comme moi.
 

RENAUDER

Nous a quitté
Repose en paix
Re : Vérifier si un fichier est déjà ouvert

Bonjour,
Adaptes ce code
Code:
Public Etat As Boolean
Sub OuvrirFichier()
    Dim FileToOpen As String
    FileToOpen = "C:\Excel\testOpen.xls"
    Etat = IsFileOpen(FileToOpen)
    If Etat = False Then Workbooks.Open FileToOpen
End Sub
Code:
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
    End Select
End Function
 

job75

XLDnaute Barbatruc
Re : Vérifier si un fichier est déjà ouvert

Bonjour J-Charles, salut Eric

Pourquoi pas quelque chose comme ça :

Code:
Sub test()
Dim fichier As Workbook
On Error Resume Next
Set fichier = Workbooks("toto.xls")
If Err = 0 Then MsgBox "Le fichier " & fichier.Name & " est déjà ouvert": Exit Sub
On Error GoTo 0
'----------------
End Sub

A+
 
Dernière édition:

J-Charles

XLDnaute Occasionnel
Re : Vérifier si un fichier est déjà ouvert

Merci à Job75 et Renauder,
Malheureusement les réponses ne correspondent pas à mon attente, car les fichiers ne sont pas ouverts par macro mais simplement par raccourci ou en cliquant dessus. J'avais déjà récupérer un macro de test pour vérifier si un fichier est ouvert, mais dans ce cas précis je ne peux pas l'utiliser.
 

Discussions similaires

Statistiques des forums

Discussions
312 497
Messages
2 088 992
Membres
104 000
dernier inscrit
dinelcia