Précédent   Forum des professionnels en informatique > Logiciels > Microsoft Office > Excel
Excel Forum d'entraide sur Excel. Vos questions sur les fonctions, formules, manipulations, et tout sujet qui ne trouve pas sa place dans un sous-forum.
Partagez cette discussion sur d'autres réseaux sociaux : Viadeo Twitter Google Facebook Digg Delicious MySpace Yahoo
Réponse Proposer ce sujet en actualité
 
Outils de la discussion
Publicité
'
Vieux 12/01/2012, 12h01   #1
Membre du Club
 
Avatar de pio_killer
 
Inscription : novembre 2008
Messages : 163
Détails du profil
Informations forums :
Inscription : novembre 2008
Messages : 163
Points : 54
Points : 54
Par défaut Verrouillage de l'utilisation d'une macro

Bonjour,

j'ai développé une macro sur excel pour le boulot.
Je voudrais la rendre accesssible que à certaines personnes (pour des droit de copyright et de sécurisation des données)

La macro vba est liée à des fichier textes qui contiennes des données.
Le projet vba est protégé en lecture par un mot de passe.

Tout ceci se trouve dans un dossier sur un reseau intranet du boulot.

J'avais pensée au début donner les droit d'accès au répertoire qu'au personnes voulues. Mais c'est trop lourd à gérer (dans le cas où il y a des nouvelle personnes à déclarer).

