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 :

[VBA-E] protection deprotection feuille


Sujet :

Macros et VBA Excel

  1. #1
    Membre éclairé Avatar de lio62
    Profil pro
    Inscrit en
    Décembre 2006
    Messages
    472
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2006
    Messages : 472
    Par défaut [VBA-E] protection deprotection feuille
    bonjour,

    j'ai un userform avec un togglebutton qui lorsque je l'active me fait apparaitre a l'écran la feuille dotation protégée mais si je veux la déprotéger par outil protection et que je mets le mot de passe il me dit qu'il est erronné
    je suis obligé de rentrer dans la macro et de mettre unprotect au lieu de protect dans le code

    dautre part lorsque je quitte pui reviens dans le fichier il me lance automatiquement un userform et ce userform vient renseigner ma feuille dotation et la c'est le plantage il me dit que la feuille est protégée.
    je pensais qu'avec la 2eme ligne de code (....userinterfaceonly:=True)
    les macros pouvait renseignées les feuilles.? merci
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
      Sheets("DOTATION").Activate
    Worksheets("dotation").protect password = "mp"
     Worksheets("dotation").protect userinterfaceonly:=True

  2. #2
    Inactif  
    Avatar de ouskel'n'or
    Profil pro
    Inscrit en
    Février 2005
    Messages
    12 464
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2005
    Messages : 12 464
    Par défaut
    Une question à la fois : Pour déprotéger par macro, tu n'as pas besoin du mot de passe
    ou
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    Worksheets("NomDeLaFeuille").visible = True
    Worksheets("NomDeLaFeuille").Unprotect
    Worksheets("NomDeLaFeuille").Activate
    ... si tu veux faire "tout ça"

    Pour la seconde question, peux-tu préciser ce que tu veux ?
    A+

  3. #3
    Membre éclairé Avatar de lio62
    Profil pro
    Inscrit en
    Décembre 2006
    Messages
    472
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2006
    Messages : 472
    Par défaut
    C'est la suite de la première la 2eme ligne de code je pensais qu"elle pemettait de proteger la feuille mais en meme temps permettait à une macro de pouvoir intervenir sur cette meme feuille.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
     
    Sheets("dotation").Activate
         'Worksheets("dotation").Unprotect "mp"
          ActiveSheet.Unprotect
         Range("b1") = MATERIEL.ComboBox1
    avec activesheet.Unprotect il me demande le mot de passe et il me dit qu'il est faux pourquoi??????

  4. #4
    Membre éclairé
    Avatar de mortalino
    Inscrit en
    Janvier 2007
    Messages
    72
    Détails du profil
    Informations personnelles :
    Âge : 42

    Informations forums :
    Inscription : Janvier 2007
    Messages : 72
    Par défaut
    Salut,

    et oui, il faut un mot de passe même par macro pour déprotéger une feuille.

    Sinon ce serait trop facile.
    Si quelqu'un protège une feuille, pas par macro mais à la méthode manuelle, s'il suffisait derrière d'une macro sans connaitre le mot de passe, j'en aurai supprimé, des protection... :-)

    @++

  5. #5
    Expert éminent


    Profil pro
    Inscrit en
    Juin 2003
    Messages
    14 008
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2003
    Messages : 14 008
    Par défaut
    juste une chose lio62 .. ton mot de passe c'est bien mp ..?

  6. #6
    Membre éclairé Avatar de lio62
    Profil pro
    Inscrit en
    Décembre 2006
    Messages
    472
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2006
    Messages : 472
    Par défaut
    non c'est un autre mais je n'allais pas le mettre sur le forum, mon mot de passe fait 4 lettres et ca fait des années que je l'utilise.
    'Worksheets("dotation").protect "mp"
    et si je lance cela et que je quitte puis reviens sur mon fichier il me demande le mot de passe pour déprotéger et me dit constamment qu'il est faux.
    pourtant comme je l'ai écrit plus haut
    userinterfaceonly:=True permettait d'écrire par macro sur une feuille protégée par cela et si je déprotège la feuille tout le monde peut tout détruire

  7. #7
    Expert éminent


    Profil pro
    Inscrit en
    Juin 2003
    Messages
    14 008
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2003
    Messages : 14 008
    Par défaut
    qu'elle est ta version d'excel ...? il me semble que l'on à déjà parlé de ce probléme sur ce forum... et qu'aprés la version 2003.. il y avais plusieurs changement sur la gestion des protection/dé-protection feuilles...

    VBA-protection classeur et feuille sous Excel 2003 et 97

  8. #8
    Inactif  
    Avatar de ouskel'n'or
    Profil pro
    Inscrit en
    Février 2005
    Messages
    12 464
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2005
    Messages : 12 464
    Par défaut
    En effet, mortalino, j'ai fait mon test sans enregistrer le fichier. Une fois enregistré, fermé et ré-ouvert, ça passe pu Autant pour moi. Je vous laisse entre vous... mes tests avec Excel 2003 me découragent

  9. #9
    Inactif  
    Avatar de ouskel'n'or
    Profil pro
    Inscrit en
    Février 2005
    Messages
    12 464
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2005
    Messages : 12 464
    Par défaut
    Comme ça m'énervait (j'ai utilisé la protection de feuilles dans un trentaine d'appli) j'ai trouvé une syntaxe qui fonctionne sur Excel 2003, avec les paramètres de protection par défaut d'une feuille de calculs - paramètres inutile de préciser) ça donne ça :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
        Worksheets("Feuil1").Protect ("zizou")
        Worksheets("Feuil1").Unprotect ("zizou")
    Quelque soit le paramètre de protection ajouté, ça "boogue"
    En attendant une version plus mieux complète
    Tu dis
    A+

  10. #10
    Membre éclairé Avatar de lio62
    Profil pro
    Inscrit en
    Décembre 2006
    Messages
    472
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2006
    Messages : 472
    Par défaut
    au boulot c'est 2000 chez moi 2003 mais ca bogue partout comment puis je faire pour protéger cette feuille? a chaque ouverture

  11. #11
    Expert éminent


    Profil pro
    Inscrit en
    Juin 2003
    Messages
    14 008
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2003
    Messages : 14 008
    Par défaut
    bon finalement tu utilise quoi comme code ...? tu est sur que ta feuille n'est pas protégé avant ... l'exécution..? tu as un message d'erreur..?

  12. #12
    Inactif  
    Avatar de ouskel'n'or
    Profil pro
    Inscrit en
    Février 2005
    Messages
    12 464
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2005
    Messages : 12 464
    Par défaut
    Tu devrais essayer ça :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    Sub Workbook_open()
        ActiveWorkbook.RunAutoMacros Which:=xlAutoOpen
    End Sub
     
    Sub Auto_open()
        With Application
            Application.Worksheets("Feuil1").Protect ("zizou")
        End With
    End Sub
    L'avantage est que ça fonctionnera aussi bien sur office 97 que 2003
    A+

    PS - Je viens de tester ça qui fonctionne aussi sur 2003
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    Sub Workbook_open()
        Application.EnableEvents = True
        Application.Worksheets("Feuil1").Protect ("zizou")
    End Sub
    Jète un oeil , à workbook_open, adresse donnée par bbil sur un autre post

  13. #13
    Membre éclairé Avatar de lio62
    Profil pro
    Inscrit en
    Décembre 2006
    Messages
    472
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2006
    Messages : 472
    Par défaut
    bon je viens de tester c pas facile je finis par tout mélanger

    j'ai tout déprotéger c'est la galère

    ne serait il pas possible de protéger juste a l'activation de cette feuille ???

  14. #14
    Inactif  
    Avatar de ouskel'n'or
    Profil pro
    Inscrit en
    Février 2005
    Messages
    12 464
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2005
    Messages : 12 464
    Par défaut
    Si, tu peux faire ça mais avant, où mets-tu le code que je t'ai passé, j'ai l'impression que c'est là que se situe le problème. Tu dois le mettre dans un module standard -> Editeur VB -> Insertion -> Module standard
    Tu ne dois pas le mettre dans "Thisworkbook"

    Maintenant, pour protéger la feuille lors de son activation : Editeur VB -> Deux clics sur le nom de la feuille ouvre la page de code de la feuille
    Tu ignores ou effaces la macro qui s'inscrit par défaut et tu mets celle-ci
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    Private Sub Worksheet_Activate()
        Application.EnableEvents = True
        Application.Worksheets("Feuil1").Protect ("zizou")
    End Sub
    Testé et tout sur 2003

    Mais dis-nous où tu mettais ton code, j'aimerais comprendre tes problèmes avec mon code précédent
    A+

    NB - Attention : Ce code ne fonctionne pas si tu ouvres le classeur sur la feuille à protéger, il ne fonctionne que si tu ouvres sur une autre feuille et que tu sélectionnes la dite feuille

  15. #15
    Membre éclairé Avatar de lio62
    Profil pro
    Inscrit en
    Décembre 2006
    Messages
    472
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2006
    Messages : 472
    Par défaut
    bonjour,
    j'ai eu les pires misères pour repondre ma connexion a suté bon enfin

    je recapitule un peu lorsque j'ouvre mon fichier materiel il arrive sur la page menu et un userform me demande des renseignements et les recopie dans ma feuille dotation. seulement c'est que maintenant il me demande de deprotéger la feuille dotation pour pouvoir y inscrire ces renseignements ce n'est pas ce que je veux, je veux qu'il les inscrive sans me demander quoi que se soit de toute manière m^me si ma feuille est déprotégee a ce moment là ce n'est pas grave ils n'y ont pas accés a ce stade j'ai donc mis dans le code de ma feuille dotation ceci


    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
     
    Private Sub Worksheet_Activate()
        Application.EnableEvents = True
        Application.Worksheets("dotation").Protect ("mp")
    End Sub
    dans l'auto open
     
    Sub auto_open()
    Sheets("menu").Range("a1") = ""
    With Application
           Application.Worksheets("dotation").Protect ("lerb")
      End With
     
    MATERIEL.Show
    End Sub

    mais il me demande toujours de deprotger ma feuille dotation par contre le mot de passe fonctionne comment m'y prendre

    dans le toogle button qui permet d'accéder a la fauille dotation j'ai pour l'instant enlevé toute protection

    pour info ouskel'nor tu avais raison j'avais mis la permière partie dans le this workbook
    en tous cas merci à tous.. on n'est pas loin de la vérité

  16. #16
    Inactif  
    Avatar de ouskel'n'or
    Profil pro
    Inscrit en
    Février 2005
    Messages
    12 464
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2005
    Messages : 12 464
    Par défaut
    Passe ton code au moment où...
    Citation Envoyé par tu
    seulement c'est que maintenant il me demande de deprotéger la feuille dotation pour pouvoir y inscrire ces renseignements ce n'est pas ce que je veux,
    A+

  17. #17
    Membre éclairé Avatar de lio62
    Profil pro
    Inscrit en
    Décembre 2006
    Messages
    472
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2006
    Messages : 472
    Par défaut
    tu veux dire quoi par là ?

  18. #18
    Inactif  
    Avatar de ouskel'n'or
    Profil pro
    Inscrit en
    Février 2005
    Messages
    12 464
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2005
    Messages : 12 464
    Par défaut
    Quel est le code qui provoque la demande de dé-protection de la feuille dotation ?
    A quel moment ? A la suite d'un clic sur un bouton ? D'une quelconque opération ? Laquelle ?
    A+

  19. #19
    Membre éclairé Avatar de lio62
    Profil pro
    Inscrit en
    Décembre 2006
    Messages
    472
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2006
    Messages : 472
    Par défaut
    non c'est parce que les données entrées dans l'userform se recopie dans la feuille dotation qui est protégée

  20. #20
    Inactif  
    Avatar de ouskel'n'or
    Profil pro
    Inscrit en
    Février 2005
    Messages
    12 464
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2005
    Messages : 12 464
    Par défaut
    Citation Envoyé par Tu
    les données entrées dans l'userform se recopie
    Ça, je crois que tout le monde l'a compris. Mais la question est : Quand ? Comment ? Le code ? On complètera Ça plante sur quelle ligne ?
    En espérant être compris...
    A+

+ Répondre à la discussion
Cette discussion est résolue.
Page 1 sur 2 12 DernièreDernière

Discussions similaires

  1. [XL-2010] vba macro protection nouvelle feuille
    Par z9430 dans le forum Macros et VBA Excel
    Réponses: 3
    Dernier message: 23/09/2014, 16h27
  2. [VBA-E] protection feuille excel
    Par MAGUIN dans le forum Macros et VBA Excel
    Réponses: 8
    Dernier message: 08/01/2007, 02h18
  3. [VBA-E] protection de feuilles
    Par gojira dans le forum Macros et VBA Excel
    Réponses: 5
    Dernier message: 22/04/2006, 11h43
  4. [VBA-E]Protection de certaine case d'une feuille Excel
    Par DonKnacki dans le forum Macros et VBA Excel
    Réponses: 3
    Dernier message: 08/03/2006, 10h10
  5. [VBA EXCEL] Protection feuille avec filtre auto
    Par mirumoto dans le forum Macros et VBA Excel
    Réponses: 2
    Dernier message: 16/01/2006, 10h48

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