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 :

Contrôle préalable et automatique de l'activation des Macros Excel ?


Sujet :

Macros et VBA Excel

  1. #1
    Nouveau Candidat au Club
    Profil pro
    Inscrit en
    Février 2008
    Messages
    3
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Février 2008
    Messages : 3
    Points : 1
    Points
    1
    Par défaut Contrôle préalable et automatique de l'activation des Macros Excel ?
    Bonjour à tous,

    Comme beaucoup d'entre nous, mes fichiers Excel comprennent diverses macros écrites en VBA.

    Je voudrais vérifier, au démarrage de mon fichier excel que le niveau de sécurité du PC utilisé, autorise bien l'acitvation des macros.

    - Si le système autorise bien les macros ---> rien de spécial, le fichier s'ouvre normalement
    - Sinon
    Message: "Les macros ne sont pas actives, je vous invite à revoir le niveau de sécurité. Je vais fermer votre fichier !" et fermeture du fichier en sortie de ce message.


    En fait, il s'agit d'écrire ici un petit code VBA et le placer dans mon fichier, une macro donc !
    MAis si les macros ne sont pas activées ... ce code ne sera jamais lu !??
    Sauf peut-être si on le place dans la partie "ThisWorkbook" ???

    Merci pour votre aide.

    Zorgloub.

  2. #2
    Membre confirmé
    Avatar de Bigalo
    Profil pro
    Inscrit en
    Décembre 2007
    Messages
    445
    Détails du profil
    Informations personnelles :
    Localisation : France, Paris (Île de France)

    Informations forums :
    Inscription : Décembre 2007
    Messages : 445
    Points : 563
    Points
    563
    Par défaut
    Bonjour,

    Très simple, SAUF la fermeture automatique du fichier :

    Par défaut, toutes les feuilles sont masquées sauf 1 avec ton message légèrement adapté : "Les macros ne sont pas actives, je vous invite à fermer votre fichier et revoir le niveau de sécurité."

    Une explication plus détaillée est conseillée, car la majorité des utilisateurs ne sait même pas ce qu'est le niveau de sécurité !

    Dans le Workbook_Open(), on affiche toutes les feuilles sauf celle avec le message.

    Dans le BeforeClose(), on fait l'inverse.
    Michel Gaboly
    Développeur Excel et VBA


    Pas de question technique par MP, je n’y répondrai pas, utilisez le forum - Merci
    Pensez à ajouter le tag

  3. #3
    Nouveau Candidat au Club
    Profil pro
    Inscrit en
    Février 2008
    Messages
    3
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Février 2008
    Messages : 3
    Points : 1
    Points
    1
    Par défaut
    Bonjour,

    Merci pour votre réponse Très rapide et ce procédé effectivement simple mais efficace !

    @+

  4. #4
    Nouveau Candidat au Club
    Profil pro
    Inscrit en
    Février 2008
    Messages
    3
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Février 2008
    Messages : 3
    Points : 1
    Points
    1
    Par défaut
    ... (suite)

    Quelle serait la ligne de commande VBA pour masquer toutes les pages sauf une ?

    @+

  5. #5
    Membre expérimenté Avatar de laetitia
    Profil pro
    Inscrit en
    Décembre 2002
    Messages
    1 281
    Détails du profil
    Informations personnelles :
    Âge : 34
    Localisation : France

    Informations forums :
    Inscription : Décembre 2002
    Messages : 1 281
    Points : 1 512
    Points
    1 512
    Par défaut
    bonjour Capt_Nemo Bigalo le forum

    dans BeforeClose
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    Sub masquer()
        Dim n As Byte, c As Byte
        Application.ScreenUpdating = False
        n = ThisWorkbook.Sheets.Count
        c = 2
        For c = 2 To n
            Sheets(c).Visible = xlSheetVeryHidden
        Next
       End Sub
    dans open
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    Sub demasquer()
        Dim n As Byte, c As Byte
        Application.ScreenUpdating = False
        n = ThisWorkbook.Sheets.Count
        c = 2
        For c = 2 To n
            Sheets(c).Visible = xlSheetVisible
        Next
       End Sub
    en complement de bigalo ne pas oublie de proteger ton projet par un mot de passe dans vba outils puis vbaproject.. puis protection ton code a confirmer

    mais bon meme avec tous ca tu auras pas une protection absolu des cracks existe pour casser tous ca j' ai pas le droit de les nommer enfin!!!suffisant pour des nons bidouilleurs???
    SALUTATIONS

  6. #6
    Membre confirmé
    Avatar de Bigalo
    Profil pro
    Inscrit en
    Décembre 2007
    Messages
    445
    Détails du profil
    Informations personnelles :
    Localisation : France, Paris (Île de France)

    Informations forums :
    Inscription : Décembre 2007
    Messages : 445
    Points : 563
    Points
    563
    Par défaut
    Par hypothèse, la feuille à ne pas masquer est nommée "Info"

    De manière générale, pour un classeur quelconque ; dans un module standard :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
     
    Sub Masque()
    Dim f
    ' ou si le classeur ne contient que des feuilles de calcul, Dim f as Worksheet
        For Each f In ActiveWorkbook.Sheets
            If f.Name <> "Info" Then f.Visible = True
        Next
    End Sub
    Ou dans le ThisWorkbook du classeur concerné :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
     
    Private Sub Workbook_Open()
    Dim f
    ' ou si le classeur ne contient que des feuilles de calcul, Dim f as Worksheet
        For Each f In Me.Sheets
            If f.Name <> "Info" Then f.Visible = False
        Next
    End Sub
    Michel Gaboly
    Développeur Excel et VBA


    Pas de question technique par MP, je n’y répondrai pas, utilisez le forum - Merci
    Pensez à ajouter le tag

  7. #7
    Membre expérimenté Avatar de laetitia
    Profil pro
    Inscrit en
    Décembre 2002
    Messages
    1 281
    Détails du profil
    Informations personnelles :
    Âge : 34
    Localisation : France

    Informations forums :
    Inscription : Décembre 2002
    Messages : 1 281
    Points : 1 512
    Points
    1 512
    Par défaut
    re bigalo .visible=false moins radicale que xlSheetVeryHidden non???
    SALUTATIONS

  8. #8
    Membre confirmé
    Avatar de Bigalo
    Profil pro
    Inscrit en
    Décembre 2007
    Messages
    445
    Détails du profil
    Informations personnelles :
    Localisation : France, Paris (Île de France)

    Informations forums :
    Inscription : Décembre 2007
    Messages : 445
    Points : 563
    Points
    563
    Par défaut
    Bonsoir laetitia,

    Tout à fait, mais on n’a pas particulièrement besoin de quelque chose de radical. Il s’agit juste d’aider les utilisateurs paumés quand les macros ne sont pas accessibles à cause du réglage du niveau de sécurité.
    Michel Gaboly
    Développeur Excel et VBA


    Pas de question technique par MP, je n’y répondrai pas, utilisez le forum - Merci
    Pensez à ajouter le tag

Discussions similaires

  1. [XL-MAC 2011] Activer des macros automatiquement
    Par Gogia dans le forum Macros et VBA Excel
    Réponses: 16
    Dernier message: 20/12/2013, 16h30
  2. Activation des macros sur application avec Runtime
    Par nicolas2603 dans le forum Runtime
    Réponses: 5
    Dernier message: 29/02/2008, 16h41
  3. Activation automatique des macros excels
    Par Rgent dans le forum Excel
    Réponses: 2
    Dernier message: 27/06/2007, 15h54
  4. Tester l'activation des macros
    Par stigma dans le forum Excel
    Réponses: 2
    Dernier message: 11/04/2007, 08h36
  5. Activation des macros sous Excel
    Par Igloobel dans le forum Macros et VBA Excel
    Réponses: 2
    Dernier message: 10/10/2005, 11h44

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