VBA pour mot de passe sous Excel

VBA pour mot de passe sous Excel - VB/VBA/VBS - Programmation

Marsh Posté le 24-11-2005 à 23:08:06    

Tout d'abord bonjour,
voila j'aurais besoin de faire une fonction en VBA pour protéger l'accès à une feuille de mon classeur Excel par un mot de passe. C'est à dire que lorsque l'utilisateur clique sur la feuille, un mot de passe lui est demandé avant qu'il puisse voir cette feuille. Si celui ci est rentré correctement il aura alors accès sinon l'accès lui sera refusé.
Ne connaissant pas du tout le langage VBA je vous remercierai énormément si vous pouviez m'aider à réaliser cette fonction et si cela est possible me dire où la positionner dans Excel.
Merci beaucoup pour votre réponse.

Reply

Marsh Posté le 24-11-2005 à 23:08:06   

Reply

Marsh Posté le 25-11-2005 à 01:13:03    

Please

Reply

Marsh Posté le 25-11-2005 à 05:50:15    

Bonjour,
Si l'utilisateur clique sur la feuille c'est qu'il peut la voir... et la question n'a pas de sens.
Dans ce genre de problème la réflexion doit se faire au niveau de la conception : comment vais-je organiser mon truc pour que l'accès soit réservé.
Les stratégies de protection sont complexes et diverses.
Un niveau élémentaire est de masquer une feuille

Code :
  1. Sub Test(): Sheets(1).Visible = Not Sheets(1).Visible: End Sub


Le processus de mot de passe et d'affichage peut alors être déclanché de manière explicite (bouton), ou de manière invisible (par un évènement que tu es le seul à connaître)
A+


Message édité par galopin01 le 25-11-2005 à 06:07:55
Reply

Marsh Posté le 25-11-2005 à 07:31:33    

Merci galopin mais je pense quand meme que ca doit etre possible avec unr macro en VBA que je pourrai affecter à un bouton par la suite.
Par exemple dans un somaire je met le boutton qui permet le lien vers une autre feuille et lorsque l'on clique dessus il apparait une fentere ou il faut mettre un mot de passe. Si ce mot de passe n'est pas rentré correctement ou pas rentré du tout on reste sur le sommaire. Si celui ci est rentré correctement alors on a accès à la feuille en question.
Voila merci enccore à tous ceux qui pourront m'aider.

Reply

Marsh Posté le 25-11-2005 à 11:09:03    

Please

Reply

Marsh Posté le 25-11-2005 à 11:33:09    

Please

Reply

Marsh Posté le 25-11-2005 à 13:15:24    

Il faut lire les réponses jusqu'au bout et avec attention :
Je t'ai donné une macro qui masque et démasque une feuille à la demande. Il faut que je te fournisse le mot de passe avec ?
Le problème c'est qu'il y a une infinité de manière de masquer et démasquer le mot de passe.  
Et l'ingéniosité des utilisateurs pour essayer de voir ce que tu essayes de cacher est sans limite.
A priori si tu te contentes d'un bouton pour masquer ou démasquer une feuille, c'est que tu ne crains pas trop la curiosité de l'utilisateur.
Dans ce cas, à ton bouton tu peux attacher la macro suivante :

Code :
  1. Sub TestPW()
  2. Dim Message, Title, Default, MyValue
  3. ' Définit le message.
  4. Message = "Entrez un mot de passe"
  5. Title = "Démo de protection simple"    ' Définit le titre.
  6. Default = "*****"
  7. ' Affiche le message, le titre et la valeur par défaut et
  8. ' lance la macro Test si le mot de passe est MyPW
  9. If InputBox(Message, Title, Default) = "MyPW" Then Test
  10. End Sub

(en plus de la Macro (Test) de ce matin)
Ces 2 macros seront donc dans un module Standart
et dans le module de ta feuille d'accueil (qui ne doit pas être Sheets(1)) le code de ton bouton sera :

Code :
  1. Private Sub CommandButton1_Click()
  2. TestPW
  3. End Sub


Ok ?

Reply

Marsh Posté le 25-11-2005 à 17:56:45    

Bon merci quand meme pour ton aide mais bon je vais te le redir encore une fois puisque je vois que tu prends un certain air de supériorité, je ne comprends rien au langage VBA donc quand tu me mets des morceaux en haut et des morceaux en bas je ne sais pas quoi en faire.
Je demande seulement une seule formule qui me permette que lorsque je clique sur un bouton il m'apparaisse une fenetre qui me demande un mot de passe. Si le bon mot de passe est rentré j'ai accés à une feuille spécifique et si je ne rentre pas le bon mot de passe je reste sur la feuille ou il y a le bouton.
Voila, si tu es vraiment si fort je te remercierai de m'aider clairement stp.
Merci à tous ceux qui pourront m'aider,
Bye.

Reply

Marsh Posté le 25-11-2005 à 18:58:51    

bonsoir,
oui, effectivement j'aurais pu m'appliquer à moi-même ce que je te demandais.  
Il m'avait échappé que tu ne connaissais rien au langage VBA.  
Je vais voir a te bricoler quelque chose de simple.
A+


