Macro : Afficher/dévérouiller et cacher/vérouiller onglet

Bonjour à tous,

Je souhaiterai avoir votre avis sur une macro.

Dans un classeur avec plusieurs onglets, il y en a certains de caché qui sont en plus protégé par un mot de passe.

J'autorise l'affichage d'un onglet en mettant des ' dans le code suivant, puis je déverrouille en mettant le mot de passe (c'est fastidieux) surtout que je fais la manip souvent :

'Private Sub Worksheet_Activate()
'Sheets("Liste complète des PERS DIR").Visible = False
'End Sub

Cet onglet est protégé par un onglet par le code 20097.

Je souhaiterai savoir si vous pouviez m'accompagner pour réaliser une macro afin de pouvoir afficher/déverrouiller la page et cacher/verrouiller la page par exemple avec les touches CTRL+A.

Je mets le fichier en PJ

En vous remerciant par avance pour votre aide apportée à ce sujet.

Bien cordialement.

Christophe.

Bonjour

Ton fichier ne s’ouvre pas et génère une erreur, je pense qu'aucune feuille n'est active ou visible

Ci joint la syntaxe pour déprotéger ou protéger la feuille active

Sub prot()

ActiveSheet.Protect Password:="20097"

End Sub

Sub unprot()

ActiveSheet.Unprotect Password:="20097"

End Sub

Cordialement

FINDRH

Bonsoir FINDRH,

Je viens de refaire le fichier afin qu'il ne génère plus d'erreur.

Comment faire pour ajouter à ta macro prot et unprot ceci pour que visible passe de False a true qui change comme ceci :

prot et false - unprot et true

Private Sub Worksheet_Activate()
Sheets("Liste complète des PERS DIR").Visible = False
End Sub

En fait pour activer l'onglet je mets des ' en face de chaque ligne dans la macro de la feuille et quand j'ai fini, j'enlève les ' et je reverrouille la page.

Merci pour votre coup de pouce,

Cordialement,

Christophe.

Bonjour à tous,

J'ai gratté, je suis arrivé à cela et ca fonctionne :

Sub prot()
Sheets("Liste complète des PERS DIR").Visible = False
Sheets("Liste complète des PERS DIR").Protect Password:="20097"
End Sub

Sub unprot()
Sheets("Liste complète des PERS DIR").Visible = True
Sheets("Liste complète des PERS DIR").Unprotect Password:="20097"
End Sub

Merci encore pour votre aide,

Cordialement.

Christophe.

Re,

Je pense que je me suis emballé, moi qui était tout content ....

Sur le principe ça fonctionne, mais j'arrive quant même après avoir utilisé la macro "prot" a afficher l'onglet manuellement avec la souris bouton droit / afficher.

Je met le fichier en PJ

Bien cordialement.

Bonjour

Content que ça marche.

La feuille est masquée mais la commande Afficher reste naturellement active.

Il faut protéger le CLASSEUR et sa structure pour que l'on ne puisse pas afficher des feuilles masquées.

Ci joint les macros modifiées.....

Un conseil pour le lancement avec Ctrl il vaut mieux utiliser Ctrl + Maj ( Z au lieu de z) pour éviter de tomber sur des raccourcis Windows

Cordialement

FINDRH

Bonjour,

C'est super je viens de tester, par contre j'ai un soucis avec une autre macro, celà génère une erreur dans le code suivant, j'ai " Ws.Visible = xlSheetVisible" qui se colore en jaune :

Sub InjectionGlobal()
Dim Chemin As String, Fichier As String
Dim Ws As Worksheet
Dim NbLg As Long

  'Application.ScreenUpdating = False
  Set Ws = Sheets("Injection")
  Chemin = ThisWorkbook.Path & Application.PathSeparator
  Fichier = "Injection_Globale.xlsx"
  If Dir(Chemin & Fichier) = "" Then
    Ws.Visible = xlSheetVisible
    Ws.Copy
    Ws.Visible = xlSheetHidden
    ActiveSheet.DrawingObjects.Delete
    Application.DisplayAlerts = False
    ActiveWorkbook.SaveAs Chemin & Fichier, FileFormat:=xlOpenXMLWorkbook
    Application.DisplayAlerts = True
    ActiveWorkbook.Close
  Else
    NbLg = Ws.Range("A" & Rows.Count).End(xlUp).Row
    If NbLg > 1 Then
      With Workbooks.Open(Chemin & Fichier)
        Ws.Range("A2:F" & NbLg).Copy .Sheets(1).Range("A" & Rows.Count).End(xlUp).Offset(1, 0)
        .Close savechanges:=True
      End With

    End If
  End If
End Sub

Je pense qu'il faut que je rajouter quelque chose par rapport a la déprotection du classeur.

Cordialement,

Christophe

Ci joint une capture.

Bonjour

Si ton classeur est protégé, insère la "deprotection" du classeur ( Woksheet et non sheet) au début de macro et teste

Si c'est cela, reprotège le classeur à la fin

Cordialement

FINDRH

Bonjour,

C'est parfait tout fonctionne

Merci encore.

Cordialement.

Christophe

Rechercher des sujets similaires à "macro afficher deverouiller cacher verouiller onglet"