IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Macros et VBA Excel Discussion :

Masquer plusieurs feuilles si macros non activés


Sujet :

Macros et VBA Excel

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Candidat au Club
    Homme Profil pro
    Conseil - Consultant en systèmes d'information
    Inscrit en
    Mars 2023
    Messages
    2
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Drôme (Rhône Alpes)

    Informations professionnelles :
    Activité : Conseil - Consultant en systèmes d'information

    Informations forums :
    Inscription : Mars 2023
    Messages : 2
    Par défaut Masquer plusieurs feuilles si macros non activés
    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.
    Fichiers attachés Fichiers attachés

  2. #2
    Membre Expert
    Profil pro
    Inscrit en
    Juillet 2006
    Messages
    1 524
    Détails du profil
    Informations personnelles :
    Localisation : France, Paris (Île de France)

    Informations forums :
    Inscription : Juillet 2006
    Messages : 1 524
    Par défaut
    Salut,

    Empecher la désactivation des macros ?
    Pas possible, vu que ce sont les réglages des sécurité qui s'en chargent (et cela va des simples paramètres locaux à ton PC, aux GPOs sur les réseaux).

  3. #3
    Membre émérite
    Homme Profil pro
    Retraité
    Inscrit en
    Octobre 2022
    Messages
    685
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 64
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : Retraité

    Informations forums :
    Inscription : Octobre 2022
    Messages : 685
    Par défaut
    Bonjour,

    - à l’ouverture du document avoir à l’affichage uniquement la feuille « blocage » tant que les macros n’ont pas été activés
    Par définition si les macros ne sont pas activées, tu ne vas pas pouvoir faire grand chose à l'ouverture... donc il faut que tu le fasses à la fermeture !

    Lors de l'enregistrement de ton classeur, tu fermes tous les onglets sauf la feuille blocage, et dans une macros workbook_open tu affiches la configuration de travail.

  4. #4
    Membre confirmé
    Homme Profil pro
    Inscrit en
    Octobre 2007
    Messages
    223
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Mali

    Informations forums :
    Inscription : Octobre 2007
    Messages : 223
    Par défaut
    Bonjour

    A la fermeture :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
     
    Private Sub Workbook_BeforeClose(Cancel As Boolean)
     
    Dim F As Worksheet
     For Each F In ThisWorkbook.Worksheets
      With F
       If Not .Name = "Blocage" Then .Visible = 2
      End With
     Next
     
    End Sub

    A l'ouverture :

    A insérer dans ThisWorkbook :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
     
     
    Private Sub Workbook_Open()
    Dim F As Worksheet
     For Each F In ThisWorkbook.Worksheets
      With F
       If Not .Name = "Blocage" Then .Visible = 1
      End With
     Next
    End Sub
    Ensuite affichez les feuilles que vous souhaitez modifier

  5. #5
    Candidat au Club
    Homme Profil pro
    Conseil - Consultant en systèmes d'information
    Inscrit en
    Mars 2023
    Messages
    2
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Drôme (Rhône Alpes)

    Informations professionnelles :
    Activité : Conseil - Consultant en systèmes d'information

    Informations forums :
    Inscription : Mars 2023
    Messages : 2
    Par défaut
    Bonjour,

    Merci pour vos réponses !

    Niagala j ai testé votre code.
    Il fonctionne parfaitement mais le problème est que désormais mon fichier .xls est très long à s'ouvrir, presque 5min alors que j ai uniquement 13 pages de 60 lignes.
    Existe t il un autre code qui fonctionne plus rapidement avec excel 97.
    J'ai trouvé ce style de code mais je n'arrive pas le configurer pour qu'il laisse uniquement la page blocage à l'ouverture et je ne sais pas si ca peut régler les problemes de lenteurs

    Private Sub Workbook_BeforeClose(Cancel As Boolean)
    Application.ScreenUpdating = False
    Sheets(2).Select
    Sheets(1).Visible = 2
    Application.ScreenUpdating = True
    End Sub

    Private Sub Workbook_Open()
    Application.ScreenUpdating = False
    Sheets(1).Visible = -1
    Sheets(1).Select
    Application.ScreenUpdating = True
    End Sub

    J ai testé avec un fichier xlsm et là l'ouverture est presque immédiate mais je reviens à mon problème initial de l'activation des macros sur excel en ligne:

    * 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

    Du coup, je sais pas comment me sortir de cette galère

  6. #6
    Membre confirmé
    Homme Profil pro
    Inscrit en
    Octobre 2007
    Messages
    223
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Mali

    Informations forums :
    Inscription : Octobre 2007
    Messages : 223
    Par défaut
    Citation Envoyé par micmicdu26 Voir le message
    Bonjour,

    J'ai trouvé ce style de code mais je n'arrive pas le configurer pour qu'il laisse uniquement la page blocage à l'ouverture et je ne sais pas si ca peut régler les problemes de lenteurs

    Private Sub Workbook_BeforeClose(Cancel As Boolean)
    Application.ScreenUpdating = False
    Sheets(2).Select
    Sheets(1).Visible = 2
    Application.ScreenUpdating = True
    End Sub
    Bonjour micmicdu26
    Si vous voulez que le code ressemble celui que vous venez de proposer alors :
    A la fermeture et à la fermeture citez les feuilles que vous souhaitez masquer ou afficher

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
     
    Private Sub Workbook_BeforeClose(Cancel As Boolean)
    Application.ScreenUpdating = False
    Sheets(1).Visible = 2
    Sheets(2).Visible = 2
    Sheets(3).Visible = 2
    Sheets(4).Visible = 2
    Sheets(5).Visible = 2
    Sheets(6).Visible = 2
    Sheets(7).Visible = 2
    Sheets(8).Visible = 2
    Sheets(9).Visible = 2
    Sheets(10).Visible = 2
    Sheets(11).Visible = 2
    Sheets(12).Visible = 2
    Sheets(13).Visible = 2
     
    Sheets(14).Visible = -1
     
    Application.ScreenUpdating = True
    End Sub
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
     
    Private Sub Workbook_Open()
     
    Application.ScreenUpdating = False
    Sheets(1).Visible = -1
    Sheets(2).Visible = -1
    Sheets(3).Visible = -1
    Sheets(4).Visible = -1
    Sheets(5).Visible = -1
    Sheets(6).Visible = -1
    Sheets(7).Visible = -1
    Sheets(8).Visible = -1
    Sheets(9).Visible = -1
    Sheets(10).Visible = -1
    Sheets(11).Visible = -1
    Sheets(12).Visible = -1
    Sheets(13).Visible = -1
     
    Application.ScreenUpdating = True
     
    End Sub

Discussions similaires

  1. [XL-2007] Macro non activable dans document chiffré
    Par fiilii2004 dans le forum Excel
    Réponses: 4
    Dernier message: 08/03/2019, 18h18
  2. Macro pour masquer des lignes vides sur plusieurs feuillés.
    Par baloote69 dans le forum Macros et VBA Excel
    Réponses: 12
    Dernier message: 03/11/2015, 11h38
  3. [XL-2003] masquer plusieurs feuilles
    Par olivier-tig dans le forum Macros et VBA Excel
    Réponses: 3
    Dernier message: 26/08/2009, 17h31
  4. [XL-2003] masquer plusieurs feuilles
    Par olivier-tig dans le forum Macros et VBA Excel
    Réponses: 2
    Dernier message: 15/05/2009, 08h15
  5. macros non actives lors du partage classeurs
    Par fafa7777 dans le forum Macros et VBA Excel
    Réponses: 2
    Dernier message: 08/06/2008, 19h35

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo