Masquer plusieurs feuilles si macros non activés

Fermé
Micmicdu26 - 10 mars 2023 à 06:46
Le Pingou Messages postés 12198 Date d'inscription mercredi 11 août 2004 Statut Contributeur Dernière intervention 21 novembre 2024 - 10 mars 2023 à 07:04

Bonjour,

Bonjour,
Déjà un grand merci de prendre le temps de regarder mon problème.

Je souhaite créer un excel avec les particularités suivantes :

- bloquer des cellules des tableaux des différents feuilles pour qu’elles ne soient plus modifiables pour les jours passés et les 7 prochains jours.
Par exemple, j’ai inséré le code vba dans la page de Mars, il est désormais possible de remplir les cases du tableau uniquement après le 15/03 donc ça à l’air de fonctionner

- à l’ouverture du document avoir à l’affichage uniquement la feuille « blocage » tant que les macros n’ont pas été activés (les autres feuilles doivent être masquées) afin justement que l’équipe ne puisse pas modifier des données entre J et J+7 sans activer les macros
Après l’activation des macros toutes les pages doivent s’afficher.
Je n’arrive pas trouver le code vba à utiliser pour masquer toutes ces feuilles
C’est mon plus gros problème :’(

- nous avons la possibilité d’utiliser excel en ligne et excel en local. Le fichier est hébergé sur un sharepoint donc possible de l’ouvrir en ligne ou en local.
Je me suis rendu compte des comportements suivants :
* si fichier xls = les macros sont désactivés en ligne, si j’ouvre le fichier en local en même temps que le fichier en ligne alors les macros sont toujours désactivés sur le fichier en ligne (feuilles avec les mois cachés) donc comportement OK et conforme à ce que je souhaite

*si fichier xlsm = macros sont désactivés en ligne, si j’ouvre le fichier en local en même temps que le fichier en ligne alors les macros s’activent en ligne, toutes les feuilles apparaissent et l’équipe peut modifier toutes les dates
Est-ce normal pour vous ?
Je pensais donc utiliser un fichier xls

-même si le risque est très faible, je souhaitons pourvoir désactivé le bouton pause pour les macros, actuellement je peux mettre un mot de passe pour le projet vba mais il est possible de mettre pause sans rentrer le mot de passe pour désactivé les macros.
Avez-vous un astuces pour empêcher de stopper les macros

En vous remerciant.


Windows / Firefox 102.0

1 réponse

Le Pingou Messages postés 12198 Date d'inscription mercredi 11 août 2004 Statut Contributeur Dernière intervention 21 novembre 2024 1 450
Modifié le 10 mars 2023 à 07:48

Bonjour,

Pour afficher / masquer les feuilles sauf celle d'accueil:

Sub Masquer()
'Masque toutes les feuilles sauf la feuille Accueil
Dim sh As Worksheet
For Each sh In Worksheets
   If sh.Name <> "Accueil" Then sh.Visible = xlSheetHidden
Next sh
End Sub

Sub Afficher()
'Affiche toutes les feuilles
Dim sh As Worksheet
For Each sh In Worksheets
   sh.Visible = xlSheetVisible
Next sh
End Sub

Une possibilité, utiliser extension xlsm et à l’ouverture du classeur masquer toutes les feuilles sauf l’accueil. Pour activer les macros vous obliger d’utiliser un mot de passe qui peut-être différent pour chaque personnes !


0