Macro de sécurité

havopti

XLDnaute Nouveau
Salut a tous

Afin de protéger un fichier sensible de ma boite j'ai du créer une macro de sécurité.
Problème se fichier est utilisé par tous, le but est qu'il ne soit pas possible de l'utiliser en dehors de la boite sans le perdre ( ou sans connexion au serveur de la boite, le fichier ayant déjà été voler par un stagiaire )

Donc j'ai créer une macro sur se classeur qui vérifie l’accès en testant la présence d'un ficher caché sur le disque dur même des ordinateurs de la boite ou sur le serveur commun afin de pouvoir travailler chez soi tout en étant connecté.
Si le fichier n'est pas trouvé la macro supprime tous les onglets, enregistre et ferme automatiquement le classeur.

Et c'est la que la bas blesse, le fichier qui est sur le disque commun et donc susceptible d’être voler est en lecture seule ( afin de ne pas sauvegarder les éventuelles fausses manip ), donc en cas de vol la macro s’exécute mais ne peux pas enregistrer les suppression d'onglets.
le fichier et la macro sont joints
 

Pièces jointes

  • Macro sécu.xlsm
    13.8 KB · Affichages: 63
Dernière édition:

Orodreth

XLDnaute Impliqué
Re : Macro de sécurité

Re,

Il faut que tu repenses ta stratégie de sauvegarde.

Dans l'idée, ton tableau ne pouvant être enregistré, c'est un tableau de bord, il sert de pilotage.

Si tu dois enregistrer des données dans un classeur, crée carrément un nouveau classeur, que tu nommes, et dans lequel tu viens copier tes feuilles (/!\ certains codes peuvent être sur les codes des feuilles en question) ou les données de chaque feuille dans ton nouveau tableau.

Code:
    Dim New_WBK_ToSave as Workbook
    Set New_WBK_ToSave = Application.Workbooks.Add

Et ce nouveau tableau, n'ayant pas le code de gestion de la sauvegarde, tu peux l'enregistrer depuis la variable objet.
Code:
    New_WBK_ToSave.SaveAs ...[CHEMIN]&[FICHIER]

Maintenant, en faisant ça, tu vas y perdre aussi en sécurité sur tes datas.

A toi de voir au final.

Cordialement,
 

kyasteph

XLDnaute Occasionnel
Re : Macro de sécurité

Bonjour,
il faudra inclure dans ton code ceci:
If SaveAsUI = True Then Cancel = True

ceci devrait permettre l'enregistrement simple(save) et non pas le SaveAs.

Je suis moi aussi tres interessé par la discussion car j'ai aussi un probleme à peu pres similaire:j'ai un shema en tete mais je ne sais comment y arriver:Voici mon probleme:comment empecher l'ouverture(ou bien supprimé) du classeur s'il est copié vers un autre disque dur.(le classeur n'est pas reseau donc pas partagé):
Mon shéma:

1/Conditionner l'ouverture du classeur à une cellule(caché) ou macro stocké sur le disque dur proprietaire(principal)
2/Créer une macro auto destruction
3/Si le classeur est copié et collé sur un autre disque,alors enclenchement de ma macro auto destruction.

Quelqu'un pourrait il m'aider pour les codes car je suis débutant en vba;je compte sur vous.
 

Orodreth

XLDnaute Impliqué
Re : Macro de sécurité

Bonjour,

Feuille cachée avec listing des utilisateurs windows (c'est récupérable en VBA).
Du coup, après, sur l'event Workbook_Open, tu vérifies si le User est dans la liste sur ta feuille, à l'aide d'une boucle (Boucle For Variable_Parcours = Indice_Debut to Indice_Fin)

Si tu trouves une correspondance: tu ouvres le classeur.

Si tu n'en trouves pas:
- tu commences par créer une feuille vierge, sur laquelle tu viens inscrire en gras, italique, et souligné "Vous n'avez pas l'autorisation d'accéder à ce fichier"
- tu supprimes TOUTES les autres feuilles du classeur, sans poser de question (Application.DisplayAlerts = False), /!\ attention à penser à remettre les alertes après ton traitement de suppression, sinon tu crashes excel à la première erreur
- pour finir tu supprimes toutes les macros (voir les tutoriels de silkyroad à ce sujet: Visual Basic Editor )
- Tu enregistres le classeur tel quel, et tu forces la fermeture (ThisWorkbook.Save, thisWorkbook.close)

Basiquement, la procédure à suivre est celle décrite ci-dessus.
Sauf que ... Tu feras TOUJOURS face aux limites dont on a parlé:
- Si la personne ouvre ton classeur depuis une copie qu'elle a faite, elle aura toujours le classeur d'origine pour retravailler (donc la suppression et l'enregistrement ne servent plus à grand chose)
- Et surtout, si elle positionne son niveau de sécurité sur Moyen (avec autorisation utilisateur donc) ou sur Elevé (refus systématique hors macros signées), tu l'as dans l'os, puisque tes macros ne s'exécuteront pas.

Le fait de mettre un mot de passe sur le projet VBA n'est pas forcément plus probant, puisqu'il me faut environ 20 secondes pour cracker le mot de passe sur Excel 2003.
J'ignore ce qu'il en est sur 2007/2010/2013, mais si ça n'a pas été corrigé, ou si tu es sur d'anciennes versions d'Excel, tu peux oublier de suite ...

MS Excel et la sécurité, c'est une facture de doliprane/aspirine astronomique :/
 

Discussions similaires

Réponses
13
Affichages
358

Statistiques des forums

Discussions
312 370
Messages
2 087 690
Membres
103 640
dernier inscrit
So pizza