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-03] Protection et suppression de plages?


Sujet :

Macros et VBA Excel

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre averti
    Inscrit en
    Mars 2008
    Messages
    23
    Détails du profil
    Informations forums :
    Inscription : Mars 2008
    Messages : 23
    Par défaut [VBA][E-03] Protection et suppression de plages?
    Bonjour la compagnie!

    Voilà ce qui m'amène:

    Je souhaiterai protéger une feuille entière...

    J'ai en ma possession un questionnaire dans une feuille excel contenant une mise en page particulière dans laquelle l'utilisateur va pouvoir remplir différentes cellules (pour répondre aux questions...).

    Afin de conserver la mise en page et le contenu des cellules "questions" de ce questionnaire, j'ai protégé la feuille.
    Cela va sans dire, mais c'est mieux en le précisant: les cellules "réponses", modifiables, sont dans des "plages".

    Ces plages ont été réalisés par: "Outils">"Protection">"Permettre aux utilisateurs de modifier des plages..."

    Jusque là tout baigne...

    Une fois le questionnaire rempli, je le fais valider par l'utilisateur (par un bouton de validation dans la feuille).

    A ce moment précis, j'aimerai que ce questionnaire (par extension, toute la feuille y compris les plages définies au préalable) soit alors protégé et ce afin d'empêcher toute future modification par l'utilisateur moyen (à entendre au sens de: "qui ne sait pas comment faire sauter une protection...").

    Voici ma question:

    Y a t il une méthode ou une fonction VBA qui permet la protection des plages de cellules définies au préalable comme "modifiable" par l'utilisateur?

    J'ai bien pensé à ".locked", mais cette fonction ne me fournit pas la réponse attendue et la fonction ".protect" me semble dépendre des plages définies par mes soins...

    A défaut : Comment supprimer les plages prédéfinies par mes soins par la méthode citée plus haut, mais par VBA cette fois?


    Je suis donc preneur de toutes idées ou solutions faisant avancer mon "schmilblik" ainsi que de tous commentaires et autres demandes de précisions.

    Serviteur,
    Jibicas

  2. #2
    Membre confirmé
    Profil pro
    Inscrit en
    Mai 2008
    Messages
    246
    Détails du profil
    Informations personnelles :
    Âge : 38
    Localisation : France, Rhône (Rhône Alpes)

    Informations forums :
    Inscription : Mai 2008
    Messages : 246
    Par défaut
    J'ai essayer de chercher dans outils/protection, mais je ne trouve pas Permettre aux utilisateurs de modifier des plages....
    C'est excel 2007 ?

  3. #3
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Août 2007
    Messages
    6
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Août 2007
    Messages : 6
    Par défaut
    Salut,

    Pour protéjer une feuille, tu peux utiliser le code suivant.

    - Une procédure pour activer le code

    - Une procédure pour le désactiver

    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
    Sub Protection()
     
        If MsgBox("Voulez vous mettre un mot de passe ?", vbYesNo) = vbYes Then
     
            ThisWorkbook.Worksheets(1).Protect Password:=InputBox("Veuillez entrer votre mot de passe")
     
        End If
     
     
    End Sub
     
     
    Sub Lever_Protection()
     
        If MsgBox("Voulez vous désactiver le mot de passe ?", vbYesNo) = vbYes Then
     
            ThisWorkbook.Worksheets(1).Unprotect Password:=InputBox("Veuillez entrer votre mot de passe")
     
        End If
     
    End Sub

  4. #4
    Membre averti
    Inscrit en
    Mars 2008
    Messages
    23
    Détails du profil
    Informations forums :
    Inscription : Mars 2008
    Messages : 23
    Par défaut
    Hello à vous deux!

    En réponse à ptitepo:

    Mon intitulé me paraissait clair pourtant !?!?
    Je bosse sous Excel 2003.

    Pour info, je t'invite à relire ce que nous a produit M Hubiche, là:
    http://www.developpez.net/forums/sho...rche+%5BVBA%5D...
    Qui aide pas mal à la recherche et à la lecture rapide...


    En réponse à CassiusKey:

    Merci à toi, peut être n'ai je, pour le coup, pas été assez clair sur ce point.
    Ta méthode fonctionne à merveille, c'est celle que j'utilise actuellement. Une de ses limites apparait lorsque tu définis des "plages" modifiables. Excel protégera ta feuille en conservant modifiable ces dites "plages"...logique! Mais les qualités sont parfois des défauts...(adage exaspérant en l'occurence)

    Ce que je cherches en fait, c'est une fonction VBA qui puisse me supprimer ces préférences de "plages" pour rendre cette fois ci toute la feuille non modifiable...une fois le questionnaire rempli bien sûre.

    Merci à vous deux d'avoir tenté de faire avancer ma réflexion, de mon côté, je continue à écumer les forum...

    Jibicas

  5. #5
    Expert confirmé
    Avatar de fring
    Homme Profil pro
    Engineering
    Inscrit en
    Février 2008
    Messages
    3 900
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 62
    Localisation : Belgique

    Informations professionnelles :
    Activité : Engineering

    Informations forums :
    Inscription : Février 2008
    Messages : 3 900
    Par défaut
    Bonjour tlm,

    Une solution éventuelle ci-joint.
    Avant validation, la feuille est modifiable, après elle ne l'est plus malgré que la feuille n'est pas protégée.

    Pièce jointe 31503

  6. #6
    Membre averti
    Inscrit en
    Mars 2008
    Messages
    23
    Détails du profil
    Informations forums :
    Inscription : Mars 2008
    Messages : 23
    Par défaut
    Décidément...

    Plus qu'incontournable, génial ce M Fring!

    Merci de ton aide, je suis entrain d'adapter ton idée.

    Aurais tu aussi en "magasin" la fonction qui permettrait de faire l'inverse?
    De
    s'entend.

    Merci d'avance.

    Jibicas

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

Discussions similaires

  1. [VBA-E] Effacer les valeurs d'une plage de cellules
    Par jfamiens dans le forum Macros et VBA Excel
    Réponses: 10
    Dernier message: 10/06/2006, 11h07
  2. [VBA-W] desactiver protection macro
    Par relpas dans le forum VBA Word
    Réponses: 5
    Dernier message: 08/06/2006, 23h08
  3. [VBA-E] Effacer le contenu d'une plage de cellules
    Par nicobox dans le forum Macros et VBA Excel
    Réponses: 3
    Dernier message: 02/06/2006, 12h20
  4. Réponses: 3
    Dernier message: 13/06/2005, 14h07
  5. [VBA-E] [Excel] Protection d'une plage de cellules
    Par fikou dans le forum Macros et VBA Excel
    Réponses: 3
    Dernier message: 20/11/2002, 11h28

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