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 feuille Excel [XL-2003]


Sujet :

Macros et VBA Excel

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre averti
    Homme Profil pro
    Étudiant
    Inscrit en
    Mars 2013
    Messages
    37
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Mars 2013
    Messages : 37
    Par défaut Protection feuille Excel
    Bonjour à tous,

    Je suis actuellement en train de créer un fichier Excel comprenant un tableau qui aura pour finalité d'être rempli par d'autres personnes.
    J'ai donc eu l'idée de vouloir protéger la feuille afin qu'elles ne fassent pas n'importe quoi dessus et je voudrais donc qu'elles passent par l'intermédiaire d'un formulaire que j'ai créé sous VBA pour remplir les lignes du tableau.

    Malheureusement comme la feuille est protégée, lorsque j'essaie de rajouter des informations sur la feuille, j'ai un message d'erreur comme quoi la feuille est justement protégée...
    Existe-il un moyen de passer outre cette protection mais seulement à travers le formulaire ?

    Merci d'avance

  2. #2
    Expert confirmé
    Homme Profil pro
    Inscrit en
    Août 2010
    Messages
    3 453
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Août 2010
    Messages : 3 453
    Par défaut
    Bonjour,

    Tu déprotège juste avant et tu re-protège après :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
     
    With Worksheets("Feuil1")
     
        .Unprotect "MonMotDePasse"
     
        'ici tu rempli tes cellules...
     
        .Protect "MonMotDePasse"
     
    End With
    Hervé.

  3. #3
    Membre averti
    Homme Profil pro
    Étudiant
    Inscrit en
    Mars 2013
    Messages
    37
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Mars 2013
    Messages : 37
    Par défaut
    Bonjour Hervé,

    Merci beaucoup c'étais tout bête !

    Par contre je ne connaissais pas cette syntaxe: est-ce que le With et les .Protect/Unprotect vont toujours ensemble ? Je parle bien sûr des "points" car les fonctions peuvent changer.

    Merci encore

  4. #4
    Expert confirmé
    Homme Profil pro
    Inscrit en
    Août 2010
    Messages
    3 453
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Août 2010
    Messages : 3 453
    Par défaut
    Re,

    With/end With évitent les répétitions. Comme tu travaille sur les cellules de la feuille, à l'intérieur du bloc tu peux faire référence aux propriétés et méthodes de cette dernière comme par exemple :
    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
     
    Dim Fe As Worksheet
     
    Set Fe = Worksheets("Feuil1")
     
    With Fe
     
        .Unprotect "MonMotDePasse"
     
        'dans la cellule sous la dernière cellule utilisée en colonne A de la feuille "Feuil1"
        .Cells(.Rows.Count, 1).End(xlUp).Offset(1, 0).Value = TextBox1.Text
     
        'en B10 de la feuille "Feuil1"
        .Range("B10").Value = TextBox2.Text
     
        'etc...
     
        .Protect "MonMotDePasse"
     
    End With
    En déclarant un objet "Worksheet", la variable te donne ensuite accès à l'intellisense (je ne sais pas pourquoi ça ne fonctionne pas avec "Worksheets("Feuil1")", les caprices du VBE) donc, chaque fois que tu inscris un point, le menu s'affiche rendant plus facile l'écriture du code.
    Portect et Unprotect ne doivent pas forcément aller de pair.

    Hervé.

  5. #5
    Membre averti
    Homme Profil pro
    Étudiant
    Inscrit en
    Mars 2013
    Messages
    37
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Mars 2013
    Messages : 37
    Par défaut
    Merci pour ces informations

  6. #6
    Membre émérite
    Homme Profil pro
    retraité
    Inscrit en
    Mai 2006
    Messages
    542
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Seine et Marne (Île de France)

    Informations professionnelles :
    Activité : retraité

    Informations forums :
    Inscription : Mai 2006
    Messages : 542
    Par défaut
    Bonjour à tous
    Bonjour Silencee, Theze

    Une autre solution :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Worksheets("Feuil1").Protect userinterfaceonly:=True, Password:="mot de passe"
    qui devrait permettre de laisser la protection mais d'autoriser la macro à faire ce qu'elle doit faire.
    Eric

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

Discussions similaires

  1. Vérification protection feuille Excel
    Par lerico dans le forum Macros et VBA Excel
    Réponses: 1
    Dernier message: 03/09/2007, 18h00
  2. Protection Feuille Excel 97
    Par PyMon dans le forum Excel
    Réponses: 2
    Dernier message: 24/07/2007, 08h58
  3. [VBA-E] protection feuille excel
    Par MAGUIN dans le forum Macros et VBA Excel
    Réponses: 8
    Dernier message: 08/01/2007, 02h18
  4. Protection feuille Excel
    Par GD91 dans le forum Macros et VBA Excel
    Réponses: 2
    Dernier message: 05/12/2005, 15h36
  5. Protection feuille excel
    Par Mystro dans le forum Macros et VBA Excel
    Réponses: 3
    Dernier message: 21/11/2005, 15h01

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