[Résolu]Même bouton pour afficher et masquer les onglets

toune21

XLDnaute Impliqué
Bonjour à tous,

Je souhaite un seul bouton, sur ma feuille principale, pour :
si je clic une fois = Masque les onglets
si je clic une seconde fois = Affiche les onglets.

ActiveWindow.DisplayWorkbookTabs = Flase
ActiveWindow.DisplayWorkbookTabs = True
ou vice et versa.

Merci beaucoup d'avoir lu ce message.
MM
 
Dernière édition:

Excel-lent

XLDnaute Barbatruc
Re : Même bouton pour afficher et masquer les onglets

Bonjour Toune21,

Voici ci-dessous la solution à ton problème (testé, ça fonctionne) :
VB:
Sub Macro1()
' Macro enregistrée le 15/02/2012 par Excel-lent
   If ActiveWindow.DisplayWorkbookTabs = False Then
            ActiveWindow.DisplayWorkbookTabs = True
            Exit Sub
   End If
   If ActiveWindow.DisplayWorkbookTabs = True Then ActiveWindow.DisplayWorkbookTabs = False

End Sub

Bonne journée
A+
 

toune21

XLDnaute Impliqué
Re : Même bouton pour afficher et masquer les onglets

Re bonjour,

J'ai une petite question. :confused:

Ma feuille principale est protégée et j'ai plein de boutons, je viens de mettre mon bouton Onglet. Tous les boutons sont accèssible à toutes les personnes,
Est-il possible qu'une seule personne puisse se servir du bouton Onglet ?
Si Oui je ferai :)
Si Non Tant pis:(

Merci beaucoup
Cordialement
MM
 

Excel-lent

XLDnaute Barbatruc
Re : Même bouton pour afficher et masquer les onglets

Re-bonjour,

En relisant mon code, je me suis aperçu qu'il peut être raccourci un petit peu plus, sans pour autant le rendre incompréhensible :

Sub Macro1()
' Macro enregistrée le 15/02/2012 par Excel-lent
If ActiveWindow.DisplayWorkbookTabs = False Then
ActiveWindow.DisplayWorkbookTabs = True
Exit Sub
End If
ActiveWindow.DisplayWorkbookTabs = False

End Sub

Ben oui, la seconde condition servait à rien, puisque de toute façon :
-> si c'est la première, il a déjà quitté la macro "Exit Sub"
-> si la première condition n'est pas rempli, c'est forcément la seconde puisque ActiveWindow.DisplayWorkbookTabs ne peut être que "False" ou "True".

MML à dit:
Est-il possible qu'une seule personne puisse se servir du bouton Onglet ?

Dans ce cas, il faudrait que dans tes macro tu inclus une gestion de mot de passe.

-> à l'ouverture de ton fichier excel : demander à l'utilisateur le mot de passe.
-> s'il répond faux, ou pas du tout, il aura un accès "normal", donc il n'aura pas le fameux bouton "onglet".
-> s'il répond juste : lui mettre le bouton "onglet"

Bonne journée
 

toune21

XLDnaute Impliqué
Re : Même bouton pour afficher et masquer les onglets

Re bonjour,

Je vais faire comme tu dis, voila la macro qui ouvre ma feuille menu !

Private Sub Workbook_Open()
Sh1.Activate
Sh1.ScrollArea = "$A$1:$AC$27"
End Sub


encore un petit coup de pouce

Avec un petit message, "veuillez entrer votre mot de passe"
.Unprotect
et la suite
Merci d'avance
 

ROGER2327

XLDnaute Barbatruc
Re : Même bouton pour afficher et masquer les onglets

Bonjour à tous


Re-bonjour,

En relisant mon code, je me suis aperçu qu'il peut être raccourci un petit peu plus, sans pour autant le rendre incompréhensible :

Code:
Sub Macro1()
' Macro enregistrée le 15/02/2012 par Excel-lent
If ActiveWindow.DisplayWorkbookTabs = False Then
ActiveWindow.DisplayWorkbookTabs = True
Exit Sub
End If
ActiveWindow.DisplayWorkbookTabs = False

End Sub

(...)

Et pourquoi pas cela ?
VB:
Sub test()
    ActiveWindow.DisplayWorkbookTabs = Not ActiveWindow.DisplayWorkbookTabs
End Sub


ROGER2327
#5499


Samedi 21 Gueules 139 (Lavement - Vacuation)
26 Pluviôse An CCXX, 4,4303h - guède
2012-W07-3T10:37:58Z
 

Excel-lent

XLDnaute Barbatruc
Re : Même bouton pour afficher et masquer les onglets

Salut Toune21, le fil,

VB:
Private Sub Workbook_Open()
Dim MotDePasse As String

Sheets("Sh1").Activate

Application.ScreenUpdating = False

MotDePasse = InputBox("Si vous êtes administrateur, écrivez votre mot de passe", "Droit d’accès", "mot de passe ?")

If MotDePasse = "toto et tata" Then
    MsgBox "Mot de passe juste : accès administrateur"
    Sheets("Sh1").ScrollArea = "$A$1:$AC$28"
    Exit Sub
End If
       
MsgBox "Accès simple utilisateur"
Sheets("Sh1").ScrollArea = "$A$1:$AC$27"

Application.ScreenUpdating = True

End Sub

Dans le cas où ton bouton est situé sur la ligne 28 et que le mot de passe est : "Toto et tata"

@Roger2327,

Bravissimo!!! Je me disais bien qu'il y avait moyen de faire beaucoup plus court! Mais bizarrement j'aurais plutôt penser à l'utilisation de "IIf", mais là c'est encore plus court! Chapeau bas!

Bonne après midi à tous
 

toune21

XLDnaute Impliqué
Re : Même bouton pour afficher et masquer les onglets

Re Excel-lent,

Bizarre que je rentre le mot de passe il marque "Administrateur" le bouton onglet fonctionne
et si je mets rien il marque "Simple utilisateur" et le bouton onglet fonctionne quand même.
Je vais en Kiné de retour à 16 H
Merci et bon après midi aussi.
Amicalement à tous les deux, et les autres xld...nautes aussi.
MM
 

Excel-lent

XLDnaute Barbatruc
Re : Même bouton pour afficher et masquer les onglets

Salut MM,

Tu dois donc être maintenant très détendu, très zen :) prête à résoudre ce souci?

