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 :

Curieux bug sur la protection des feuilles


Sujet :

Macros et VBA Excel

  1. #1
    Candidat au Club
    Profil pro
    Inscrit en
    avril 2011
    Messages
    7
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : avril 2011
    Messages : 7
    Points : 4
    Points
    4
    Par défaut Curieux bug sur la protection des feuilles
    Bonjour à vous tous,

    Je rencontre un problème concernant la protection de mes feuilles.
    Mon fichier est relativement simple, j'ai une macro qui vérifie les données renseignées par l'utilisateur et une autre qui permet d'enregistrer le fichier avec un nom spécifique et d'imprimer des feuilles.
    Les macros fonctionnent bien le problème vient par contre de la protection des feuilles une fois ces manipulations faites :

    Voici le code qui me pose problème :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    Sub Lock_feuille()
    Dim n As Integer
    Dim i As Integer
     
    n = ThisWorkbook.Sheets.Count
    For i = n To 1 Step -1
            Sheets(i).Activate
            ActiveWorkbook.Sheets(i).Protect DrawingObjects:=False, Password:="#FD°x15-140¤"
    Next i
     
    End Sub
    Dans ce code j'ai intégrer "DrawingObjects:= false" pour justement permettre à l'utilisateur de toujours utiliser les cases à cocher du fichier
    Or, mes feuilles ne sont absolument par protégées, je peux par exemple modifier le contenu, supprimer des lignes et des colonnes.

    Par contre, si je supprime "DrawingObjects:= false" de la fonction de protection, cette fois les feuilles sont parfaitement bien protégées, mais l'utilisateur ne peux plus utiliser toutes les cases à cocher des feuilles

    Est-ce que quelqu'un a une idée pour résoudre ce problème ? ou l'a déjà rencontré ?

    Merci d'avance

  2. #2
    Membre émérite Avatar de Zekraoui_Jakani
    Homme Profil pro
    Inscrit en
    novembre 2013
    Messages
    1 472
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Belgique

    Informations forums :
    Inscription : novembre 2013
    Messages : 1 472
    Points : 2 256
    Points
    2 256
    Par défaut
    Décochez la propriété "Locked" de chaque cellule et de chaque objet que l'utiisateur est appelé à manipuler, via "Format Cells" pour les cellules, et "Format Control" pour les objets.

  3. #3
    Responsable
    Office & Excel


    Homme Profil pro
    Formateur et développeur informatique indépendant
    Inscrit en
    novembre 2003
    Messages
    16 850
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 54
    Localisation : Belgique

    Informations professionnelles :
    Activité : Formateur et développeur informatique indépendant
    Secteur : Enseignement

    Informations forums :
    Inscription : novembre 2003
    Messages : 16 850
    Points : 48 449
    Points
    48 449
    Billets dans le blog
    91
    Par défaut
    Salut.

    De mon côté, ça fonctionne très bien avec:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    Sub Test()
      Dim sh As Worksheet
     
      For Each sh In Worksheets
        sh.Protect DrawingObjects:=False, Password:="p"
      Next
    End Sub
    Es-tu certain de tes tests? Cela dit, DrawingObjects:=True n'interdit pas d'utiliser les contrôles de formulaire, mais simplement d'en modifier la structure. Dès lors, il me semblerait plus intéressant de réaliser un simple Protect qui verrouillera également la modification structurelle des contrôles tout en n'empêchant pas de les utiliser.

    Il ne faut donc pas déverrouiller la protection des contrôles, sauf bien sûr si tu souhaites que l'utilisateur puisse les déplacer ou les modifier.
    "Plus les hommes seront éclairés, plus ils seront libres" (Voltaire)
    ---------------
    Mes remarques et critiques sont purement techniques. Ne les prenez jamais pour des attaques personnelles...
    Je mets SYTEMATIQUEMENT un lorsque la réponse ne propose pas un tableau structuré alors que ce dernier devrait être utilisé (par ex en travaillant sur la colonne entière).
    Le VBA ne palliera jamais une mauvaise conception de classeur ou un manque de connaissances des outils natifs d'Excel...
    Ce ne sont pas des bonnes pratiques parce que ce sont les miennes, ce sont les miennes parce que ce sont des bonnes pratiques
    VBA pour Excel? Pensez D'ABORD en EXCEL avant de penser en VBA...
    ---------------

  4. #4
    Candidat au Club
    Profil pro
    Inscrit en
    avril 2011
    Messages
    7
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : avril 2011
    Messages : 7
    Points : 4
    Points
    4
    Par défaut
    Merci pour vos réponses

    Je suis certain de mes tests mais avec l'aide de Zekraoui_Jakani sa solution s'est avérée utile.
    Ce que j'ai fait :
    - Je suis revenu à mon code de base et j'ai donc verrouillé toutes mes feuilles de calcule sans autre paramètre précis.
    - J'ai affecté une zone de modification concernant des cellules qui étaient liées à mes checkbox
    - J'ai enlevé le verrouillage sur ces cellules

    Dans ce cas mon fichier se verrouille bien et l'utilisateur peut modifier les checkbox sans aucun message d'erreur.

    Merci pour votre aide

Discussions similaires

  1. Réponses: 5
    Dernier message: 29/03/2011, 16h05
  2. Protection des feuilles d'un classeur
    Par Mcthief dans le forum Excel
    Réponses: 3
    Dernier message: 31/03/2009, 18h34
  3. Protection des feuilles
    Par lucazzo dans le forum Macros et VBA Excel
    Réponses: 2
    Dernier message: 12/03/2009, 20h41
  4. [Sokoban] Bug sur l'historique des mouvements
    Par HanagatAYU dans le forum Java ME
    Réponses: 2
    Dernier message: 27/01/2009, 10h00
  5. Protection des feuilles excel par mdp
    Par zephirsoul dans le forum Excel
    Réponses: 2
    Dernier message: 27/11/2007, 18h40

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