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.
Merci d'avance de votre aide précieuse !
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
Partager