bonjour,

j'ai une macro disposant d'un panneau d'accueil (en lancement auto) ou j'ai mis une securité sur le clic de la croix :

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
Private Sub UserForm_QueryClose(Cancel As Integer, CloseMode As Integer)
' ****************** Gestion de la croix du 1er userform******************

Dim Mot_De_Passe As String

If CloseMode = 0 Then
    If Panneau_Accueil = True Then
        Me.Hide
        Mot_De_Passe = InputBox("veuillez entrer le mot de passe pour acceder au fichier source", "Acces fichier source")
            If Mot_De_Passe = "toto" Then
                MsgBox "Abandon de la macro - Acces fichier source"
            Else
                MsgBox "Mauvais mot de passe"
                Cancel = True
                Me.Show False
            End If
    End If
End If

End Sub
jusque là ca marche bien. Lorsqu'on veut sortir par la croix, si on entre autre chose que "toto" ou si on clique à blanc sur ok ou annuler, on revient sur le panneau.

Le probleme c'est que via ce panneau j'accede à un 2e userform ou là, j'interdis carrement la sortie par la croix (pour obliger à passer par un bouton retour) via le code suivant :

Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
Private Sub UserForm_QueryClose(Cancel As Integer, CloseMode As Integer)
' ****************** gestion de la croix du 2e userform******************
 
 
If Panneau_Accueil = True Then
    If CloseMode = vbFormControlMenu Then
        MsgBox "Veuillez faire retour et quitter pour sortir"
        Cancel = True
    End If
End If
quand je fais retour, le reviens sur mon panneau d'accueil via le code suivant

Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
Private Sub Retour_Click()
' ****************** bouton retour vers boite accueil ******************
 
 
Me.Hide
Unload Me
Load Boite_Accueil
Boite_Accueil.Show
 
End Sub
et là, patatra !! lorsqu'on clique sur la croix du panneau d'accueil, la demande de mot de passe apparait bien mais n'agit pas comme prevu (on sort de la macro quelque soit la reponse)
Pourtant, j'ai vérifié, on passe bien par le "else" (en rouge) du code de la croix du 1er userform.

Quelqu'un pourrait il m'aider?

merci