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 :

fonction protecttion et déprotection feuille [XL-2007]


Sujet :

Macros et VBA Excel

  1. #1
    Membre éprouvé
    Profil pro
    Étudiant
    Inscrit en
    Juin 2012
    Messages
    129
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Juin 2012
    Messages : 129
    Par défaut fonction protecttion et déprotection feuille
    Bonjour je souhaiterai créer une fonction pour protéger des feuilles excel ainsi qu'une pour les déprotéger. où dois-je placer ces fonctions ? dans un module ? je souhaiterai que lorsque ces fonctions sont appelées, deux variables soient précisées afin de savoir quelles feuilles protégées / déprotégées.

    j'ai écris cela :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    Sub Protect(x As Integer, y As Integer)
        Dim sht As Worksheet
        Dim i As Integer
        For i = x To y
        sht(i).Protect Password:=("PASS"), DrawingObjects:=True, Contents:=True, Scenarios:=True, UserInterfaceOnly:=True
        Next i
    End Sub
    Sub Unprotect(x As Integer, y As Integer)
        Dim sht As Worksheet
        Dim i As Integer
        For i = x To y
        sht(i).Unprotect Password:=("PASS")
        Next i
    End Sub
    j'ai tenté d'appeler ma fonction depuis un formulaire avec "call Protect(x,y)" et en précisant les valeurs de x et y. cela ne focntionne pas. pouvez-vous m'aiguiller ?

  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
    Bonjour,

    Essais comme cela
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    Sub Protect(x As Integer, y As Integer)
        Dim i As Integer
        For i = x To y
           Worksheets(i).Protect Password:=("PASS"), DrawingObjects:=True, Contents:=True, Scenarios:=True, UserInterfaceOnly:=True
        Next i
    End Sub

  3. #3
    Membre éprouvé
    Profil pro
    Étudiant
    Inscrit en
    Juin 2012
    Messages
    129
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Juin 2012
    Messages : 129
    Par défaut
    Bonjour! cela fonctionne!
    j'aurai une question par contre : j'ai essayé de mettre pour y "Worksheets.Count" mais là j'ai une erreur. j'aurai pourtant besoin d'utiliser cela vu que le nombre des feuilles de mon classeur va aller en grandissant. dois-je stocker "Worksheets.Count" dans une variable ? merci pour ton aide!

  4. #4
    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
    pour protéger de la feuille index 2 au dernier index
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Protect 2, ThisWorkbook.Worksheets.Count

    Si le but est de mettre un mot de passe sur toutes les feuilles, le mieux est de boucler sur chacune d'entre elles

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    Sub Protect()
        Dim Sh as Worksheet
        For each sh in thisworkbook.Worksheets
           Sh.Protect Password:=("PASS"), DrawingObjects:=True, Contents:=True, Scenarios:=True, UserInterfaceOnly:=True
        Next 
    End Sub

  5. #5
    Membre éprouvé
    Profil pro
    Étudiant
    Inscrit en
    Juin 2012
    Messages
    129
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Juin 2012
    Messages : 129
    Par défaut
    merci! c'est vrai qu'en me penchant un peu plus sur mon classeur je peux protéger toutes les feuilles d'un coup!

    merci problème résolu!

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

Discussions similaires

  1. Fonction Indirect nom de feuille variable
    Par cazimiro33 dans le forum Macros et VBA Excel
    Réponses: 3
    Dernier message: 17/09/2008, 16h17
  2. Réponses: 9
    Dernier message: 23/02/2008, 08h07
  3. [VBA-E] Comment faire une fonction utilsant une autre feuille
    Par EvaristeGaloisBis dans le forum Macros et VBA Excel
    Réponses: 2
    Dernier message: 12/04/2007, 16h27
  4. appel d'une fonction dans une autre feuille
    Par mardona dans le forum Macros et VBA Excel
    Réponses: 5
    Dernier message: 10/04/2007, 17h51
  5. [VBA-E]Fonction vb depuis la feuille excel
    Par Pollux dans le forum Macros et VBA Excel
    Réponses: 10
    Dernier message: 15/02/2006, 18h41

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