[VBA]masquer et demasquer feuil

Signaler
Messages postés
3
Date d'inscription
jeudi 6 janvier 2011
Statut
Membre
Dernière intervention
25 mai 2012
-
Messages postés
18038
Date d'inscription
lundi 7 décembre 2009
Statut
Modérateur
Dernière intervention
11 avril 2018
-
bonjours a tous et toutes

voila j'ai trouver un post similaire avec un code comme celui ci de mortalino


Sub WordPass()
Dim WP As String

WP = InputBox("Saisir le mt de passe")

If WP <> "ton mot de passe" Then ' met ici ton mot de passe
MsgBox "Mot de passe eronné": Exit Sub
Else
' pense à remplacer le nom de la feuille :
If Sheets("Feuil2").Visible = True Then
Sheets("Feuil2").Visible = False
Else
Sheets("Feuil2").Visible = True
End If
End If
End Sub

mais j'aimerais savoir comment fair pour pas que l'on voie le mot de passe que je tape
dans la boite de dial

merci davance a bientôt

5 réponses

Messages postés
18038
Date d'inscription
lundi 7 décembre 2009
Statut
Modérateur
Dernière intervention
11 avril 2018
234
Bonjour,

pour faire ce que tu veux faire :
1) on s'arrange pour ne pas ouvrir dans :
Forum > VB.NET et VB 2005

(la présente section), une discussion manifestement relative à VBA/Excel (elle aurait dû être ouverte dans "Langages dérivés > VBA". Merci d'y veiller dorénavant, car VBA et VB.Nert n'ont RIEN en commun.
2) une inputbox ne peut nativement faire ce que tu veux, mais rien ne t'empêche de la remplacer tout bêtement par un UserForm avec une TextBox (qui, elle, possède une propriété ad hoc)

________________________
Réponse exacte ? => "REPONSE ACCEPTEE" pour faciliter les recherches.
Pas d'aide en ligne installée ? => ne comptez pas sur moi pour simplement vous dire ce qu'elle contient. Je n'interviendrai qu'en cas de nécessité de développ
Messages postés
18038
Date d'inscription
lundi 7 décembre 2009
Statut
Modérateur
Dernière intervention
11 avril 2018
234
Je trouve par ailleurs assez curieuse la philosophie de ton mécanisme, qui demande systématiquement un mot de passe dans tous les cas de figure, alors que ce mot de passe ne devrait être demandé que pour montrer, pas pour masquer !
Le revoilà donc, transformé (où toto est le mot de passe):
 If Sheets("Feuil2").Visible = True Then
   Sheets("Feuil2").Visible = False
 Else
   Dim WP As String
   WP = InputBox("Saisir le mot de passe")
   If WP <> "toto" Then
     MsgBox "Mot de passe eronné": Exit Sub
   Else
     Sheets("Feuil2").Visible = True
   End If
 End If

Ce mécanisme est le même, avec une textbox dans un userform, bien sûr.


________________________
Réponse exacte ? => "REPONSE ACCEPTEE" pour faciliter les recherches.
Pas d'aide en ligne installée ? => ne comptez pas sur moi pour simplement vous dire ce qu'elle contient. Je n'interviendrai qu'en cas de nécessité de développ
Messages postés
3
Date d'inscription
jeudi 6 janvier 2011
Statut
Membre
Dernière intervention
25 mai 2012

merci beaucoup ucfontu sa marche super c cool
et desolé pour l'erreur de post mais je suis un petit nouveau pas encore abitué
mais je vais essayer de faire un effort

merci encore de ton aide

a bientôt
Messages postés
18038
Date d'inscription
lundi 7 décembre 2009
Statut
Modérateur
Dernière intervention
11 avril 2018
234
clique alors sur le tag "réponse acceptée" et libère ainsi ce sujet, s'il te plait.


________________________
Réponse exacte ? => "REPONSE ACCEPTEE" pour faciliter les recherches.
Pas d'aide en ligne installée ? => ne comptez pas sur moi pour simplement vous dire ce qu'elle contient. Je n'interviendrai qu'en cas de nécessité de développ
Messages postés
18038
Date d'inscription
lundi 7 décembre 2009
Statut
Modérateur
Dernière intervention
11 avril 2018
234
Ah oui === >> tu veux masquer ===>>
ta macro :
 If Sheets("Feuil2").Visible False Then UserForm1.Show Else Sheets("Feuil2").Visible False

+ un userform avec une textbox et un bouton de commande et ce code :
Private Sub CommandButton1_Click()
  If TextBox1.Text = "toto" Then
    Sheets("Feuil2").Visible = True
  Else
    MsgBox "mot de passe erronné"
  End If
  Unload Me
End Sub

Private Sub TextBox1_Change()
  If TextBox1.Text <> "" Then CommandButton1.Visible True Else CommandButton1.Visible False
End Sub

Private Sub UserForm_Initialize()
  'tout le code qui suit peut être remplacé en mode création, sans aucun code.
  ' n'est là que pour te "montrer"
  With Me
    .StartUpPosition = 2
    .Width = 300
    .Height = 200
    .Caption = "donnez votre mot de passe, s'il vous plait"
  End With
  With TextBox1
    .Width = 200
    .Height = 30
    .Move (Me.Width - TextBox1.Width) / 2, (Me.Height - TextBox1.Height) / 4
    .PasswordChar = "*"
  End With
  With CommandButton1
    .Move TextBox1.Left, TextBox1.Top + TextBox1.Height + TextBox1.Height, TextBox1.Width, 30
    .Caption = "validez votre mot de passe"
    .Visible = False
  End With
End Sub


voilà !
________________________
Réponse exacte ? => "REPONSE ACCEPTEE" pour faciliter les recherches.
Pas d'aide en ligne installée ? => ne comptez pas sur moi pour simplement vous dire ce qu'elle contient. Je n'interviendrai qu'en cas de nécessité de développ