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 :

Lecture d'un fichier Excel uniquement sur un seul poste


Sujet :

Macros et VBA Excel

  1. #1
    Nouveau membre du Club
    Inscrit en
    Avril 2003
    Messages
    80
    Détails du profil
    Informations forums :
    Inscription : Avril 2003
    Messages : 80
    Points : 35
    Points
    35
    Par défaut Lecture d'un fichier Excel uniquement sur un seul poste
    Bonjour,

    Je voudrais que mon fichier Excel ne puisse être ouvert que sur un seul poste.
    J'ai donc fait ce code en utilisant une clé de registre (TestKey de valeur 32) que j'ai créé sur le poste en question :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
     
    Private Sub Workbook_Open()
    Securite = GetSetting("Section1", "Section2", "TestKey", Défaut)
    If Securite = 32 Then
        MsgBox "Autorisé à lire ce fichier"
    Else
        MsgBox "Vous n'êtes pas autorisé à lire ce fichier"
        ActiveWorkbook.Close False
    End If
    End Sub
    Je me suis rendu compte que ce code ne servait à rien car il suffit que l'utilisateur désactive les macros pour l'ouvrir à moins de créér un certificat de sécurité...
    Quelqu'un voit comment je pourrais résoudre mon problème sans certificat de sécurité?
    Il doit falloire ne pas se servir des macros mais alors comment faire?

    Merci de votre aide
    L'intelligence, c'est quand on sait qu'on ne sait pas

  2. #2
    Modérateur
    Avatar de AlainTech
    Homme Profil pro
    Consultant informatique
    Inscrit en
    Mai 2005
    Messages
    4 235
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 70
    Localisation : Belgique

    Informations professionnelles :
    Activité : Consultant informatique
    Secteur : Finance

    Informations forums :
    Inscription : Mai 2005
    Messages : 4 235
    Points : 24 327
    Points
    24 327
    Par défaut
    Créer un script en VBS qui tourne en permanence et vérifie si cette fenêtre (le classeur) est ouverte.
    Si oui, fermeture et message.

    Donc: un VBS par poste et, si l'utilisateur est un peu malin, il stoppe le processus.

    Lourd et peu efficace mais je ne vois rien d'autre.
    N'oubliez pas de cliquer sur quand vous avez obtenu ou trouvé vous-même la réponse à votre question.
    Si vous trouvez seul, pensez à poster votre solution. Elle peut servir à d'autres!
    Pensez aussi à voter pour les réponses qui vous ont aidés.
    ------------
    Je dois beaucoup de mes connaissances à mes erreurs!

  3. #3
    Nouveau membre du Club
    Inscrit en
    Avril 2003
    Messages
    80
    Détails du profil
    Informations forums :
    Inscription : Avril 2003
    Messages : 80
    Points : 35
    Points
    35
    Par défaut
    Merci de ta réponse, mais mon but est que le fichier ne fonctionne sur aucun poste (même sur ceux ou il n'y aurais pas de sript en VBS) et juste sur le mien.
    On ne peut pas faire en sorte que le fichier excel ne s'ouvre pas si on active pas les macros?
    L'intelligence, c'est quand on sait qu'on ne sait pas

  4. #4
    Modérateur
    Avatar de AlainTech
    Homme Profil pro
    Consultant informatique
    Inscrit en
    Mai 2005
    Messages
    4 235
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 70
    Localisation : Belgique

    Informations professionnelles :
    Activité : Consultant informatique
    Secteur : Finance

    Informations forums :
    Inscription : Mai 2005
    Messages : 4 235
    Points : 24 327
    Points
    24 327
    Par défaut
    Je ne sais pas s'il est possible de mettre toutes les feuilles en caché...

    Sinon, tu laisses une feuille visible qui dit que les macros doivent être activées + protection de toutes les feuilles (y compris les cachées).

    Dans le Workbook_Open, tu fais tout ce que tu veux au niveau affichage et débloquage.

    Ce genre de protection n'est valable que pour le commun des mortels, pas pour des gens un peu futés...
    N'oubliez pas de cliquer sur quand vous avez obtenu ou trouvé vous-même la réponse à votre question.
    Si vous trouvez seul, pensez à poster votre solution. Elle peut servir à d'autres!
    Pensez aussi à voter pour les réponses qui vous ont aidés.
    ------------
    Je dois beaucoup de mes connaissances à mes erreurs!

  5. #5
    Nouveau membre du Club
    Inscrit en
    Avril 2003
    Messages
    80
    Détails du profil
    Informations forums :
    Inscription : Avril 2003
    Messages : 80
    Points : 35
    Points
    35
    Par défaut
    Voilà, j'ai trouvé en cachant les feuilles, c'est une bonne idée AlainTech, voici mon code :

    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
     
    Private Sub Workbook_BeforeClose(Cancel As Boolean)
        Application.ScreenUpdating = False
        Sheets(1).Visible = True
        For i = Sheets.Count To 2 Step -1
            Sheets(i).Visible = xlVeryHidden
        Next i
    End Sub
    Private Sub Workbook_Open()
        Application.ScreenUpdating = False
        For Each sh In Sheets
            sh.Visible = True
        Next sh
        Sheets(1).Visible = xlVeryHidden
    Securite = GetSetting("Section0","Section1", "Key", Défaut)
    If Securite = 11123 Then
        MsgBox "Vous êtes autorisé à lire ce fichier"
    Else
        MsgBox "Vous n'êtes pas autorisé à lire ce fichier"
        ActiveWorkbook.Close False
    End If
    End Sub
    J'ai créé une feuille qui explique qu'il faut activer les macros.
    En protégeant le code par un mot de passe, la sécurité me parait satisfaisante
    L'intelligence, c'est quand on sait qu'on ne sait pas

  6. #6
    Membre éclairé
    Inscrit en
    Septembre 2005
    Messages
    617
    Détails du profil
    Informations forums :
    Inscription : Septembre 2005
    Messages : 617
    Points : 733
    Points
    733
    Par défaut
    Met un code au niveau du projet VBA, le crtrl Break ne servirai a rien, il demande alors un MDP poiur accéder au code...

    C'est pas inviollable (déja éprouvé) maus bon gaut commencer a en vouloir
    N'oubliez pas de mettre le

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

Discussions similaires

  1. [VB.NET] Accélerer la lecture d'un fichier excel
    Par Franck2mars dans le forum Windows Forms
    Réponses: 4
    Dernier message: 16/11/2007, 11h35
  2. Lecture d'un fichier excel avec C++
    Par ziss dans le forum C++
    Réponses: 1
    Dernier message: 17/10/2006, 18h31
  3. [struts]lecture d'un fichier en locale sur un serveur:
    Par dasmadja dans le forum Struts 1
    Réponses: 2
    Dernier message: 18/09/2006, 13h37
  4. [VB6] Problème de lecture d'un fichier excel
    Par Requin15 dans le forum VB 6 et antérieur
    Réponses: 5
    Dernier message: 23/03/2006, 17h10
  5. macros word et lecture dans un fichier excel
    Par antrax2013 dans le forum Windows
    Réponses: 2
    Dernier message: 01/10/2005, 19h05

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