Ensuite j'ai pensé à faire un fichier texte dans lequel je mettrais la liste des personnes. Cette serait cryptée à l'aide d'un algorythme vba. Si le logon de la personne n'est pas dans cette liste, la macro ne se lancera pas. Mais je me dis qu'il suffira de supprimer le controle du logon pour l'utiliser (compte tenu qu'il est assez simple de cracker un projet vba).


Voilà où j'en suis.

Est-ce que quelqu'un a déjà été confronté à ce problème et est-ce que quelqu'un a une solution à me proposer.

Merci d'avance.
pio_killer est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 16/01/2012, 15h01   #2
Membre régulier
 
Homme
Developpeur
Inscription : novembre 2011
Messages : 83
Détails du profil
Informations personnelles :
Sexe : Homme
Localisation : France, Loire (Rhône Alpes)

Informations professionnelles :
Activité : Developpeur
Secteur : High Tech - Éditeur de logiciels

Informations forums :
Inscription : novembre 2011
Messages : 83
Points : 87
Points : 87
Par défaut sdispro

Salut,

a ta place je créerai un userform avec mot de passe qui héberge ton fichier.
si l'utlisateur rentre le bon mot de passe il a accès au fichier sinon non.
Sinon tout autre choses, passe par le e logiciel gratuitt protect me!.

a+
sdispro est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 17/01/2012, 15h34   #3
Membre du Club
 
Avatar de pio_killer
 
Inscription : novembre 2008
Messages : 163
Détails du profil
Informations forums :
Inscription : novembre 2008
Messages : 163
Points : 54
Points : 54
Salut,

merci pour ta réponse.

Ce que tu décris est déjà fait mais on a pas mal de turn over dans nos équipes et pour des raison de copyright, on ne veut pas que cette macro soit utilisée par d'autre personne. Par exemple, une personne qui connait bien la macro et qui est partie chez un concurrent

Est-il possible de générer en vba un fichier DLL qui sera unique pour chaque persone. Ce fichier contiendra les données concernant l'utilisateur autorisé (Logon + Nom du PC)

C'est possible ça ?
pio_killer est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 17/01/2012, 16h48   #4
Membre régulier
 
Homme
Developpeur
Inscription : novembre 2011
Messages : 83
Détails du profil
Informations personnelles :
Sexe : Homme
Localisation : France, Loire (Rhône Alpes)

Informations professionnelles :
Activité : Developpeur
Secteur : High Tech - Éditeur de logiciels

Informations forums :
Inscription : novembre 2011
Messages : 83
Points : 87
Points : 87
Par défaut sdispro

Re,

Oui, tu peux doner l'accès en fonction du nom utilisateur windows.
C'est totalemebnt personnel et tu bloque tout accès au fichier.
de plus tu peu bloquer un userform afin qu'il soit totalemebnt impossible d'accéder au code VBA.
sdispro est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 18/01/2012, 09h08   #5
Membre du Club
 
Avatar de pio_killer
 
Inscription : novembre 2008
Messages : 163
Détails du profil
Informations forums :
Inscription : novembre 2008
Messages : 163
Points : 54
Points : 54
Citation:
de plus tu peu bloquer un userform afin qu'il soit totalemebnt impossible d'accéder au code VBA
Ce que tu dis là m’intéresse

Tu m'expliquer comment tu ferais car à part mettre un mot de passe au projet, je ne vois comment faire
pio_killer est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 18/01/2012, 15h22   #6
Membre régulier
 
Homme
Developpeur
Inscription : novembre 2011
Messages : 83
Détails du profil
Informations personnelles :
Sexe : Homme
Localisation : France, Loire (Rhône Alpes)

Informations professionnelles :
Activité : Developpeur
Secteur : High Tech - Éditeur de logiciels

Informations forums :
Inscription : novembre 2011
Messages : 83
Points : 87
Points : 87
Par défaut sdispro

Re,

Je ne veux pas te démoraliser mais toutes application peu etre piratée et cela sans être un pro.

Il te faut créer un userform basique et effacer la croix rouge de fermeture, empecher le alt f4.
de ce fait il sera impossible d'ouvir tout autre fichier excel ou application tant que l'userform est activé.
Cependant il ne faut pas oublier de te créer un bouton qui te permettra a toi developpeur de pouvoir modifier ta macro.

Crée ton fichier et ton userform
Double clique dessus et colle se code


Code :
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
'''''''''''''''''CROIX ROUGE DE FERMETURE DESACTIVER ET EFFACEE'''''''''''''
 
Private Declare Function FindWindow Lib "User32" Alias "FindWindowA" _
(ByVal lpClassName As String, ByVal lpWindowName As String) As Long
Private Declare Function GetWindowLong Lib "User32" Alias _
"GetWindowLongA" (ByVal hWnd As Long, ByVal nIndex As Long) As Long
Private Declare Function SetWindowLong Lib "User32" Alias "SetWindowLongA" _
(ByVal hWnd As Long, ByVal nIndex As Long, ByVal dwNewLong As Long) As Long
Private Declare Function DrawMenuBar Lib "User32" (ByVal hWnd As Long) As Long
Private Declare Function FindWindowA Lib "User32" _
(ByVal lpClassName As String, ByVal lpWindowName As String) As Long
Private Declare Function GetWindowLongA Lib "User32" _
(ByVal hWnd As Long, ByVal nIndex As Long) As Long
Private Declare Function SetWindowLongA Lib "User32" _
(ByVal hWnd As Long, ByVal nIndex As Long, _
ByVal dwNewLong As Long) As Long
Private Sub CommandButton1_Click()
Unload Me
End Sub
 
Private Sub Image2_Click()
Unload UserForm1
End Sub
 
Private Sub UserForm_Initialize()
Dim hWnd As Long
    hWnd = FindWindow("Thunder" & IIf(Application.Version Like "8*", "X", "D") _
    & "Frame", Me.Caption)
    SetWindowLong hWnd, -16, GetWindowLong(hWnd, -16) And &HFFF7FFFF
UserForm1.Width = Application.Width
UserForm1.Height = Application.Height
 
 
End Sub
 
 
''''''''''''''''''''''''''''ALT F4 IMPOSSIBLE''''''''''''''''''''''''''''
 
Private Sub UserForm_QueryClose(Cancel As Integer, CloseMode As Integer)
If CloseMode = vbFormControlMenu Then Cancel = True
End Sub
 
 
 
Private Sub UserForm_Activate()
 Dim hWnd As Long, exLong As Long
 hWnd = FindWindowA(vbNullString, Me.Caption)
 exLong = GetWindowLongA(hWnd, -16)
 If exLong And &H880000 Then
  SetWindowLongA hWnd, -16, exLong And &HFF77FFFF
  Me.Hide: Me.Show
 End If
 End Sub
Mon code met en plein ecran ton userform et l'adapte à toutes résolution d'écran, de ce fait tout est ok.
Hésite pas si tu veux plus d'info
sdispro est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 26/01/2012, 14h37   #7
Membre du Club
 
Avatar de pio_killer
 
Inscription : novembre 2008
Messages : 163
Détails du profil
Informations forums :
Inscription : novembre 2008
Messages : 163
Points : 54
Points : 54
Merci pour ta réponse.

Je vais garder ce bout de code sous le coude ...

Pour mon problème, j'ai finalement opté pour une mise en place de la liste des utilisateurs dans un fichier texte crypté.
A l'ouverture de l'appli, si le logon et le nom du PC ne sont pas dans la liste, l'appli s’arrête.

Merci encore.
pio_killer est déconnecté   Envoyer un message privé Réponse avec citation 00
Réponse Proposer ce sujet en actualité Cette discussion est résolue.
Outils de la discussion



Fuseau horaire GMT +2. Il est actuellement 23h15.


 
 
 
 
Partenaires

Hébergement Web