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

Conception Discussion :

Code VBA pour protéger certaines feuilles d'un classeur [XL-2010]


Sujet :

Conception

  1. #1
    Membre à l'essai
    Homme Profil pro
    PM
    Inscrit en
    Mai 2013
    Messages
    9
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Suisse

    Informations professionnelles :
    Activité : PM
    Secteur : Transports

    Informations forums :
    Inscription : Mai 2013
    Messages : 9
    Points : 12
    Points
    12
    Par défaut Code VBA pour protéger certaines feuilles d'un classeur
    Bonjour
    Il s'agit d'un document qui est accessible depuis Internet, un nombre restreint d'utilisateurs ont le mot de passe pour changer certaines données de référence.
    Le souci est que parfois ils oublient de re-protéger les feuilles avant de le fermer.
    j'ai fait une macro qui fonctionne mais par manque de connaissance en VBA très (trop) compliqué. Pourriez-vous svp m'aider à le simplifier par ex. avec une boucle?
    Un GRAND merci pour votre aide!
    Salutations
    Niko

    voici le code:

    Private Sub Workbook_BeforeClose(Cancel As Boolean)
    Protectok

    End Sub


    Public Sub Protectok()

    If Sheets(1).ProtectContents = False Then
    Sheets(1).Protect ("daien.bs")
    End If

    If Sheets(2).ProtectContents = False Then
    Sheets(2).Protect ("daien.bs")
    End If

    If Sheets(3).ProtectContents = False Then
    Sheets(3).Protect ("daien.bs")
    Else
    Exit Sub
    End If

    End Sub

  2. #2
    Membre expérimenté Avatar de Gado2600
    Homme Profil pro
    Développeur Office VBA
    Inscrit en
    Mai 2013
    Messages
    903
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 34
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Développeur Office VBA

    Informations forums :
    Inscription : Mai 2013
    Messages : 903
    Points : 1 364
    Points
    1 364
    Par défaut
    Bonjour,

    Tu as cette possibilité-ci qui reprend ton code, mais il en existe pleins d'autres.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    Public Sub Protectok()
    dim i as integer
    dim strMdp as string
    strMDP = "daien.bs"
     
    for i =1 to 3
         if thisworkbook.sheets(i).protectcontents = false then thisworkbook.sheets(i).protect strmdp
    next
    End Sub
    Cordialement,
    Le sabre est une arme. Le kendo est un art de tuer. Quelles que soient les belles paroles pour l'expliquer, telle est sa vérité.

  3. #3
    Expert éminent sénior Avatar de Menhir
    Homme Profil pro
    Ingénieur
    Inscrit en
    Juin 2007
    Messages
    16 037
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Finistère (Bretagne)

    Informations professionnelles :
    Activité : Ingénieur
    Secteur : Industrie

    Informations forums :
    Inscription : Juin 2007
    Messages : 16 037
    Points : 32 866
    Points
    32 866
    Par défaut
    Plus élégant (mais pas plus efficace)
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    Public Sub Protectok()
       dim WS as Worksheet
     
       for each WS in thisworkbook.sheets
          if WS.protectcontents = false then WS.protect ("daien.bs")
       next WS
    End Sub
    Merci de cliquer sur pour chaque message ayant aidé puis sur pour clore cette discussion.

  4. #4
    Expert éminent sénior
    Avatar de kiki29
    Homme Profil pro
    ex Observeur CGG / Analyste prog.
    Inscrit en
    Juin 2006
    Messages
    6 132
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Finistère (Bretagne)

    Informations professionnelles :
    Activité : ex Observeur CGG / Analyste prog.

    Informations forums :
    Inscription : Juin 2006
    Messages : 6 132
    Points : 11 274
    Points
    11 274
    Par défaut
    Salut, en espérant que les "autres" ne tombent pas sur qqch comme ceci.

  5. #5
    Expert éminent

    Homme Profil pro
    Curieux
    Inscrit en
    Juillet 2012
    Messages
    5 073
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Curieux
    Secteur : Arts - Culture

    Informations forums :
    Inscription : Juillet 2012
    Messages : 5 073
    Points : 9 853
    Points
    9 853
    Billets dans le blog
    5
    Par défaut
    Bonjour kiki29,

    cela signifie qu'on peut écraser le mdp en place en reprotégeant une feuille déjà protégée ??

    c'est bluffant, testé à l'instant

    par ailleurs, les arguments True sur contents et AllowUsingPivotTable sont arbitraires ou nécessaires ?

  6. #6
    Membre à l'essai
    Homme Profil pro
    PM
    Inscrit en
    Mai 2013
    Messages
    9
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Suisse

    Informations professionnelles :
    Activité : PM
    Secteur : Transports

    Informations forums :
    Inscription : Mai 2013
    Messages : 9
    Points : 12
    Points
    12
    Par défaut
    merci beaucoup pour vos réponses!
    j'apprécie que vous ayez pris le temps d'y jeter un oeil (avisé)
    en effet kiki le mdp ne sert plus à grand chose avec ce code
    au plaisir et meilleures salutations
    Nicolas

  7. #7
    Expert éminent sénior
    Avatar de Marc-L
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Avril 2013
    Messages
    9 468
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Hauts de Seine (Île de France)

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Avril 2013
    Messages : 9 468
    Points : 18 677
    Points
    18 677
    Par défaut




    Bonjour,

    je ne sais plus si c'est avec Libre Office ou Open Office mais l'ouverture d'un classeur Excel fait sauter directement les verrous !



    _____________________________________________________________________________________________________
    Je suis Charlie, Bardo, Sousse
    C'est parce que la vitesse de la lumière est plus rapide que celle du son que tant de gens paressent brillants avant d'avoir l'air con ! (Thomas Boishardy)

  8. #8
    Membre actif Avatar de Denis la Malice
    Homme Profil pro
    FabManager
    Inscrit en
    Février 2013
    Messages
    133
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 65
    Localisation : France, Loire Atlantique (Pays de la Loire)

    Informations professionnelles :
    Activité : FabManager
    Secteur : Services de proximité

    Informations forums :
    Inscription : Février 2013
    Messages : 133
    Points : 287
    Points
    287
    Par défaut On évoque la sécurité ?
    Bonjour,
    protéger des feuilles avec un mot de passe sans protéger le projet n'a pas beaucoup de sens.
    Et de toute façon, les protections "Office" ne sont pas très résistantes, même à une attaque en brute force.
    De la réflexion, naît l'action ...

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

Discussions similaires

  1. [XL-2007] Code VBA pour protéger des codes VBA
    Par gabigabou dans le forum Macros et VBA Excel
    Réponses: 1
    Dernier message: 13/05/2014, 23h22
  2. [XL-2010] Code VBA pour comparer deux feuilles Excel
    Par sam013 dans le forum Excel
    Réponses: 1
    Dernier message: 13/08/2012, 14h53
  3. [XL-2007] Code VBA pour le transfert automatique d'une feuille à l'autre
    Par parky67 dans le forum Macros et VBA Excel
    Réponses: 2
    Dernier message: 22/07/2012, 16h21
  4. Réponses: 3
    Dernier message: 06/09/2005, 10h27

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