Protection VBA

Bonjour

J'ai regardé sur le forum, mais je n'ai pas trouvé de réponse à ma question (ou alors j'ai rien compris...)

On démarre sur une feuille avec 4 boutons.

Boutons 1 à 3 vont sur les feuilles "1"; "2"; "3"

Le bouton 4 va sur la feuille "4"

Je veux que le bouton 4 soit protégé par un mot de passe, et que de fait la feuille 4 ne soit visible QUE par le biais de ce bouton (et donc n'apparaisse pas dans la liste en bas).

Merci par avance pour votre aide.

Bonjour,

place ce code sur la page ThisWorkbook

Private Sub Workbook_Open()
'masquer la feuille à l'ouverture du fichier
Sheets("Feuil4").Visible = xlVeryHidden
End Sub

place ce code sur la page Module 1

Sub MonBouton_Clic()
Dim MonMotdePasse As String, mp As String
MonMotdePasse = "blabla"
mp = Application.InputBox(prompt:="Entrer le mot de passe", Type:=2)
If mp = "Faux" Or mp <> MonMotdePasse Then
    MsgBox "Mot de passe incorrect, recommecer!"
    Exit Sub
Else
    Sheets("Feuil4").Visible = True
End If
End Sub

Merci pour ta reponse.

J'ai essayé, mais ... Ca ne marche pas.

J'ai copié le 1er code sur "ThisWorkbook"

J'ai copié le second code sur "Module 1"

J'ai modifié le nom des feuilles (puisqu'en fait ma feuille ne s'appelle pas Feuill4, mais "Entreprises")

Et là ... rien

J'ai par contre bien sur ma 1ere page (ou j'ai mes 3 boutons) la commande suivante:

Private Sub CommandButton5_Click()

Sheets("Entreprises").Select

End Sub

Faut il que je la conserve ou ça entre en conflit avec les autres codes ?

Apres avoir fait les manips indiquées, lorsque je clique sur le bouton concerné, il m'ouvre ma page "Entreprises" sans demander de mot de passe ...

EDIT: J'ai deja un Module 1, faut il que j'en créé un 2eme ?

re,

essaie comme ça,

Private Sub CommandButton5_Click()
Dim MonMotdePasse As String, mp As String
MonMotdePasse = "blabla"
mp = Application.InputBox(prompt:="Entrer le mot de passe", Type:=2)
If mp = "Faux" Or mp <> MonMotdePasse Then
    MsgBox "Mot de passe incorrect, recommecer!"
    Exit Sub
Else
    Sheets("Feuil4").Visible = True
End If
End Sub

Je suis désolé, mais ca ne fonctionne pas.

J'ai supprimé le module 1 et copié ton code avec le bouton 5.

Lorsque je clique sur le bouton, il m'ouvre bien le module pour entrer le mdp, mais rien ne se passe quand je le valide (par contre il met bien un message d'erreur en cas de mauvais mdp)

Je cherche aussi de mon coté, mais la VBA n'est pas mon fort ...

re,

joint ton fichier ,

Alors je t'aurais bien joint mon fichier, mais je ne veux pas qu'il se balade sur le net. Il est le fruit de pas mal d'heures de travail et je ne voudrais pas qu'un confrère récupère mon boulot (En MP si tu veux)

J'ai testé en fermant et rouvrant le fichier, et là ... En haut j'ai cette f*** bande jaune qui me dit "AVERTISSEMENT DE SÉCURITÉ ....". Si je ne clique pas dessus, aucune des macro ne fonctionne et tous les onglets sont visibles. Si je clique dessus, là mon onglet "Entreprises" disparaît bien et apparaît après la saisie du mot de passe !!!

Pour résumer, ta macro fonctionne et je t'en remercie. Par contre comment virer cet avertissement de sécurité, et pas uniquement sur mon PC. Je vais transmettre ce fichier à mes clients et s'ils ont le même avertissement que moi, ils pourront le contourner de la même façon ...

EDIT: Apres un autre test, en cliquant dessus et en entrant le bon mdp, l'onglet "Entreprises" apparait, mais je ne suis pas dirigé dessus

voici un exemple,

8killerjo-test.xlsm (26.43 Ko)

Comment je peux t'envoyer un MP ?

Rechercher des sujets similaires à "protection vba"