Citation Envoyé par thom07lamy Voir le message
En cherchant chez nos amis anglophones, j'ai peut-être trouvé la solution à mon problème.
Voici la nouvelle fonction:
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
 
Function UnprotectVBProject(WB As Workbook, ByVal Password As String) As Boolean
Dim vbProj As Object
 
Set vbProj = WB.VBProject
 
'Inutile si le projet est déjà déprotégé
If vbProj.protection <> 1 Then
    UnprotectVBProject = True
    Exit Function
Else
    Set Application.VBE.ActiveVBProject = vbProj
    'Saisie du mot de passe avec SendKeys, {ESC} sort de la fenêtre de saisie du mot de passe
    SendKeys Password & "~~" & "{ESC}"
    Application.VBE.CommandBars(1).FindControl(ID:=2578, recursive:=True).Execute
    If vbProj.protection <> 1 Then
        UnprotectVBProject = True
    Else
        'Password n'est pas le bon
        UnprotectVBProject = False
        SendKeys "%{F11}", True
    End If
End If
End Function
Le {ESC} était la solution depuis le début...
Par contre, un truc que je ne comprends pas, mon code fonctionne sur la plupart des PCs, mais un en particulier me pose souci, et seulement sur un appel de la fonction (pas les 3 hein, sinon ça serait trop simple...). Mais bon je ne désespère pas, je trouverai bien quelque chose.

Ayant trouvé votre message sur ce forum, j'ai testé le code de déverrouillage ci-dessus mais sans succès.
Je travaille avec Excel 2010.
Avez-vous une idée du problème, sachant que "Accès approuvé au modèle d'objet du projet VBA" est coché ?
Merci pour une réponse.
Cdt
Dadu35