Macro pour bloquer toutes les feuilles d'un fichier Excel

Discussion dans 'Windows' créé par Havane, 11 Avril 2014.

  1. Offline
    Havane Funky fresh Masta
    Salut à tous,

    J'ai une question sur laquelle je m'arrache les cheveux depuis une heure.

    Je voudrais bloquer toutes les feuilles d'un fichier excel à la fois. Pour faire ça il faut faire une macro et je n'en ai jamais fait. J'ai 20 fichiers de 8 feuilles.

    En chipotant et en regardant sur le net, j'ai trouvé une méthode. Je sauve mon fichier sous format "excel macro enabled" et je rajoute un module qui est celui là dans Visual Basic:

    Sub Protection_Feuilles()

    Dim Sh As Object
    For Each Sh In ThisWorkbook.Sheets
    If TypeOf Sh Is Worksheet Then
    Sh.Unprotect "TonMotDePasse"
    Sh.Cells.Locked = True
    Sh.Cells.FormulaHidden = True
    Sh.Protect "TonMotDePasse", True, True, True
    End If
    Next
    End Sub

    Ensuite je fais F5 pour lancer la macro et TADAM toutes les feuilles sont bloquées, je suis trop fier de moi, je me chie dessus.

    Sauf qu'en faisant ALT+F11 ben on voit la macro donc le mdp.

    Donc je resauve mon truc en format sans macro et boum j'ai mon fichier original bloqué (ce qui est important car j'ai un fichier synthétique qui reprend tt donc mes fichiers doivent avoir le mm nom et format qu'à l'origine sinon c la merde).

    Tout fier de moi, je demande a ma collègue qui touche rien en excel d'essayer de foutre la merde dans mon fichier voir si elle y arrive.

    En deux secondes, elle fait un copier coller d'une feuille et voir les colonnes cachées, pas les formules mais les contenus finaux, ce qui ne m'arrange pas.

    DONC Ma question est celle-ci:

    Comment refaire une macro qui d'un coup d'un seul bloquerait immédiatement toutes les feuilles mais en empêchant la sélection et la copie des cellules? Si en plus la macro pouvait empêcher de rajouter une feuille au fichier ce serait le top. En somme je veux que les gens puissent seulement lire le fichier mais absolument pas le modifier de quelle manière que ce soit!



    Merci :)
    Havane, 11 Avril 2014
    #1
  2. Offline
    gwen Sitegeek.fr
    Tu n'a pas besoin de macro pour ça, suffit de bloquer le fichier via les options prévues à cet effet "protect sheet,protect workbook" dans l'onglet Review chez moi
    gwen, 11 Avril 2014
    #2
  3. Offline
    Havane Funky fresh Masta
    Oui sauf que je dois faire la manip d'entrer le mdp et de le confirmer pour chacune des 8 feuilles des 20 fichiers, si y'a une métode plus rapide, je suis preneur dans la mesure où je vais devoir refaire très souvent la même manip :)
    Havane, 11 Avril 2014
    #3
  4. Offline
    Aqua Elite
    Pour cela faut jouer avec les permissions ou créer des répertoires partagés avec restriction par groupe.
    Aqua, 11 Avril 2014
    #4
  5. Offline
    Havane Funky fresh Masta
    Je crois qu'en rajoutant une ligne précisant qu'on peut pas sélectionner les cellules dans la macro ca irait! Et je peux pas faire un truc avec les groupes puisque c'est un document qui doit être diffusé à nos partenaires mais je veux qu'ils ne voient que le résultat et pas les modes de calcul. Encore moins pouvoir copier celle-ci! Je voudrais pas qu'un consultant privé se fasse du blé en pompant tout mon taf!
    Havane, 11 Avril 2014
    #5
  6. Offline
    Jereck Procrastinateur
    Equipe GamerZ.be
    T'es gentil toi ...
    Jereck, 11 Avril 2014
    #6
  7. Online
    Azinou Ancienne LV
    Normalement, dans ta macro, tu peux taper tout les settings normalement cochable quand tu fais un verrouillage manuel de la feuille, et via cette fenêtre, tu peux normalement bloquer tout de A à Z (du fait de pouvoir sélectionner une cellule à changer la hauteur/largeur des cellules etc).

    T'as regardé dans l'aide via F1 si y a pas une liste de paramètre exploitable dans une macro par rapport au verrouillage d'une feuille ?
    Azinou, 11 Avril 2014
    #7
  8. Offline
    Havane Funky fresh Masta
    J'ai jamais pensé que l'aide puisse m'être vraiment utile mais il se pourrait bien qu'il y ait un début à tout :D
    Havane, 11 Avril 2014
    #8
  9. Online
    Azinou Ancienne LV
    C'est un peu le seul truc pour lequel je fais confiance à l'aide intégrée, c'est d'indiquer les variables de bases utilisables :p
    Azinou, 11 Avril 2014
    #9
  10. Offline
    fraggahh ROFLCOPTER
    j'ai un fichier comme ca au boulot ou tout est bloqué via des macros.

    Je relock tout chaque fois à l'ouverture du fichier. Le gars est obliger d'accepter les macros pour sont utilisations.

    Si tu asle temps jusque lundi je peux t'envoyer les méthodes


    edit : oublie pas que tu peux proteger tes modules avec un pw
    fraggahh, 11 Avril 2014
    #10
  11. Offline
    Havane Funky fresh Masta
    En fait c'est la première fois que je chipote avec Visual Basic et des macros donc je suis encore au niveau 0 des fonctionnalités. Je me doutais bien qu'on pouvait les protéger mais je savais pas comment. Clairement les procédures et méthodes m'intéressent :)
    Havane, 13 Avril 2014
    #11
  12. Offline
    .Knz Au Pays des merveilles.
    Normalement, tu peux protéger ton code VBA (pour empêcher de le voir/modifier), cherche bien. (quelque part dans le developer)

    J'avais fait la même à l'époque.

    Sinon, pour connaitre le code ou orienter tes recherches, utilises l'espion dans les outils de macro, c'est vraiment utile. Du genre, je sais le faire manuellement mais pas en VBA ==> espion.

    EDIT:
    EDIT2: J'avais fait ça, quant à savoir exactement ce que c'est, je m'en souviens plus :D (utilises l'aide VBA, F1 sur la fonction que tu piges pas dans l'éditeur)
    EDIT3:
    Par contre, si tu effectues des sélections via des macros, prends bien soin de désélectionner les cellules actives sinon, lors de la protection des feuilles, celles-ci seront encore en surbrillance. Ce qui n'est pas du tout esthétique pour le lecteur.
    .Knz, 13 Avril 2014
    #12