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 de feuille inefficace


Sujet :

Macros et VBA Excel

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre éclairé
    Homme Profil pro
    Développeur COBOL
    Inscrit en
    Janvier 2003
    Messages
    339
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 44
    Localisation : France, Loire Atlantique (Pays de la Loire)

    Informations professionnelles :
    Activité : Développeur COBOL
    Secteur : Finance

    Informations forums :
    Inscription : Janvier 2003
    Messages : 339
    Par défaut Protection de feuille inefficace
    Bonjour,

    j'utilise le code suivant :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
     
     With ActiveSheet
            .EnableSelection = xlUnlockedCells
            .Protect Contents:=True, UserInterfaceOnly:=True, Password:="mdp"
        End With
    Ensuite, la feuille est envoyée par mail.

    Lorsque je regarde le résultat, la feuille est bien protégé avec le mot de passe, mais toutes les cellules sont cliquable (autant celle locké par defaut que celle lockée par la macro avant la protection)

    Avez vous une idée pour ne pas pouvoir cliquer sur les cellules lockés ? car quand je regarde la protection, je vois que l'option "selection des cellules verouillées" est cochée !

    Merci pour votre aide

  2. #2
    Expert confirmé Avatar de jfontaine
    Homme Profil pro
    Contrôleur de Gestion
    Inscrit en
    Juin 2006
    Messages
    4 756
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 51
    Localisation : France, Sarthe (Pays de la Loire)

    Informations professionnelles :
    Activité : Contrôleur de Gestion

    Informations forums :
    Inscription : Juin 2006
    Messages : 4 756
    Par défaut
    petite question

    As tu mis le code pour sauvegarder ton classeur après le code de protection?

  3. #3
    Membre éclairé
    Homme Profil pro
    Développeur COBOL
    Inscrit en
    Janvier 2003
    Messages
    339
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 44
    Localisation : France, Loire Atlantique (Pays de la Loire)

    Informations professionnelles :
    Activité : Développeur COBOL
    Secteur : Finance

    Informations forums :
    Inscription : Janvier 2003
    Messages : 339
    Par défaut
    Oui voici la séquence complète :

    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
    26
        ActiveWorkbook.SaveCopyAs ("planning.xls")
        Application.Workbooks.Open ("planning.xls")
        nom_fichier = ActiveWorkbook.FullName
     
            For Each s In ActiveSheet.Shapes
                s.Delete
            Next
     
        ActiveSheet.Unprotect Password:="mdp"
        ActiveSheet.Range("E4").Copy
        ActiveSheet.Range("E4").PasteSpecial xlValues
     
        ActiveSheet.Range("C10:C45").Copy
        ActiveSheet.Range("C10:C45").PasteSpecial xlValues
        ActiveSheet.Range("C10:C45").Locked = True
     
        ActiveSheet.Range("F1:O1").Validation.Delete
        ActiveSheet.Range("F1:O1").Locked = True
     
        With ActiveSheet
            .EnableSelection = xlUnlockedCells
            .Protect AllowFormattingCells:=True, Password:="mdp"
        End With
        ActiveSheet.Range("D10").Select
        Application.Workbooks("planning.xls").Save
        Application.Workbooks("planning.xls").Close

  4. #4
    Membre chevronné

    Profil pro
    Inscrit en
    Octobre 2004
    Messages
    453
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2004
    Messages : 453
    Par défaut
    Bizarrrrre!

    As-tu essayé de ne préciser que le mot de passe dans ton appel à Protect?

    Quelle version Excel?

  5. #5
    Membre éclairé
    Homme Profil pro
    Développeur COBOL
    Inscrit en
    Janvier 2003
    Messages
    339
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 44
    Localisation : France, Loire Atlantique (Pays de la Loire)

    Informations professionnelles :
    Activité : Développeur COBOL
    Secteur : Finance

    Informations forums :
    Inscription : Janvier 2003
    Messages : 339
    Par défaut
    Oui et cela est pareil :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
        With ActiveSheet
            .EnableSelection = xlUnlockedCells
            .Protect Password:="mdp",AllowFormatingCells = True
        End With
    J'utilise Excel 2003

    Le probleme est que dans le fichier dupliqué, il ne tient pas compte de la propriété "xlUnlockedCells" car le fichier copié est bien protégé avec le format des cellules possible mais l'option COCHER LES CASES VEROUILLEES est quand mêle cochée malgré le code ci dessus !

  6. #6
    Membre chevronné

    Profil pro
    Inscrit en
    Octobre 2004
    Messages
    453
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2004
    Messages : 453
    Par défaut
    J'ai 2002 alors je ne peux pas savoir si c'est un bug de 2003.
    Cependant, tu pourrais contourner le problème en écrivant un code dans Workbook_Open du module ThisWorkbook pour protéger la feuille lors de l'ouverture du fichier...

  7. #7
    Membre éclairé
    Homme Profil pro
    Développeur COBOL
    Inscrit en
    Janvier 2003
    Messages
    339
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 44
    Localisation : France, Loire Atlantique (Pays de la Loire)

    Informations professionnelles :
    Activité : Développeur COBOL
    Secteur : Finance

    Informations forums :
    Inscription : Janvier 2003
    Messages : 339
    Par défaut
    C'est impossible car le fichier n'existe pas, c'est un saveascopy de la feuille active que je souhaite protéger ... et c'est cette copy qui ne se protege pas

    La feuille principale, elle, est déjà protégé

  8. #8
    Membre éclairé
    Homme Profil pro
    Développeur COBOL
    Inscrit en
    Janvier 2003
    Messages
    339
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 44
    Localisation : France, Loire Atlantique (Pays de la Loire)

    Informations professionnelles :
    Activité : Développeur COBOL
    Secteur : Finance

    Informations forums :
    Inscription : Janvier 2003
    Messages : 339
    Par défaut
    J'ai trouvé une doc qui explique ceci :

    -B-19 - EnableSelection
    Permet de spécifier et vérifier si les cellules peuvent être sélectionnées dans une feuille protégée.
    La propriété peut prendre une des trois constantes suivantes:
    * xlNoSelection (-4142) : Empêche toute sélection dans la feuille.
    * xlNoRestrictions (0 Valeur par défaut) : Permet de sélectionner n'importe quelle cellule.
    * xlUnlockedCells (1) : Permet de sélectionner uniquement les cellules déverrouillées.
    La propriété peut être modifiée par macro pendant que la feuille est protégée, uniquement si l'argument
    userInterfaceOnly a été spécifié lors de la mise en place de la protection (Voir aussi le chapitre II-A-21).
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
     
    'Définit le type de sélection autorisé avant de protéger la feuille:
    'Permet de sélectionner uniquement les cellules déverrouillées.
    Worksheets("Feuil1").EnableSelection = xlUnlockedCells
    'Protège la feuille
    Worksheets("Feuil1").Protect UserInterfaceOnly:=True
    'Nota:
    'La valeur de la propriété peut être modifiée après la mise en place
    'de la protection.
    et ca marche, il fallai t le savoir !!

    Merci pour votre aide

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

Discussions similaires

  1. protection de feuille
    Par Tiresia dans le forum Macros et VBA Excel
    Réponses: 3
    Dernier message: 15/06/2007, 14h54
  2. [VBA-E] protection deprotection feuille
    Par lio62 dans le forum Macros et VBA Excel
    Réponses: 21
    Dernier message: 22/01/2007, 10h34
  3. Réponses: 2
    Dernier message: 21/01/2007, 20h09
  4. [VBA-E] protection de feuilles
    Par gojira dans le forum Macros et VBA Excel
    Réponses: 5
    Dernier message: 22/04/2006, 11h43
  5. Protection de feuille excel
    Par tarmin dans le forum Excel
    Réponses: 2
    Dernier message: 21/02/2006, 14h30

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