---------------
roger
Reply

Marsh Posté le 25-11-2005 à 19:14:34    

Ok alors j'attends avec impatience ton aide

Reply

Marsh Posté le 25-11-2005 à 19:14:34   

Reply

Marsh Posté le 25-11-2005 à 20:05:12    

Re:
rappel : je l'ai déjà dit, ce que tu demandes est complexe et demande bien plus qu'un niveau débutant. Le premier venu est capable de passer outre cette protection. Néanmoins pour des enfants ou des collègues de bureau qui ne connaissent rien à VBA ça peux suffire.
Je t'ai préparé une macro unique qui fait à peu près la même chose que ce que je proposais ce matin :

Code :
  1. Sub TestPW()
  2. Dim Message$, Titre$, Def$, WS$, PassW$
  3. WS = "Galopin01"
  4. PassW = "blabla"
  5. Message = "Entrez un mot de passe :"
  6. Titre = "Accès réservé"
  7. Def = "*****"
  8. If Sheets(WS).Visible = True Then
  9. Sheets(WS).Visible = False
  10. Else
  11. If InputBox(Message, Titre, Def) = PassW Then _
  12.     Sheets(WS).Visible = Not Sheets(WS).Visible
  13. Sheets(WS).Activate
  14. End If
  15. End Sub

Pour l'installer dans ton classeur, il faut enregistrer une macro : Dans le menu Outils/Macro/Nouvelle Macro le système va te proposer un nom pour cette macro : Si tu n'as jamais touché aux macros ce sera Macro1. Cliquer sur OK.
Tout de suite après, tu fais Outils/Macro/Arrêter l'enregistrement.
Tout de suite après, tu fais Outils/Macro/Macros... Tu sélectionnes Macro1 et tu cliques sur Modifier
Tu vas tomber (entre autre) sur une feuille qui va ressembler peu ou prou a celà :

Code :
  1. Sub Macro1()
  2. '
  3. ' Macro1 Macro
  4. ' Macro enregistrée le 25/11/2005 par terrenso
  5. '
  6. '
  7. End Sub

Par Copier/Coller tu vas remplacer tout ce texte par celui de la macro que je viens de te donner.
Il faudra remplacer (3ème ligne) "Galopin01" par le Nom de la feuille à dissimuler. (entre guillemets)
Il faudra remplacer (4ème ligne) "blabla" par "TonMotDePasse". (entre guillemets)
 
Ceci fait tu peux fermer VBA en cliquant sur la croix de fermeture en haut à droite. Par la suite si tu as besoin d'y revenir tu pourras toujours utiliser Outils/Macro/Macros... Modifier.
 
Il ne reste plus qu'à installer dans ton sommaire le bouton qui te permettra de masquer et démasquer la feuille en question.
 
Bien que ce ne soit pas l'idéal, pour la simplicité, je te recommande d'utiliser un bouton issu de la Barre d'Outils "Formulaire" : Si tu n'as jamais touché à VBA auparavant Excel te proposera d'office de rattacher le bouton à la macro "TestPW"
 
Tu as l'obligation de masquer toi-même la feuille à dissimuler en cliquant sur le bouton sommaire : Si la feuille est visible elle se masque d'office, sinon le mot de passe est requis pour l'affichage.
 
Ok ?


Message édité par galopin01 le 26-11-2005 à 03:59:00

---------------
roger
Reply

Marsh Posté le 25-11-2005 à 21:52:43    

