Fermer 1 userform sur saisie d'1 mot de passe

Fermé
polimnya - 4 mai 2005 à 11:14
 Nico - 29 mai 2005 à 18:55
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 voir également:

4 réponses

Salut, moi c'est Nico !

Une bonne astuce, car moi aussi je programme & ce n'est pas moi qui utilise les fichiers.

Quand ton UserForm est affiché, appuie simultanément sur "Ctrl" et "Pause".
Ton programme s'arrête par la fenêtre débogage, il te suffit de faire "fin", ton Userform disparait et tu peux accéder aux feuilles de données.

Amuse toi bien !?!
1
c au nivo de ta reponse

avant ton msgbox ecrit reponse =

ensuite

if reponse =vbyes then
code = InputBox(prompt:="Veuillez saisir le code autorisant la fermeture du userform")
If code = "TOTO" Then
Exit Sub
0
merci de ton aide
voici mon nouveau code:

Public Sub UserForm_QueryClose(Cancel As Integer, CloseMode As Integer)
Dim reponse As Integer
Dim code As String
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")
Cancel = True
If reponse = vbNo 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

ca ne marche pas. Un message s'affiche "l'indice n'appartient pas a la selection"...je ne comprends pas
0
en fait quand je relance le prog le message d'erreur n'apparait plus...mais quand je rentre le code TOTO et que je clique sur ok, puis que je retourne pour fermer ma croix je ne peux toujours pas car il me dit "pour quitter le prog cliquer sur le bouton quitter"= mon msgbox...je tourne en rond
0