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 :

Macro de sécurité


Sujet :

Macros et VBA Excel

  1. #1
    Membre averti
    Profil pro
    Inscrit en
    Avril 2013
    Messages
    28
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2013
    Messages : 28
    Par défaut Macro de sécurité
    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.

    Voici la macro ne pouvant joindre mon fichier

    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
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    60
    61
    62
    63
    64
    65
    Private Sub Workbook_Open()
     
    Application.ScreenUpdating = False
     
     
     
    'test fichier caché pour le C
     
    'Sub Test()
    If FichierExiste("chemin fichier sur le C") = True Then
     
     
    Application.ScreenUpdating = True
     
    ElseIf DossierExiste("chemin fichier sur le p") = True Then
     
    'test Dossier caché pour le P
     
     
    Application.ScreenUpdating = True
     
    Else
     
    Sheets.Add.Move after:=Sheets(Sheets.Count)
     
    While Sheets.Count > 1
     
                Application.DisplayAlerts = False
     
          Sheets(1).Delete 'Efface la dernière feuille
          Application.AlertBeforeOverwriting = False
          ActiveWorkbook.Save
     
    Wend
            'ferme le classeur
           Workbooks("Macro sécu").Close False
     
    End If
     
    End Sub
     
    Function FichierExiste(NomFichier As String) As Boolean
        FichierExiste = Dir(NomFichier, vbDirectory + vbHidden) <> ""
    End Function
     
    Function DossierExiste(NomDossier As String) As Boolean
     
    On Error GoTo traiterr
     
    DossierExiste = Dir(NomDossier, vbDirectory + vbHidden) <> ""
     
    Exit Function
     
    traiterr:
    Resume Next
     
     
    End Function
     
    Sub testrrrr()
     
    MsgBox DossierExiste("chemin fichier sur le p")
     
     
    End Sub

  2. #2
    Membre Expert Avatar de aalex_38
    Inscrit en
    Septembre 2007
    Messages
    1 631
    Détails du profil
    Informations forums :
    Inscription : Septembre 2007
    Messages : 1 631
    Par défaut
    Bonjour,


    Pas facile de mettre une sécurité, comme ca sur un document Excel et bien souvent les personnes qui travaillent en informatique ont accès à des données sensibles et heureusement ce sont des personnes de confiance.

    Si la personne décide de ne pas autoriser les macros au démarrage et bien il me semble que la protextion ne sert plus à rien.Pour commencer, je mettrai tous les onglets en cachés afin de ne pouvoir les afficher que par macro. Le projet VBA doit aussi être protégé par macro.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    .Visible =xlSheetVeryHidden
    Une fois les macros activées, tu peux tester l'existance de ton fichier, s'il existe tu affiche les feuilles sinon tu peux effectivement les supprimer.

  3. #3
    Membre averti
    Profil pro
    Inscrit en
    Avril 2013
    Messages
    28
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2013
    Messages : 28
    Par défaut
    Merci j'ai trouvé la solution sur un autre forum

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    Private Sub Workbook_BeforeSave(ByVal SaveAsUI As Boolean, Cancel As Boolean)
        If ThisWorkbook.FullName = "Le chemin de ton serveur" Then Cancel = True
    End Sub
    en insérant se code au départ je n'ai plus besoin de ma lecture seule, si le chemin est celui du fichier la sauvegarde est impossible, si il diffère ca signifie donc que le classeur a été copier la sauvegarde de la suppression sera possible.

  4. #4
    Membre Expert
    Avatar de pijaku
    Homme Profil pro
    Inscrit en
    Août 2010
    Messages
    1 817
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 52
    Localisation : France, Nord (Nord Pas de Calais)

    Informations forums :
    Inscription : Août 2010
    Messages : 1 817
    Billets dans le blog
    10
    Par défaut
    Bonjour,

    La solution que tu as trouvé ne s'applique que si le "voleur de fichier" active les macros au démarrage. S'il les désactive, il aura accès à ton fichier et pourra donc en copier les infos vers un autre classeur...

    Une autre solution consiste à créer un classeur "utilisateur.xls", qui, par macro, accèdera à ton fichier top secret (que tu pourras cacher dans un recoin sombre de ton serveur), sans jamais pouvoir accèder à toutes ces infos simultanément. Le but est de fournir à l'utilisateur juste ce dont il a besoin.
    Tu protèges tes macros du classeur utilisateur.xls par mot de passe. Tu peux également donner des niveau d'accès à ton fichier de base par des mots de passe, etc.
    Tu peux même envisager de "pister" les utilisateurs de ce fichier grâce à cette méthode. Qui a fait quoi?, quand?, peut être stocké dans un troisième fichier...

    Le but est de cumuler les sécurités pour éviter le vol.

  5. #5
    Membre averti
    Profil pro
    Inscrit en
    Avril 2013
    Messages
    28
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2013
    Messages : 28
    Par défaut
    tout a fait mais le fichier n'est utile qu'avec les macros donc au final il sera obliger de l'activer

    par contre je deterre le topic car je viens de me rendre comptre que la solution

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    Private Sub Workbook_BeforeSave(ByVal SaveAsUI As Boolean, Cancel As Boolean)
        If ThisWorkbook.FullName = "Le chemin de ton serveur" Then Cancel = True
    End Sub
    ne convient pas car même si elle empêche d'enregistrer le fichier (comme une lecture seule) elle empêche aussi de créer une copie de se fichier manuellement ou automatiquement une fois le fichier ouvert, hors j'ai besoin de pouvoir créer des copies pour ne pas perdre le travail effectué dessus

  6. #6
    Invité
    Invité(e)
    Par défaut
    La solution de pijaku semble sans contestation être la meilleure si ton fichier est vraiment critique.

    De plus, il existe de nombreux logiciels et astuces pour faire sauter les mots de passe d'un classeur Excel.

    Si tu souhaites tout de même continuer dans cette direction n'oublie pas de désactiver la touche 'Echap' par:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Application.EnableCancelKey = xlDisabled

Discussions similaires

  1. macro et sécurité windows
    Par Trycias dans le forum Macros et VBA Excel
    Réponses: 8
    Dernier message: 28/01/2012, 16h24
  2. Impossible de modifier le niveau de sécurité des macros
    Par Maximus06 dans le forum Sécurité
    Réponses: 2
    Dernier message: 10/01/2008, 15h38
  3. [E-07] Sécurité macro
    Par beekeep dans le forum Macros et VBA Excel
    Réponses: 2
    Dernier message: 07/01/2008, 10h36
  4. [VBA-E]Simuler "Outils/macro/sécurité" en VBA
    Par soad029 dans le forum Macros et VBA Excel
    Réponses: 6
    Dernier message: 23/02/2006, 11h16
  5. VB6: Pas de sécurité macro
    Par rupeni dans le forum VB 6 et antérieur
    Réponses: 2
    Dernier message: 25/11/2005, 15h57

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