Ceci est une page optimisée pour les mobiles. Cliquez sur ce texte pour afficher la vraie page.

Microsoft 365 Masquer démasquer onglet avec mot de passe

  • Initiateur de la discussion Initiateur de la discussion FCMLE44
  • Date de début Date de début

Boostez vos compétences Excel avec notre communauté !

Rejoignez Excel Downloads, le rendez-vous des passionnés où l'entraide fait la force. Apprenez, échangez, progressez – et tout ça gratuitement ! 👉 Inscrivez-vous maintenant !

FCMLE44

XLDnaute Impliqué
Bonjour

Dans le fichier en pièce jointe, je souhaiterais masquer tous mes onglets via un Ctrl+m par exemple et ensuite les démasquer via un Ctrl+d mais avec mot de passe

Je pensais faire avec un visible dans Thisworkbook mais cela n'a pas l'air de fonctionner

Auriez vous une idée ?
 

Pièces jointes

Solution
@FCMLE44

voici la 2ème version, et j'ai trouvé mieux : au lieu de faire le Job
pour les feuilles 1 à 3 puis 4 et 5, c'est bien plus simple de faire
le Job de 1 à 5 sauf si c'est la 4ème feuille.


VB:
Option Explicit

Private Sub Job(k%)
  Dim i As Byte: Application.ScreenUpdating = 0
  For i = 1 To Worksheets.Count
    If i <> 4 Then Worksheets(i).Visible = k
  Next i
End Sub

Sub Démasquer()
  Dim mdp$
  mdp = InputBox("Veuillez saisir le mot de passe")
  If mdp = "loup" Then Job -1
End Sub

Sub Masquer()
  Job 2
End Sub

attention : je rappelle que cette fois, la feuille "Salariés" est en position 4
et ne doit pas être changée de place, sinon les macros ne feront plus
ce qu'il faut !


soan
Bonjour FCM,

il y a un gros problème dans ton énoncé ! car dans un classeur Excel,
on ne peut pas masquer toutes les feuilles ! la preuve :




solution n° 1 : tu gardes visible "Feuil1" et on masque toutes les autres.

solution n° 2 : tu ajoutes une feuille "Accueil", et on masque
"Feuil1" à "Feuil5".


soan
 
@FCMLE44

ton fichier en retour. 🙂

fais Ctrl m ; puis Ctrl d


VB:
Option Explicit

Private Sub Job(k%)
  Dim i As Byte: Application.ScreenUpdating = 0
  For i = 2 To Worksheets.Count
    Worksheets(i).Visible = k
  Next i
End Sub

Sub Démasquer()
  Job -1
End Sub

Sub Masquer()
  Job 2
End Sub

soan
 

Pièces jointes

pour le mot de passe afin de démasquer, par exemple "loup" :

Code:
Sub Démasquer()
  If mdp = "loup" Then Job -1
End Sub

à toi de choisir ce que tu préfères pour mdp :
exemples : une variable VBA de type string,
ou un nom défini, ou une cellule.


soan
 
Voilà ce que j'ai fait
VB:
Sub Démasquer()
Dim mdp As String
    mdp = InputBox("Veuillez saisir le mot de passe")
  If mdp = "loup" Then Job -1
End Sub

Cela fonctionne

Toutefois, s'agissant d'un fichier exemple, comment puis je modifier le nom de la feuille Accueil par Salariés
 
ce que tu as fait avec InputBox est ok. 👍 pour ta question :

il te suffit de faire un double-clic sur l'onglet où tu vois écrit
"Accueil" ; tu pourras alors taper "Salariés" à la place. 🙂

au niveau d'Excel, pas de l'éditeur VBA ; mais c'est possible
aussi de renommer une feuille dans la fenêtre de projet.


soan
 
c'est préférable, car ça simplifie le code VBA ; mais sinon, c'est pas obligé :
il faut alors balayer toutes les feuilles et faire le Job si le nom de la feuille
est autre que "Salariés". (et ça si la feuille "Salariés" a une position variable,
non connue d'avance)


si la position est fixe, par exemple "Salariés" est toujours la feuille n° 5,
alors on peut faire le Job des feuilles 1 à 4 puis 6 à dernière feuille.


soan
 
@FCMLE44

voici une version où la feuille "Salariés" est la 4ème feuille du classeur ;
essaye les 2 macros Ctrl m et Ctrl d ; si tu déplaces la feuille à un
autre endroit, les macros fonctionneront aussi.

la version suivante sera si la feuille "Salariés" est toujours la 4ème
feuille du classeur, et personne devra la déplacer !


VB:
Option Explicit

Private Sub Job(k%)
  Dim i As Byte: Application.ScreenUpdating = 0
  For i = 1 To Worksheets.Count
    With Worksheets(i)
      If .Name <> "Salariés" Then .Visible = k
    End With
  Next i
End Sub

Sub Démasquer()
  Dim mdp$
  mdp = InputBox("Veuillez saisir le mot de passe")
  If mdp = "loup" Then Job -1
End Sub

Sub Masquer()
  Job 2
End Sub

soan
 

Pièces jointes

Merci
 
- Navigue sans publicité
- Accède à Cléa, notre assistante IA experte Excel... et pas que...
- Profite de fonctionnalités exclusives
Ton soutien permet à Excel Downloads de rester 100% gratuit et de continuer à rassembler les passionnés d'Excel.
Je deviens Supporter XLD

Discussions similaires

Réponses
2
Affichages
530
Réponses
5
Affichages
808
Compte Supprimé 979
C
Les cookies sont requis pour utiliser ce site. Vous devez les accepter pour continuer à utiliser le site. En savoir plus…