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 :

Remettre la protection après une macro "BeforeDoubleClick" [XL-2010]


Sujet :

Macros et VBA Excel

  1. #1
    Membre à l'essai
    Homme Profil pro
    Étudiant
    Inscrit en
    Mai 2014
    Messages
    22
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Mai 2014
    Messages : 22
    Points : 21
    Points
    21
    Par défaut Remettre la protection après une macro "BeforeDoubleClick"
    Bonjour,

    Je cherche à exécuter une macro de type Worksheet_BeforeDoubleClick sur une feuille protégée. Je mets donc une commande pour lever la protection avant exécution puis la remettre après, mais la protection ne se remet pas ! Je précise qu'aucun mot de passe n'accompagne la protection de la feuille.

    Voici mon code :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    Sub Worksheet_BeforeDoubleClick(ByVal Target As Excel.Range, Cancel As Boolean)
     
    Sheets("Le nom de ma feuille").Unprotect
     
    'Mon code
     
    Sheets("Le nom de ma feuille").Protect
     
    End Sub
    Au lancement de la macro, la protection se lève correctement mais elle ne se remet pas à la fin

    J'ai testé le même code sur une autre macro qui s'exécute par bouton mais là la protection se remet en place sans problème, je suppose donc qu'il y'a une manip particulière à faire pour les méthodes en "BeforeDoubleClick" ?

    Merci de votre aide.

  2. #2
    Expert éminent sénior
    Homme Profil pro
    aucune
    Inscrit en
    Septembre 2011
    Messages
    8 208
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : aucune

    Informations forums :
    Inscription : Septembre 2011
    Messages : 8 208
    Points : 14 363
    Points
    14 363
    Par défaut
    Bonjour,

    Ajoute :

    en ligne 2 pour sortir du mode édition.

  3. #3
    Rédacteur
    Avatar de Philippe Tulliez
    Homme Profil pro
    Formateur, développeur et consultant Excel, Access, Word et VBA
    Inscrit en
    Janvier 2010
    Messages
    12 977
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Belgique

    Informations professionnelles :
    Activité : Formateur, développeur et consultant Excel, Access, Word et VBA

    Informations forums :
    Inscription : Janvier 2010
    Messages : 12 977
    Points : 29 012
    Points
    29 012
    Billets dans le blog
    53
    Par défaut
    Bonjour,
    Je suppose que le code doit s'exécuter dans la feuille où tu fais le double click donc le nom de la feuille ne doit pas être précisé.
    Il y a donc lieu d'utiliser le mot clé Me et de plus le double clic permettant d'éditer la cellule, il faut donner la valeur True à l'argument Cancel pour empêcher l'édition.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    Sub Worksheet_BeforeDoubleClick(ByVal Target As Excel.Range, Cancel As Boolean)
     Cancel = False
     Me.Unprotect
     ' Code
     Me.Protect
     Cancel = True
    End Sub

  4. #4
    Membre à l'essai
    Homme Profil pro
    Étudiant
    Inscrit en
    Mai 2014
    Messages
    22
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Mai 2014
    Messages : 22
    Points : 21
    Points
    21
    Par défaut
    Merci pour vos réponses.

    Je ne connaissais pas la syntaxe "Me", merci pour l'astuce

    En fait je ne veux pas empêcher l'édition, je détaille un peu plus :

    Certaines cellules de ma feuille ne sont pas verrouillées, je veux pouvoir y apporter des modifications lorsque je double-clique dessus.


    En écrivant ces lignes, je réalise qu'il y'avait une commande "Exit Sub" sous condition en plein milieu de ma macro, donc le code n'était pas exécuté jusqu'au bout et la protection ne risquait pas de revenir...

    Je corrige mon code et je pointerai le sujet comme résolu si ça fonctionne.

    Edit :

    C'est bon ça fonctionne, merci à vous deux.

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

Discussions similaires

  1. [WD-2010] Impossible de choisir le type de protection via une macro VBA
    Par santadrix dans le forum VBA Word
    Réponses: 14
    Dernier message: 30/03/2012, 16h39
  2. ctrl-z apres une macro c'est possible ?
    Par gronaze dans le forum Macros et VBA Excel
    Réponses: 3
    Dernier message: 12/12/2008, 19h03
  3. protection d'une macro
    Par stef44 dans le forum Macros et VBA Excel
    Réponses: 2
    Dernier message: 05/06/2008, 18h46

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