Fichier partagé sur Dropbox : vérification si fichier déjà ouvert

Bonjour à tous,

je partage un fichier sur Dropbox, avec un compte Basic. Je souhaiterais avoir un avertissement à l’ouverture lorsque mon fichier est déjà utilisé sur un autre PC.

J’utilise ce code :

Function IsWorkbookOpenned(sMyWorkbook As String)

Dim FileNumber As Long, ErrorNumber As Long

    On Error Resume Next
    FileNumber = FreeFile()
    Open sMyWorkbook For Input Lock Read As #FileNumber
    Close FileNumber
    ErrorNumber = Err
    On Error GoTo 0

    Select Case ErrorNumber
        Case 0:    IsWorkbookOpenned = False
        Case 70:   IsWorkbookOpenned = True
        Case Else: Error ErrorNumber
    End Select
End Function

Sub CheckWorkbookOpen()

    Dim sPathName As String 'Chemin répertoire courant
    Dim sExtensionWB As String 'Extension du fichier
    Dim sSavedName As String 'Nom du fichier
    Dim sCompleteName As String 'Nom complet du fichier
    Dim sMyWorkbook As String
    Dim bChecking As Boolean

        ' Enregistrement chemin répertoire courant
        sPathName = ThisWorkbook.Path

        ' Construction nom complet du du fichier
        sExtensionWB = Split(ThisWorkbook.Name, ".")(UBound(Split(ThisWorkbook.Name, ".")))
        sSavedName = Replace(ThisWorkbook.Name, "." & sExtensionWB, "")
        sCompleteName = sSavedName & ".xlsm"
        sMyWorkbook = sPathName & "\" & sCompleteName

       ' D'abord tester si le fichier existe
       If Len(Dir(sMyWorkbook)) = 0 Then ' S'il n'existe pas, montrer un avertissement et quitter la macro
           MsgBox "ERREUR: Le Classeur: [" & sMyWorkbook & "] n'existe pas..."
           Exit Sub
       End If

       ' Si le Classeur existe, vérifier s'il est déjà ouvert
       bChecking = IsWorkbookOpenned(sMyWorkbook)

       If bChecking = True Then
           MsgBox "Le Classeur: " & sSavedName & " est déjà ouvert..."
           Exit Sub
       End If
End Sub

La procédure est exécutée à l'ouverture
Le problème évidemment, c'est que vu que j'ouvre le fichier, j'ai directement le MsgBox.
Donc, je tourne en rond.
Y a-t-il un moyen de différencier les utilisateurs ?

Merci

Hello.
Le plus simple et de partager via OneDrive, pas besoin de macro ou autres attributs et si le fichier est ouvert, le nom de la personne qui travaille sur le fichier s’affiche en haut a droite et on peut voir la cellule active chez la personne. travaillant sur le fichier

Salut taz067,

c’est ce que je voulais faire au départ, le souci c’est que j’ai d’autres macros dans le fichier.

Et le VBA n’est pas géré par OneDrive.

Bien sûr que si, ce n’est pas OneDrive qui gère les macros d’un fichier Excel, c’est Excel, je partage des fichiers avec macros via OneDrive…
Les restrictions sont juste qu’Excel Web et/ou sur Android les macros ne fonctionnent pas.

Oups,

il me semblait avoir essayé l’année dernière.

Je vais donc réessayer.

Merci

voila un fichier avec macro sur mon Ondrive, comme dit a ouvrir avec l’application bureau sur PC
gestion films et livres.xlsm

et on sais meme parametrer une date de fin de partage ici au 17/1/2026

Ce sujet a été automatiquement fermé après 30 jours. Aucune réponse n’est permise dorénavant.