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 :

Lancer macro après déprotection [XL-2003]


Sujet :

Macros et VBA Excel

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre confirmé
    Homme Profil pro
    Inscrit en
    Mars 2011
    Messages
    109
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Mars 2011
    Messages : 109
    Par défaut Lancer macro après déprotection
    Bonjour,

    Je possède un fichier Excel avec une feuille protégée par MdP.
    Certains utilisateurs le connaissent afin d'apporter des modifications au fichier.
    Cependant lorsqu'ils le reprotège, certains changent le MdP d'origine.

    Je souhaiterai donc exécuter une macro après la déprotection de la feuille qui bloquerai le menu Outil/Protection. Avec ceci je mettrai une macro pour reproteger la feuille avant fermeture du fichier.
    Cependant :
    1 - Je ne sais pas comment exécuter une macro après déprotection de la feuille.
    2 - Je ne sais pas non plus comment bloquer le fait de réactiver le MdP.

    Merci par avance d'essayer de m'aiguiller.

  2. #2
    Membre Expert Avatar de Godzestla
    Homme Profil pro
    Chercheur de bonheur
    Inscrit en
    Août 2007
    Messages
    2 403
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 60
    Localisation : Belgique

    Informations professionnelles :
    Activité : Chercheur de bonheur
    Secteur : Industrie

    Informations forums :
    Inscription : Août 2007
    Messages : 2 403
    Par défaut
    Bonjour,
    C'est risqué et incertain.
    De plus je ne crois pas qu'il existe un évènement qui te permette de détecter en VBA la Déprotection de la feuille.

    Il est préférable d'essayer d'adapter ta protection pour qu'elle autorise les modifications nécessaires, quitte à ce que certaines modifications soient faites via VBA qui se chargerait de manière invisible de :
    - déprotéger
    - modifier
    - reprotéger

    Pour cela il faudra protéger ton code VBA (ca vaut ce que cela vaut) et SURTOUT, changer le mot de passe de protection de ta feuille.

    mais, j'ignore si c'est possible pour toi et/ou adapté à tes besoins.

  3. #3
    Membre confirmé
    Homme Profil pro
    Inscrit en
    Mars 2011
    Messages
    109
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Mars 2011
    Messages : 109
    Par défaut
    J'ai trouvé pour la question 2. Pour masquer la barre en haut, j'ai mis :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Application.CommandBars("Worksheet Menu Bar").Enabled = False
    Comme ceci l'utilisateur ne peut plus reprotéger la feuille.
    Toujours pas d'info pour la question 1 de mon côté...

    J'ai même trouvé mieux :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    Dim x
    On Error Resume Next
    For x = 1 To Application.CommandBars.Count
    With Application.CommandBars(x)
    .Reset
    .Enabled = False
    End With
    Next x
    C'est exactement ce qu'il me fallait pour cette partie.
    Je cherche toujours pour la 1ière.

    PS : Penser à réactiver le menu à la fin sinon l'utilisateur ne va pas être content à l'ouverture de son prochain fichier Excel

  4. #4
    Membre éprouvé

    Profil pro
    Inscrit en
    Décembre 2007
    Messages
    89
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2007
    Messages : 89
    Par défaut
    Bonjour,

    comme dit plus haut, il faut "bâtir" une petite usine à gaz pour protéger déprotéger via VBA... avec toutes les réserves sur la protection dans excel (très très relative la protection).

    Le principe:

    1) A chaque fermeture du fichier une macro se lance pour (re)protéger le fichier (Autoclose).

    2) Pour l'ouverture, prévoir une feuille (Mot de passe, par exemple), pour laquelle la valeur saisie en A1 (par exemple) lancera une macro de "déprotection" du fichier (la déprotection peut être relative aux zones etc... à modifier)...

    La protection déprotection se faisant de façon invisible par VBA (comme dit dans le post plus haut).

    Il suffira de distribuer "le code" (la valeur à entrer en A1 de la feuille prévue à cet effet).

    3) Pour que cela est une chance de fonctionner, il faudra (autre morceau de l'usine à gaz) obliger l'utilisation des macros.

    4) Et il faudra protéger VBA...

    A+
    D D Du 06

  5. #5
    Membre confirmé
    Homme Profil pro
    Inscrit en
    Mars 2011
    Messages
    109
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Mars 2011
    Messages : 109
    Par défaut
    Je suis effectivement parti là-dessus.
    Un Userform qui demande le mot de passe. Si celui-ci est bon, la protection est enlevée via les macro. S'il est incorrect au bout de 3 essais, le fichier se ferme.
    Le menu principal est désactivé de façon à ce qu'aucun utilisateur ne puisse changer la protection. Celle-ci est réactivée à la fermeture du fichier.

    Je vous tiens au courant si cela fonctionne.

  6. #6
    Membre Expert Avatar de ZebreLoup
    Homme Profil pro
    Ingénieur Financier
    Inscrit en
    Mars 2010
    Messages
    994
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 46
    Localisation : France, Val de Marne (Île de France)

    Informations professionnelles :
    Activité : Ingénieur Financier
    Secteur : Finance

    Informations forums :
    Inscription : Mars 2010
    Messages : 994
    Par défaut
    Pour ma part, je pense qu'il vaudrait mieux que tu protèges ta feuille par un mot de passe que toi seul connait. Et par contre, tu fais une macro qui demande un mot de passe et qui change la propriété Locked des cellules concernées pour les utilisateurs qui feront des modifications.

    Parce que pour ce qui est de cacher le menu, l'utilisateur pourra toujours le réactiver s'il le souhaite.

  7. #7
    Membre confirmé
    Homme Profil pro
    Inscrit en
    Mars 2011
    Messages
    109
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Mars 2011
    Messages : 109
    Par défaut
    J'ai réussi à faire ce que je voulais.
    Merci quand même.

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

Discussions similaires

  1. [OL-2010] lancer une macro APRES reception d'un mail
    Par sharox dans le forum VBA Outlook
    Réponses: 1
    Dernier message: 01/06/2015, 19h53
  2. [XL-2007] Lancer automatiquement une macro aprés l'ouverture d'un classeur .CSV
    Par Junior75002 dans le forum Macros et VBA Excel
    Réponses: 6
    Dernier message: 23/11/2012, 19h27
  3. Lancer macro d'après changement valeur cell
    Par Onurb31 dans le forum Macros et VBA Excel
    Réponses: 8
    Dernier message: 07/04/2011, 08h58
  4. Lancer une macro après un résultat donné par le Solver
    Par bluesun91 dans le forum Macros et VBA Excel
    Réponses: 4
    Dernier message: 12/06/2010, 12h05
  5. [MACRO][WORD] lancer macro word
    Par jcarre dans le forum Documents
    Réponses: 3
    Dernier message: 02/12/2004, 09h01

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