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

FCMLE44

XLDnaute Impliqué
Supporter XLD
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

  • Test.xlsx
    18.9 KB · Affichages: 26
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

soan

XLDnaute Barbatruc
Inactif
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
 

soan

XLDnaute Barbatruc
Inactif
@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

  • Test.xlsm
    25.2 KB · Affichages: 7

soan

XLDnaute Barbatruc
Inactif
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
 

FCMLE44

XLDnaute Impliqué
Supporter XLD
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
 

soan

XLDnaute Barbatruc
Inactif
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
 

soan

XLDnaute Barbatruc
Inactif
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
 

soan

XLDnaute Barbatruc
Inactif
@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

  • Test v1.xlsm
    26.1 KB · Affichages: 7

FCMLE44

XLDnaute Impliqué
Supporter XLD
Merci
 

Discussions similaires

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