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 :

Protection du classeur lors de l'ouverture [XL-2007]


Sujet :

Macros et VBA Excel

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre confirmé
    Profil pro
    Inscrit en
    Novembre 2009
    Messages
    104
    Détails du profil
    Informations personnelles :
    Localisation : Canada

    Informations forums :
    Inscription : Novembre 2009
    Messages : 104
    Par défaut Protection du classeur lors de l'ouverture
    Bonsoir le Forum

    Je tatonne sur un problème de sécurité et je n'arrive pas à m'en sortir.

    Dans le module Workbook_open(), j'ai une procédure de reconnaissance d'un mot de passe.

    A l'ouverture du classeur, je veux éviter l'arrêt de la macro par l'utilsation des clefs ESC ou CTRL+BRK

    Mon code est le suivant:

    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
    22
    23
    24
    25
    Private Sub Workbook_Open()
     
    Application.EnableCancelKey = False
        On Error GoTo ErrHandler:
    
    Dim Variable As Integer
    
    Application.EnableCancelKey = xlInterrupt
    Exit Sub
    
    'Ici j'ai un programme qui demande un mot de passe pour ouvrir le premier onglet du classeur
    
    ErrHandler:
        If Err.Number = 18 Then
             MsgBox("Vous avez arrêté l'application")
            Exit Sub    
        Else
            Application.EnableCancelKey = xlInterrupt
            MsgBox ("Le program va arrêter")
             Exit Sub
        End If
    
        Application.EnableCancelKey = True
    
    End Sub
    Lors de l'exécution d'ouverture du classeur ou lorsque je demande le mot de passe si je presse du CTRL+BRK le programme arrête et j'ai accès aux macro ????

  2. #2
    Expert confirmé Avatar de casefayere
    Homme Profil pro
    RETRAITE
    Inscrit en
    Décembre 2006
    Messages
    5 138
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 71
    Localisation : France, Ardennes (Champagne Ardenne)

    Informations professionnelles :
    Activité : RETRAITE
    Secteur : Agroalimentaire - Agriculture

    Informations forums :
    Inscription : Décembre 2006
    Messages : 5 138
    Par défaut
    bonsoir,

    si tu veux interdire l'acces à VBA, protège le aussi.

    Mais ce n'est peu-être pas ça, ton problème
    Cordialement,
    Dom
    _____________________________________________
    Vous êtes nouveau ? pour baliser votre code, cliquer sur cet exemple : Anomaly
    pensez à cliquer sur :resolu: si votre problème l'est
    Par contre, il est désagréable de voir une discussion résolue sans message final du demandeur (satisfaction, désarroi, remerciement, conclusion...)

  3. #3
    Membre confirmé
    Profil pro
    Inscrit en
    Novembre 2009
    Messages
    104
    Détails du profil
    Informations personnelles :
    Localisation : Canada

    Informations forums :
    Inscription : Novembre 2009
    Messages : 104
    Par défaut
    Les macros du classeur sont aussi protégées par un mot de passe.

    La protection que je recherche se situe au niveau de l'utilisation du classeur.

    Même si je place un mot de passe en ouverture du classeur, en utilisant les clefs CTRl+BRK, il est possible d'arrêter la procédure du mot de passe et d'avoir accès au classeur.

  4. #4
    Expert confirmé Avatar de casefayere
    Homme Profil pro
    RETRAITE
    Inscrit en
    Décembre 2006
    Messages
    5 138
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 71
    Localisation : France, Ardennes (Champagne Ardenne)

    Informations professionnelles :
    Activité : RETRAITE
    Secteur : Agroalimentaire - Agriculture

    Informations forums :
    Inscription : Décembre 2006
    Messages : 5 138
    Par défaut
    je te propose d'écrire ce subterfuge dans l'evenement workbook open
    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
    Option Explicit
    Const motdepasse = "1111" 'tu choisiras
    Private Sub Workbook_Open()
    Dim cle As Variant, x As Integer
    x = 0
    While x < 5
       cle = InputBox("veuillez entrer le mot de passe")
       If cle = motdepasse Then
          x = 5
          Else
          x = x + 1
       End If
    Wend
    If cle <> motdepasse Then ActiveWorkbook.Close
    End Sub
    Cordialement,
    Dom
    _____________________________________________
    Vous êtes nouveau ? pour baliser votre code, cliquer sur cet exemple : Anomaly
    pensez à cliquer sur :resolu: si votre problème l'est
    Par contre, il est désagréable de voir une discussion résolue sans message final du demandeur (satisfaction, désarroi, remerciement, conclusion...)

  5. #5
    Membre confirmé
    Profil pro
    Inscrit en
    Novembre 2009
    Messages
    104
    Détails du profil
    Informations personnelles :
    Localisation : Canada

    Informations forums :
    Inscription : Novembre 2009
    Messages : 104
    Par défaut
    Bonjour

    Le problème ne se situe pas au niveau du mot de passe.

    En fait, je contrôle l'introduction au classeur dans le WorkBook_Open() par deux moyens :
    1- en utilisant la fonction Environ("USERNAME") + Environ("DOMAIN") + Environ("LOGONSERVER"). Il y a 3 postes sur un serveur.
    2- J'utilise aussi un mot de passe, mais merci pour le subterfuge c'est bien.

    Cependant, lorsque le classeur est en processus d'ouverture dans Excel ou qu'au moment où le InputBox demande le mot de passe, l'utilisateur peux arrêter la routine dans le WorkBook_Open() en pressant sur CTRL+BRK. Ce qui lui permet d'utiliser le classeur à sa guise.

    J'ai essayé d'utiliser la routine du EnableCancelKey comme montré ci-haut, mais cela ne fonctionne pas.

    Avez-vous une solution?
    Merci pour votre aide.

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Macro bloque lors de l'ouverture classeur
    Par ritrit dans le forum Macros et VBA Excel
    Réponses: 1
    Dernier message: 02/07/2012, 09h42
  2. Réponses: 0
    Dernier message: 03/02/2010, 10h58
  3. [VBA-E]message lors de l'ouverture d'un autre classeur
    Par repié dans le forum Macros et VBA Excel
    Réponses: 4
    Dernier message: 15/02/2006, 15h30
  4. [VB6] Erreur lors de l'ouverture d'un document Word
    Par Marco le Pouillot dans le forum VB 6 et antérieur
    Réponses: 3
    Dernier message: 03/01/2003, 09h30

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