Car oui, en effet, nous avons un soucis! La zone (ligne 28) est bien accessible qu'aux possesseurs du mot de passe, mais les boutons n'étant pas liés à une ligne précisément, où qu'ils soient, ils sont accessible par tous!

Ci-joint une autre approche, qui fonctionne (testé).

PS 1. : étant donné que c'est toi qui a un souci, l'idéal aurait été que tu fournisse le fichier. Ainsi j'aurais pu me concentrer à 100% sur ton problème, le tester tout de suite, et te répondre plus vite. Autre avantage, pour toi, de faire le fichier exemple, tu auras moins de retouche à faire pour adapter mon code à ton fichier.

PS 2. : du peu que j'ai vu, tu maitrise déjà bien le VBA, donc j'ai mis aucune explication dans le code, mais si tu as besoin d'éclaircissement sur un point, n'hésite pas.


Bonne fin d'après midi
 

Pièces jointes

  • Bouton accessible ou non.xls
    33 KB · Affichages: 109

toune21

XLDnaute Impliqué
Re : Même bouton pour afficher et masquer les onglets

Bonsoir Excel,


J'ai bien lu tes commentaires, je mets un petit bout de fichier, (vraiment petit).
Pour voir ma feuille menu.
Comme je suis en mode avancé pour répondre, je ne me souviens plus de tes questions et je n'ai pas ouvert ton fichier.
Donc j'envoie comme ça.
Je vais charger ton fichier et
A plus.
Marie Madeleine
 

Pièces jointes

  • Onglets.xls
    179 KB · Affichages: 129
  • Onglets.xls
    179 KB · Affichages: 126
  • Onglets.xls
    179 KB · Affichages: 134

Excel-lent

XLDnaute Barbatruc
Re : Même bouton pour afficher et masquer les onglets

Salut MM,

J'ai ouvert ton fichier et inséré le code à l'intérieur. Voici ci-joint ton fichier modifié.

Je t'envoie les explications dans mon prochain message.

A tout à l'heure
 

Pièces jointes

  • Onglets version 2.xls
    172 KB · Affichages: 163

Excel-lent

XLDnaute Barbatruc
Re : Même bouton pour afficher et masquer les onglets

Re,

Etant donné que nous avons découvert que les boutons sont cliquable par tous, que la personne est accès ou non à la zone où se trouve le bouton.

Donc ce code :
Sheets("Sh1").ScrollArea = "$A$1:$AC$28"
utilisé pour les administrateurs

Et celui ci pour le commun des mortels n'est plus nécessaire :

Sheets("Sh1").ScrollArea = "$A$1:$AC$27"

Je l'ai donc supprimé de ton fichier.

Ne sachant pas quel était le bouton dédié aux administrateurs, je l'ai créé de toute pièce. Tu verras, tu ne peux pas le louper lol.

Pour information, avec la solution que nous avons utilisé, nous ne sommes plus obligé de mettre la macro : "vérification des droits d'accès", non pas dans la macro qui se déclenche à l'ouverture du fichier, mais dans celle liés au bouton.

Avantage de la laisser dans la macro Private Sub Workbook_Open(), ainsi si tu as plusieurs boutons dédiés aux administrateurs, cela t'évite de recopier la macro plusieurs fois.

Si tu as plusieurs boutons dédiés aux administrateurs, une astuce sympa qui en jette et fait professionnel créé une "zone de groupe" (cf. ci-joint).

Bonne soirée
 

Pièces jointes

  • Onglets version 3.xls
    173 KB · Affichages: 132
  • Onglets version 3.xls
    173 KB · Affichages: 140
  • Onglets version 3.xls
    173 KB · Affichages: 138

Discussions similaires