VBAProject Mot de passe - demandé à la fermeture

blord

XLDnaute Impliqué
Bonjour à tous,

Après des recherches infructueuses autant sur le net que sur le forum, je me permet donc de poser mon problème...

Sur certains fichiers et de façon intermitente et pour différents utilisateurs, Excel demande le mot de passe du projet VBA pour fermer le fichier ??? (Voir image de la fenêtre en pièce jointe...)

Le même fichier peut être utilisé par l'utilsateur A sans problème mais l'utilisateur B peut se voir poser la question ? Pour fermer la fenêtre, il faut cliquer plusieurs fois sur Annuler.

Voici le code qui se retrouve dans la majorité des fichiers que je développent :

Code:
Private Sub Workbook_BeforeClose(Cancel As Boolean)
'------------------------------------------------------------------------------------'Traitement du fichier à la fermeture
    Sheets("Menu").Activate
    If ThisWorkbook.ReadOnly = True Then
    ThisWorkbook.Saved = True
    Exit Sub

    Else
    UserFormMessageSaveMAJ.Show
    End If
End Sub

Le UserFormMessageSaveMAJ est simplement un message qui dit à l'utilisateur que le fichier est entrain de se sauvegarder et de se fermer dont voici le code :

Code:
Option Explicit
Dim pausetime, start

Private Sub UserForm_Activate()
'
    pausetime = 0.1
    start = Timer
    Do While Timer < start + pausetime
        DoEvents
    Loop
    ActiveWorkbook.Save
    Me.Hide
    Unload Me
'
End Sub

Private Sub UserForm_QueryClose(Cancel As Integer, CloseMode As Integer)
If CloseMode = vbFormControlMenu Then Cancel = True
End Sub

Est-ce que quelqu'un aurait une petite idée de ce que je pourrais faire pour corriger ce problème ?

Merci à tous pour vos suggestions....

Benoit Lord
 

Pièces jointes

  • Sans titre.JPG
    Sans titre.JPG
    6.1 KB · Affichages: 134
  • Sans titre.JPG
    Sans titre.JPG
    6.1 KB · Affichages: 143
  • Sans titre.JPG
    Sans titre.JPG
    6.1 KB · Affichages: 138

phlaurent55

Nous a quittés en 2020
Repose en paix
Re : VBAProject Mot de passe - demandé à la fermeture

Re,

en voyant ceci:

If ThisWorkbook.ReadOnly = True Then ............

il semblerait que le statut change en cours d'utilisation du fichier
tous les utilisateurs ont-ils les mêmes possibliltés d'utilisation ?
y a-t'il un mot de passe demandé à l'ouverture ?

à+
Philippe
 

blord

XLDnaute Impliqué
Re : VBAProject Mot de passe - demandé à la fermeture

Bonjour Philippe,

Merci de te pencher sur mon problème...

La fermeture du fichier se fait directement soit par le menu Fichier-Fermer ou en cliquant sur la croix de fermeture du fichier ou soit en cliquant sur un bouton "Fermer" qui se trouve dans la feuille "Menu" et dont voici le code :

Code:
Sub FermerBD()
    Sheets("Menu").Activate
    If ThisWorkbook.ReadOnly = True Then
    ThisWorkbook.Saved = True
    ThisWorkbook.Close
    Exit Sub

    Else
    UserFormMessageSaveMAJ.Show
    ThisWorkbook.Close
    End If
End Sub

Il n'y a aucun mot de passe demandé à l'ouverture... et tous les utilisateurs ont excatement les mêmes possibilités... Noter que je n'ai jamais eu ce problème lorsque j'utilise ces fichiers....

Benoit Lord
 
Dernière édition:
G

Guest

Guest
Re : VBAProject Mot de passe - demandé à la fermeture

Bonjour,

Si c'est parceque ton fichier est un peu long à s'enregistrer j'écrirais le code du userform comme ça:
Code:
Private Sub UserForm_Activate()
ThisWorkbook.Save
Do While ThisWorkbook.Saved <> True
    DoEvents
Loop
Unload Me
End Sub
En ayant appeler par UserFormMessageSaveMAJ.Show vbModeLess
Je pense que c'est à cause du timer.

A+
 

blord

XLDnaute Impliqué
Re : VBAProject Mot de passe - demandé à la fermeture

Bonjour Hasco, le Forum,

Merci pour ta piste de solution, je vais tester le fichier mais comme le problème est intermitent, ça va prendre plusieurs ouvertures/fermetures pour tester la solution à long terme...

Benoit Lord
 

Discussions similaires

Statistiques des forums

Discussions
314 663
Messages
2 111 656
Membres
111 250
dernier inscrit
alinber