1ère macro oui oui !!!

  • Initiateur de la discussion JC de Lorient
  • Date de début
J

JC de Lorient

Guest
bsr le forum

je viens de me lancer dans ma 1ère macro et bien évidemment elle fonctionne pas !!!!

pourtant elle est toute simple du moins je pensais !!

donc voilà :
j'ouvre mon classeur, la page menu s'affiche ça c ok

ensuite je voudrais mas text box pour le mot de passe

si mot de passe bon on continue sinon on ferme le classeur

voilà mon code :

Private Sub Workbook_Open()

Sheets('Menu').Activate

Dim mdp As String

mdp = InputBox('Mot de passe?', 'Merci d'entrer le mot de passe')
If mdp <> '****' Then Woorkbooks('JOEL.XLS').Close

End Sub


qu'est ce qui bloque ?

merci a vous !

JC
 
J

JC de Lorient

Guest
re le forum ,Dg62

merci dg

en effet ça marche mieux comme ça mé g découvert plusieurs trucs
1 si le projet VBA est verrouillé ça marche pas
2 si sur le textbox je fé annuler, il me demande si je veux enregistrer les modifs et là si je réponds annuler je peux accèder à ma feuille !

surprenant non ?

peut on améliorer ça ?

merci de votre aide

JC
 
J

JC de Lorient

Guest
re tout le monde

j'ai un peu modifié le code

Private Sub Workbook_Open()

Dim mdp As String

mdp = InputBox('Mot de passe?', 'Merci d'entrer le mot de passe')
If mdp = '****' Then Sheets('Menu').Activate Else Workbooks('JOEL.XLS').Close

End Sub

comment éviter la fenetre : voulez vous enregistrer les modifications?

merci bcp
 

pat1545.

XLDnaute Accro
Salut,

il nest pas possible de mettre des '*' dans un mot de passe je pense donc ta comparaison ne peut fonctionner mais d'autres te confirmont surement

Patrick



mdp = InputBox('Mot de passe?', 'Merci d'entrer le mot de passe')
If mdp <> '****' Then Woorkbooks('JOEL.XLS').Close
 

dg62

XLDnaute Barbatruc
re

Code:
Private Sub Workbook_Open() 

Dim mdp As String 

mdp = InputBox('Mot de passe?', 'Merci d'entrer le mot de passe') 
if mdp='' then
msgbox 'Vous n'avez pas saisi le mot de passe'
Exit sub

else
if  mdp = '****' Then Sheets('Menu').Activate 

end if
End Sub
 
J

JC de Lorient

Guest
Bonjour a tous
Merci dg pour ton code g réussi a l'adapter

Private Sub Workbook_Open()

Dim mdp As String

mdp = InputBox('Mot de passe?', 'Merci d'entrer le mot de passe')
If mdp <> '1234' Then
MsgBox 'Au revoir.'
ThisWorkbook.Saved = True
Workbooks('JOEL.xls').Close
Exit Sub
Else
Sheets('Menu').Activate
End If
End Sub

Je voudrais maintenant allez plus loin cad avoir la possibilite de demander le code une deuxième fois du genre : 'code incorrect, 2ème et dernier essai avant fermeture du classeur

que dois je rajouter? et surtout comment ?

merci a vous

JC
 

dg62

XLDnaute Barbatruc
Bonjour JC

Code:
Sub mdp()
Dim essaiMdp, mdp As String
Dim essai As Integer
essai = 1
mdp = '1234'

While essai <= 3

essaiMdp = InputBox('Mot de passe ?')
If essaiMdp = mdp Then
essai = 4
Else
essai = essai + 1
End If
Wend

End Sub
 
J

JC de Lorient

Guest
re le forum, dg62

merci du code
je 'comprends' le fonctionnement

mais mon souci c : Je le mets ou par rapport a mon 1er code?

faut il remplacer le 1er par celui ci?

je patauge grave !! :)

merci bcp

JC
 

dg62

XLDnaute Barbatruc
re

une nouvelle version avec un flag qui indique si le mdp est correct ou pas.

Code:
Sub mdp()
Dim essaiMdp, mdp As String
Dim essai As Integer
essai = 1
mdp = '1234'

While essai <= 3

essaiMdp = InputBox('Mot de passe ?')
If essaiMdp = mdp Then
flag = True
essai = 4
Else
essai = essai + 1
flag = False

End If

Wend

If flag = True Then
Sheets('Menu').Activate
Else
MsgBox 'Au revoir.'
ThisWorkbook.Saved = True
Workbooks('JOEL.xls').Close
End If

End Sub
 
S

selecteur

Guest
Salut tout le monde,

Tout d'abord sachez que je suis novice et par conséquent merci d'être indulgent avec mes remarques et questions.


dg62,

Que penses tu de ce code :


Private Sub Workbook_Open()

Dim mdp As String

mdp = InputBox('Mot de passe?', 'Merci d'entrer le mot de passe')
If mdp <> '1234' Then
mdp = InputBox('Deuxième essai !', 'Merci d'entrer le mot de passe')
If mdp <> '1234' Then
MsgBox 'Au revoir.'
ThisWorkbook.Saved = True
Workbooks('JC de Lorient.xls').Close
Exit Sub
Else
Sheets('JOEL.xls').Activate
End If
End If

End Sub


Merci de tes conseils.



Selecteur.
 
J

JC de Lorient

Guest
Bonjour sélecteur, re le forum

je viens d'essayer ton code

ça marche bien aussi avec quelques modif sur le classeur et la feuille

je ne sé pas si l'un est mieux que l'autre en tous cas ça fonctionne !

Dans les msgbox comment remplacer le microsoft excel ?
g fé plusieurs essai sans aucun résultat

du genre msgbox 'au revoir', ' pas de bol!!'

merci

JC
 

Discussions similaires

Réponses
5
Affichages
1 K

Statistiques des forums

Discussions
313 061
Messages
2 094 928
Membres
106 129
dernier inscrit
Kami_54