Bonjour,

J'ai un problème à l'ouverture par VBA d'un classeur protégé par mot de passe et accessible à plusieurs utilisateurs (classeur BDD) :
La macro (cf ci-dessous), lancée depuis un classeur appelé Saisie, doit ouvrir le classeur BDD (grâce au mot de passe passé en paramètre), puis tester s'il est ouvert en lecture seule, le principe étant d'attendre que le classeur BDD soit libéré pour l'ouvrir.
Or Si le classeur BDD n'est pas déjà ouvert par un autre utilisateur, il s'ouvre correctement.
Par contre, et c'est là le problème, s'il est déjà ouvert par un autre utilisateur, excel demande d'entrer le mot de passe, alors qu'il l'a déjà en paramètre. Or les utilisateurs ne connaissent pas le mot de passe.
Quelqu'un peut-il m'aider, car je n'ai aucune piste, je ne comprends vraiment pas d'où vient ce problème.

Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
 
Private Sub bCloture_Click()
 
Set Wb = ThisWorkbook
Set WsParam = Wb.Worksheets("Paramètres")
vRepertoire = WsParam.Range("Q2").Value
 
vCompteur = 0
OuvertureWbBDD:
Set WbBDD = Application.Workbooks.Open(vRepertoire & "\Fiche Progrès_BDD.xlsm", , , , "qse", "qse")
If WbBDD.ReadOnly = True Then
    vCompteur = vCompteur + 1
    If vCompteur = 5 Then
        vChoix = MsgBox("La base de données est déjà en cours d'utilisation par " & Workbooks("Fiche Progrès_BDD.xlsm").BuiltinDocumentProperties(7).Value & Chr(13) & Chr(13) & "Voulez-vous refaire une tentative de mise à jour ?", vbRetryCancel, "Base en cours d'utilisation")
        If vChoix = 4 Then
            vCompteur = 0
            GoTo OuvertureWbBDD
        Else
            vCompteur = 0
            WbBDD.Close False
            Exit Sub
        End If
    End If
    Application.Wait Now + TimeValue("0:00:05")
    GoTo OuvertureWbBDD
End If
Merci d'avance de votre aide précieuse !