fermeture d'un userform sur saisie d'un code

  • Initiateur de la discussion polimnya
  • Date de début
P

polimnya

Guest
Bonjour le forum,
Je souhaite interdire a l'utilisateur de mon prog VBA de fermer les userforms sur lesquels il navigue afin d'éviter qu'il n'ait acces à la base de données...Bref jusque la tout va bien. J'ai rentré les codes suivants :

Public Sub UserForm_QueryClose(Cancel As Integer, CloseMode As Integer)
MsgBox 'Pour quitter le programme veuillez' & Chr(10) & Chr(10) & 'cliquer sur le bouton QUITTER', vbCritical, 'FERMETURE INTERDITE:RISQUE DE PERTE DES DONNEES'
Cancel = True
End Sub

Le problème c'est que desormais je n'ai plus acces moi meme a la base de données. Je voudrais donc programmer un userform qui autorise la fermeture apres avoir saisi un code. Cette fois au lieu de mettre un msg box simple je mets un msgbox vbyesno.
Je veux que si l'on clique sur 'non' alors un imput box se lance du type : InputBox(prompt:='Veuillez saisir le code autorisant la fermeture du userform') et que si le code saisi est bon, je veux pouvoir fermer le userform, sinon non.

J'utilise les codes suivants: (mais bon ca marche pas...)

Public Sub UserForm_QueryClose(Cancel As Integer, CloseMode As Integer)
Dim reponse As Integer
MsgBox 'Pour quitter le programme veuillez' & Chr(10) & Chr(10) & 'cliquer sur le bouton QUITTER', vbYesNo + vbCritical, 'FERMETURE INTERDITE:RISQUE DE PERTE DES DONNEES'
Cancel = True
If reponse = 7 Then
code = InputBox(prompt:='Veuillez saisir le code autorisant la fermeture du userform')
If code = 'TOTO' Then
Exit Sub
End If
End If
End Sub

Aurier vous une solutin a me proposer repondant a mes besoin?
merci de votre aide
 
A

Arnaud

Guest
salut,

sinon moi j'ai adapter un peu ton code.

Code:
Private Sub UserForm_QueryClose(Cancel As Integer, CloseMode As Integer)
Dim reponse As Integer
reponse = MsgBox('Pour quitter le programme veuillez' & Chr(10) & Chr(10) & 'cliquer sur le bouton QUITTER', vbYesNo + vbCritical, 'FERMETURE INTERDITE:RISQUE DE PERTE DES DONNEES')
If reponse = vbNo Then
    Cancel = True
ElseIf reponse = vbYes Then
    code = InputBox(prompt:='Veuillez saisir le code autorisant la fermeture du userform')
    If code = 'TOTO' Then
        Exit Sub
    Else
        MsgBox 'code incorect'
        Cancel = True
    End If
End If
End Sub
 

Discussions similaires

Réponses
2
Affichages
247
Réponses
2
Affichages
294

Statistiques des forums

Discussions
312 440
Messages
2 088 450
Membres
103 853
dernier inscrit
roukhou