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 :

Comment exécuter une procédure dans une feuille protégée ?


Sujet :

Macros et VBA Excel

  1. #1
    Membre régulier
    Homme Profil pro
    Ingénieur aéronautique
    Inscrit en
    Août 2017
    Messages
    363
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 57
    Localisation : France, Tarn (Midi Pyrénées)

    Informations professionnelles :
    Activité : Ingénieur aéronautique
    Secteur : Aéronautique - Marine - Espace - Armement

    Informations forums :
    Inscription : Août 2017
    Messages : 363
    Points : 79
    Points
    79
    Par défaut Comment exécuter une procédure dans une feuille protégée ?
    Bonjour,

    Ce que je souhaiterais faire : Exécuter une procédure depuis une feuille protégée qui modifie, écrit des valeurs dans cette même feuille.

    Pour ce faire, j'ai positionné en tout début de programme l'instruction :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Worksheets("Feuil1").Protect , UserInterfaceOnly:=True
    Lorsque j'exécute la procédure j'ai le message d'erreur suivant :

    Nom : Capture.JPG
Affichages : 136
Taille : 22,7 Ko

    Que dois-je faire pour que la procédure s'éxécute sans pb et que la feuille "Feuil1" reste toujours protégée pour éviter qu'un opérateur ne modifie intempestivement des données de la feuille ?

    Merci par avance.

    Cdlt.
    Jérôme.

  2. #2
    Expert éminent sénior Avatar de mercatog
    Homme Profil pro
    Inscrit en
    Juillet 2008
    Messages
    9 435
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Autre

    Informations forums :
    Inscription : Juillet 2008
    Messages : 9 435
    Points : 31 877
    Points
    31 877
    Par défaut
    Bonjour

    Sur une nouveau classeur

    Exécute ce code
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    Sub protection()
     
    Worksheets("Feuil1").Protect Password:="toto", userinterfaceonly:=True
    End Sub
    Essaie d'écrire manuellement. Tu ne peux pas

    Exécute ce second code
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    Sub Ecrire()
     
    With Worksheets("Feuil1")
        .Range("A1").Value = Now
        .Range("B12").Value = "Ceci est un test. la macro écrit bien en B12 sans déprotéger la feuille"
    End With
    End Sub
    Il écrit bien. Je n'ai plus besoin de re-protéger une feuille déjà protégée une seule fois par la première sub
    Cordialement.
    J'utilise toujours le point comme séparateur décimal dans mes tests.

  3. #3
    Membre régulier
    Homme Profil pro
    Ingénieur aéronautique
    Inscrit en
    Août 2017
    Messages
    363
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 57
    Localisation : France, Tarn (Midi Pyrénées)

    Informations professionnelles :
    Activité : Ingénieur aéronautique
    Secteur : Aéronautique - Marine - Espace - Armement

    Informations forums :
    Inscription : Août 2017
    Messages : 363
    Points : 79
    Points
    79
    Par défaut
    Je ne comprends pas bien. Dans mon programme j ai bien mis en tout début de code la ligne protégeant la feuille feuil1 et ensuite dans la même procédure je récupère des valeurs d un fichier et les colle dans feuil1. De ce que tu dis je dois d abord exécuter une macro protégeant la feuille et ensuite exécuter une deuxième macro ?? Pourquoi deux macros ? Qque chose m echappe....

    Cdlt.
    Jérôme

  4. #4
    Expert éminent sénior Avatar de mercatog
    Homme Profil pro
    Inscrit en
    Juillet 2008
    Messages
    9 435
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Autre

    Informations forums :
    Inscription : Juillet 2008
    Messages : 9 435
    Points : 31 877
    Points
    31 877
    Par défaut
    Tu ne vas pas fermer la porte déjà fermée.

    C'est à dire, tu protège la feuille une seule fois pour toute (à l'aide de la 1ère procédure). il n'est plus nécessaire de la protéger à chaque fois.

    j ai bien mis en tout début de code la ligne protégeant la feuille feuil1 et ensuite dans la même procédure je récupère
    C'est à dire chaque fois tu protège ta feuille qui est déjà protégée. ça ne sert à rien


    Maintenant je ne vois pas comment la macro ne peut pas écrire dans ta feuille
    Cordialement.
    J'utilise toujours le point comme séparateur décimal dans mes tests.

  5. #5
    Membre régulier
    Homme Profil pro
    Ingénieur aéronautique
    Inscrit en
    Août 2017
    Messages
    363
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 57
    Localisation : France, Tarn (Midi Pyrénées)

    Informations professionnelles :
    Activité : Ingénieur aéronautique
    Secteur : Aéronautique - Marine - Espace - Armement

    Informations forums :
    Inscription : Août 2017
    Messages : 363
    Points : 79
    Points
    79
    Par défaut
    Si je résume :
    1- feuil1 est protégée grâce à la première procédure (pourquoi ne pas la protéger manuellement une bonne fois pour toute ??). Il faudrait que cela se fasse automatiquement dès l ouverture du fichier ?
    2- Dans feuil1 j ai mis un rectangle dans lequel est écrit "update" (lien hypertexte). Ce lien pointe vers ma procédure.
    3- si je clique sur le lien j ai un message d erreur indiquant que ma feuille est protégée et qu en conséquence les valeurs ne peuvent pas être modifiées.
    En quoi la deuxième procédure permet elle d écrire des valeurs dans feuil1 celle ci étant protégée ?
    Bon en même temps je n ai plus les idées très claires....

    Cdlt.

  6. #6
    Expert éminent sénior Avatar de mercatog
    Homme Profil pro
    Inscrit en
    Juillet 2008
    Messages
    9 435
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Autre

    Informations forums :
    Inscription : Juillet 2008
    Messages : 9 435
    Points : 31 877
    Points
    31 877
    Par défaut
    Citation Envoyé par licpegpon Voir le message
    Si je résume :
    1- feuil1 est protégée grâce à la première procédure (pourquoi ne pas la protéger manuellement une bonne fois pour toute ??). Il faudrait que cela se fasse automatiquement dès l ouverture du fichier ?
    Cdlt.
    Manuellement tu n `as pas accès au paramètre userinterfaceonly.

    Avec userinterfaceonly:=true. on ne peux écrire dans la feuille SAUF par code.

    Bon, je laisse la main, beaucoup d’imprécisions pour rien
    Cordialement.
    J'utilise toujours le point comme séparateur décimal dans mes tests.

  7. #7
    Membre régulier
    Homme Profil pro
    Ingénieur aéronautique
    Inscrit en
    Août 2017
    Messages
    363
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 57
    Localisation : France, Tarn (Midi Pyrénées)

    Informations professionnelles :
    Activité : Ingénieur aéronautique
    Secteur : Aéronautique - Marine - Espace - Armement

    Informations forums :
    Inscription : Août 2017
    Messages : 363
    Points : 79
    Points
    79
    Par défaut
    OK. Merci...
    Cdlt

Discussions similaires

  1. [Tableur] Comment rendre actif un bouton dans une feuille protégée ?
    Par débitant dans le forum Bureautique
    Réponses: 2
    Dernier message: 15/04/2018, 22h50
  2. Réponses: 5
    Dernier message: 05/02/2015, 07h36
  3. Réponses: 2
    Dernier message: 20/03/2007, 17h00
  4. Réponses: 1
    Dernier message: 26/07/2006, 11h23
  5. [VBA-E] Afficher lignes masquées dans une feuille protégée
    Par kernel57 dans le forum Macros et VBA Excel
    Réponses: 7
    Dernier message: 12/12/2005, 18h59

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