Déjà merci,
alors j'ai fait exactement ce que tu m'as di mais tu ne dois pas avoi bien compris le but que je recherche.
Ce que je voudrais ce n'est pas de masquer ma feuille, en effet voila je vais te dire exactement ce quil me faudrait :
J'ai un sommaire, sur ce sommaire j'ai mis un bouton et je voudrais qu'en cliquant sur ce bouton il m'apparaisse une fenetre qui me demande un mot de passe(jusqu'à la ce que tu m'a proposé est bon mais c'est à partir de là que ca diffère). Si je rentre le mot de passe correct alors ca me rend sur la feuille (par exemple la feuille 1 si c'est celle la que j'ai mis dans la formule). Si le mot de passe est erroné, la fenetre qui me demande le mot de passe se ferme mais je reste sur le Sommaire et on ne se rend donc pas sur la feuille 1.
Voilà j'espere avoir été clair.
Merci encore pour ton aide

Reply

Marsh Posté le 26-11-2005 à 04:10:44    

re:
j'ai modifié la macro précédente pour qu'elle réponde à ton souhait... Bien que je n'aie pas tout compris :  
Si tu mets un mot de passe c'est bien pour empêcher un intrus de voir ta feuille ?
Si tu ne la dissimules pas, le mot de passe ne sert à rien  puisqu'il suffit de cliquer sur l'onglet pour y aller...
J'ai aussi rectifié un oubli qui permettait de masquer la feuille plus facilement en cliquant sur le bouton.
 
Enfin si vraiment tu veux juste une macro qui demande un mot de passe sans aucun masquage la voici...

Code :
  1. Sub TestPW()
  2. Dim Message$, Titre$, Def$, WS$, PassW$
  3. WS = "Galopin01"
  4. PassW = "blabla"
  5. Message = "Entrez un mot de passe :"
  6. Titre = "Accès réservé"
  7. Def = "*****"
  8. If InputBox(Message, Titre, Def) = PassW Then _
  9. Sheets(WS).Activate
  10. End Sub

A+


Message édité par galopin01 le 26-11-2005 à 04:12:30

---------------
roger
Reply

Marsh Posté le 26-11-2005 à 18:08:07    

Tout d'abord merci beaucoup galopin, cette derniere formule que tu m'as donné est exactement ce que je recherchais.
Maintenant je me pose un nouveau probleme, on sait jamais si tu peux encore m'aider :p
Voila j'ai tout enlever (toutes les barres) de Excel mais il reste la barre de menu qui va donc permettre à tout le monde de modifier le VBA ce que je ne veux pas.
C'est pourquoi je te dmeande s'il est possible de cacher cette barre des menus ou alors de limiter son accès.
Merci d'avance pour ta réponse.

Reply

Marsh Posté le 26-11-2005 à 18:48:26    

Bonsoir,
En fait c'est tout un programme...
Cela est possible mais demande une maitrise avancée des techniques de programmation.
De plus le fait d'enlever les barres de menus n'empêche pas d'entrer dans VBA.
Je ne t'ai donné qu'un code rudimentaire et un moyen simple de faire ce que tu voulais, mais pour aller plus loin dans ce sens, il est indispensable d'acquérir d'abord une bonne maîtrise de VBA.
A+


---------------
roger
Reply

Marsh Posté le 26-11-2005 à 20:23:41    

Et est que tu pourrais me conseiller un site assez pédagogique pour l'apprentissage du langage VBA stp

Reply

Marsh Posté le 26-11-2005 à 21:51:25    

bonsoir,
si je ne devais en citer qu'un ce serais celui
il y a aussi excelabo  
Et il y a aussi toute l'aide de VBA : C'est tellement énorme que parfois on se sent un peu perdu, mais tu prendras vite l'habitude d'utiliser la touche [F1] dans VBA.
Un problème de syntaxe, tu ne sais pas à quoi sert un mot dans une macro, tu cliques sur le mot puis [F1] c'est simple et c'est comme ça qu'on apprend le plus.
Et puis il ya aussi les forums. Certains sont plutôt orientés débutants :
Celui ci ou celui
D'autres plus généralistes ici
ou au contraire plus spécialisés comme cet autre
A+


Message édité par galopin01 le 27-11-2005 à 13:04:37

---------------
roger
Reply

Marsh Posté le 26-11-2005 à 21:59:01    

Merci encore pour ton aide

Reply

Marsh Posté le 26-11-2005 à 22:13:40    

A et aussi un dernier truc qui a presque aucun rpapport d'ailleurs lol,
pour écrire tes messages sur le forum tu utilises un logiciel?
Ou alors comment fais tu pour avoir écri en bas : message édité par ...
Merci encore
Bye

Reply

Marsh Posté le 27-11-2005 à 00:26:26    

bonjour,
il y a ce message quand je modifie mes messages, soit que je rajoute quelque chose ou que je les corrige, ce qui est presque toujours le cas...
A+


---------------
roger
Reply

Marsh Posté le 27-11-2005 à 11:55:25    

Et pour les leins hypertextes comment u ls fais, il faut fire comment stp?

Reply

Marsh Posté le 27-11-2005 à 11:55:41    

Décidemment tu m'auras tout apris lol

Reply

Marsh Posté le 27-11-2005 à 13:41:56    

bonjour,
Ceci est l'icône qui permet d'éditer, modifier un message.
http://perso.wanadoo.fr/galopin01/images/editerhw.jpg
 
Quand tu es en mode rédaction (ou édition) du message, cette icône permet d'insérer un lien vers une URL  
http://perso.wanadoo.fr/galopin01/images/urlhw.jpg
Cette syntaxe affiche le lien :
[ url]chemin[/ url]
 
pour masquer le lien la syntaxe est :
[ url=chemin]ici[/ url]
 
Enfin cette autre icône permet d'insérer un lien vers une image :
http://perso.wanadoo.fr/galopin01/images/imghw.jpg
 
Dans l'un et l'autre cas il suffit de coller ton lien, de le sélectionner et de cliquer sur l'icône pour que ton lien soit encadré des bonnes balises.
 
Nota : Dans mes exemples j'ai inséré un espace indésirable avant " url" afin de rendre les balises inactives. Dans la réalité il ne faut pas d'espace.
A+


---------------
roger
Reply

Marsh Posté le 27-11-2005 à 20:50:10    

Merci beaucoup,
à présent je suis au top grace à toi lol
Bonne soirée

Reply

Marsh Posté le    

Reply

Sujets relatifs:

Leave a Replay

Make sure you enter the(*)required information where indicate.HTML code is not allowed