Protéger un classeur contenant des informations confidentielles
6 réponses
ma_komba
Bonjour,
Je suis sous WinXP, Office2003. J'aimerais emp=EAcher des utilisateurs
(externes =E0 mon entreprise) d'utiliser un classeur (mod=E8le). Les
utilisateurs de l'entreprise doivent pouvoir utiliser le classeur
lorsqu'ils sont sur le r=E9seau de l'entreprise. Les donn=E9es dans le
classeur sont sensibles donc l'id=E9e est de bloquer l'utilisation mais
aussi d'emp=EAcher de consulter les bases utilis=E9es pour les calculs.
PS :tous les utilisateurs ont un login... est-il envisageable
d'utiliser les propri=E9t=E9s et param=E8tres du r=E9seau ?
Si vous avez des id=E9es sur comment proc=E9der... je suis preneur.
Merci et bonne journ=E9e. MA
Cette action est irreversible, confirmez la suppression du commentaire ?
Signaler le commentaire
Veuillez sélectionner un problème
Nudité
Violence
Harcèlement
Fraude
Vente illégale
Discours haineux
Terrorisme
Autre
Lolote
Salut Ma Komba
Tu peux peux être utiliser l'option au moment de l'enregistrement pour protéger par MDP ton classeur à l'ouverture. Quand tu fais enregister sous, avant de cliquer sur enregistrer, tu cliques sur Outils puis tu choisis Options générales, et dans mot de passe protégeant le document tu saisis ton MDP. Avec cette manière de procéder, si le MDP est incorect, l'ouverture n'est pas autorisée donc pas d'accès aux données. En espérant avoir répondu à ta question.
@+ Lolote
a écrit dans le message de news:
Bonjour, Je suis sous WinXP, Office2003. J'aimerais empêcher des utilisateurs (externes à mon entreprise) d'utiliser un classeur (modèle). Les utilisateurs de l'entreprise doivent pouvoir utiliser le classeur lorsqu'ils sont sur le réseau de l'entreprise. Les données dans le classeur sont sensibles donc l'idée est de bloquer l'utilisation mais aussi d'empêcher de consulter les bases utilisées pour les calculs. PS :tous les utilisateurs ont un login... est-il envisageable d'utiliser les propriétés et paramètres du réseau ? Si vous avez des idées sur comment procéder... je suis preneur. Merci et bonne journée. MA
Salut Ma Komba
Tu peux peux être utiliser l'option au moment de l'enregistrement pour
protéger par MDP ton classeur à l'ouverture.
Quand tu fais enregister sous, avant de cliquer sur enregistrer, tu
cliques sur Outils puis tu choisis Options générales, et dans mot de passe
protégeant le document tu saisis ton MDP.
Avec cette manière de procéder, si le MDP est incorect, l'ouverture
n'est pas autorisée donc pas d'accès aux données.
En espérant avoir répondu à ta question.
@+ Lolote
<ma_komba@yahoo.fr> a écrit dans le message de news:
1150274574.068838.185190@f6g2000cwb.googlegroups.com...
Bonjour,
Je suis sous WinXP, Office2003. J'aimerais empêcher des utilisateurs
(externes à mon entreprise) d'utiliser un classeur (modèle). Les
utilisateurs de l'entreprise doivent pouvoir utiliser le classeur
lorsqu'ils sont sur le réseau de l'entreprise. Les données dans le
classeur sont sensibles donc l'idée est de bloquer l'utilisation mais
aussi d'empêcher de consulter les bases utilisées pour les calculs.
PS :tous les utilisateurs ont un login... est-il envisageable
d'utiliser les propriétés et paramètres du réseau ?
Si vous avez des idées sur comment procéder... je suis preneur.
Merci et bonne journée. MA
Tu peux peux être utiliser l'option au moment de l'enregistrement pour protéger par MDP ton classeur à l'ouverture. Quand tu fais enregister sous, avant de cliquer sur enregistrer, tu cliques sur Outils puis tu choisis Options générales, et dans mot de passe protégeant le document tu saisis ton MDP. Avec cette manière de procéder, si le MDP est incorect, l'ouverture n'est pas autorisée donc pas d'accès aux données. En espérant avoir répondu à ta question.
@+ Lolote
a écrit dans le message de news:
Bonjour, Je suis sous WinXP, Office2003. J'aimerais empêcher des utilisateurs (externes à mon entreprise) d'utiliser un classeur (modèle). Les utilisateurs de l'entreprise doivent pouvoir utiliser le classeur lorsqu'ils sont sur le réseau de l'entreprise. Les données dans le classeur sont sensibles donc l'idée est de bloquer l'utilisation mais aussi d'empêcher de consulter les bases utilisées pour les calculs. PS :tous les utilisateurs ont un login... est-il envisageable d'utiliser les propriétés et paramètres du réseau ? Si vous avez des idées sur comment procéder... je suis preneur. Merci et bonne journée. MA
ma_komba
Bonjour Lolotte, (sympa comme nom..) Oui mais non. Je connaissait, mais je pense qu'il est trop simple de trouver le MDP (ou du moins un MDP de remplacement).. D'ailleurs on trouve des modules qui font cela ici même... Merci tout de même et toute belle journée.
Salut Ma Komba
Tu peux peux être utiliser l'option au moment de l'enregistrement p our protéger par MDP ton classeur à l'ouverture. Quand tu fais enregister sous, avant de cliquer sur enregistrer, tu cliques sur Outils puis tu choisis Options générales, et dans mot de passe protégeant le document tu saisis ton MDP. Avec cette manière de procéder, si le MDP est incorect, l'ouvertu re n'est pas autorisée donc pas d'accès aux données. En espérant avoir répondu à ta question.
@+ Lolote
a écrit dans le message de news:
Bonjour, Je suis sous WinXP, Office2003. J'aimerais empêcher des utilisateurs (externes à mon entreprise) d'utiliser un classeur (modèle). Les utilisateurs de l'entreprise doivent pouvoir utiliser le classeur lorsqu'ils sont sur le réseau de l'entreprise. Les données dans le classeur sont sensibles donc l'idée est de bloquer l'utilisation mais aussi d'empêcher de consulter les bases utilisées pour les calculs. PS :tous les utilisateurs ont un login... est-il envisageable d'utiliser les propriétés et paramètres du réseau ? Si vous avez des idées sur comment procéder... je suis preneur. Merci et bonne journée. MA
Bonjour Lolotte, (sympa comme nom..)
Oui mais non. Je connaissait, mais je pense qu'il est trop simple de
trouver le MDP (ou du moins un MDP de remplacement).. D'ailleurs on
trouve des modules qui font cela ici même...
Merci tout de même et toute belle journée.
Salut Ma Komba
Tu peux peux être utiliser l'option au moment de l'enregistrement p our
protéger par MDP ton classeur à l'ouverture.
Quand tu fais enregister sous, avant de cliquer sur enregistrer, tu
cliques sur Outils puis tu choisis Options générales, et dans mot de passe
protégeant le document tu saisis ton MDP.
Avec cette manière de procéder, si le MDP est incorect, l'ouvertu re
n'est pas autorisée donc pas d'accès aux données.
En espérant avoir répondu à ta question.
@+ Lolote
<ma_komba@yahoo.fr> a écrit dans le message de news:
1150274574.068838.185190@f6g2000cwb.googlegroups.com...
Bonjour,
Je suis sous WinXP, Office2003. J'aimerais empêcher des utilisateurs
(externes à mon entreprise) d'utiliser un classeur (modèle). Les
utilisateurs de l'entreprise doivent pouvoir utiliser le classeur
lorsqu'ils sont sur le réseau de l'entreprise. Les données dans le
classeur sont sensibles donc l'idée est de bloquer l'utilisation mais
aussi d'empêcher de consulter les bases utilisées pour les calculs.
PS :tous les utilisateurs ont un login... est-il envisageable
d'utiliser les propriétés et paramètres du réseau ?
Si vous avez des idées sur comment procéder... je suis preneur.
Merci et bonne journée. MA
Bonjour Lolotte, (sympa comme nom..) Oui mais non. Je connaissait, mais je pense qu'il est trop simple de trouver le MDP (ou du moins un MDP de remplacement).. D'ailleurs on trouve des modules qui font cela ici même... Merci tout de même et toute belle journée.
Salut Ma Komba
Tu peux peux être utiliser l'option au moment de l'enregistrement p our protéger par MDP ton classeur à l'ouverture. Quand tu fais enregister sous, avant de cliquer sur enregistrer, tu cliques sur Outils puis tu choisis Options générales, et dans mot de passe protégeant le document tu saisis ton MDP. Avec cette manière de procéder, si le MDP est incorect, l'ouvertu re n'est pas autorisée donc pas d'accès aux données. En espérant avoir répondu à ta question.
@+ Lolote
a écrit dans le message de news:
Bonjour, Je suis sous WinXP, Office2003. J'aimerais empêcher des utilisateurs (externes à mon entreprise) d'utiliser un classeur (modèle). Les utilisateurs de l'entreprise doivent pouvoir utiliser le classeur lorsqu'ils sont sur le réseau de l'entreprise. Les données dans le classeur sont sensibles donc l'idée est de bloquer l'utilisation mais aussi d'empêcher de consulter les bases utilisées pour les calculs. PS :tous les utilisateurs ont un login... est-il envisageable d'utiliser les propriétés et paramètres du réseau ? Si vous avez des idées sur comment procéder... je suis preneur. Merci et bonne journée. MA
Lolote
Re salut Ma Komba,
Peut être qu'en passant par le biais d'un formulaire cela te conviendrait mieux. L'exemple qui suit http://cjoint.com/?gon3jYGTJd te permet de saisir un mot de passe, et ferme l'application si le mdp est incorrect. Pour rendre vraiment opérationnel ce fichier dans les conditions expliquées plus haut, une fois que tu as la main tu fais : ALT+F11 pour passer en mode VBA et dans le code ci-dessous tu changes les paramètres que tu veux.
Private Sub Cmd_Valider_Click() xIci = False If Txt_Mdp <> "toto" Then 'Ici, c'est le mot de passe MsgBox "L'application va se fermer !!!!", vbCritical, "ERREUR" 'Application.Quit 'Cette ligne ferme l'application excel, il faut enlever le ' devant pour la rendre opérationnelle Else xIci = True Unload Me Sheets("Feuil1").Select End If End Sub
Private Sub UserForm_Terminate() If xIci = False Then MsgBox "Il ne faut pas essayer de tricher !!!!", vbCritical, "C'est pas bien !!!" 'Application.Quit 'Cette ligne ferme l'application excel, il faut enlever le ' devant pour la rendre opérationnelle End If End Sub
En espérant que cette solution convienne plus à tes attentes.
@+ Lolote
a écrit dans le message de news:
Bonjour, Je suis sous WinXP, Office2003. J'aimerais empêcher des utilisateurs (externes à mon entreprise) d'utiliser un classeur (modèle). Les utilisateurs de l'entreprise doivent pouvoir utiliser le classeur lorsqu'ils sont sur le réseau de l'entreprise. Les données dans le classeur sont sensibles donc l'idée est de bloquer l'utilisation mais aussi d'empêcher de consulter les bases utilisées pour les calculs. PS :tous les utilisateurs ont un login... est-il envisageable d'utiliser les propriétés et paramètres du réseau ? Si vous avez des idées sur comment procéder... je suis preneur. Merci et bonne journée. MA
Re salut Ma Komba,
Peut être qu'en passant par le biais d'un formulaire cela te conviendrait
mieux.
L'exemple qui suit http://cjoint.com/?gon3jYGTJd te permet de saisir un mot
de passe, et ferme l'application si le mdp est incorrect.
Pour rendre vraiment opérationnel ce fichier dans les conditions expliquées
plus haut, une fois que tu as la main tu fais :
ALT+F11 pour passer en mode VBA et dans le code ci-dessous tu changes les
paramètres que tu veux.
Private Sub Cmd_Valider_Click()
xIci = False
If Txt_Mdp <> "toto" Then 'Ici, c'est le mot de passe
MsgBox "L'application va se fermer !!!!", vbCritical, "ERREUR"
'Application.Quit 'Cette ligne ferme
l'application excel, il faut enlever le ' devant pour la rendre
opérationnelle
Else
xIci = True
Unload Me
Sheets("Feuil1").Select
End If
End Sub
Private Sub UserForm_Terminate()
If xIci = False Then
MsgBox "Il ne faut pas essayer de tricher !!!!", vbCritical, "C'est
pas bien !!!"
'Application.Quit 'Cette ligne ferme
l'application excel, il faut enlever le ' devant pour la rendre
opérationnelle
End If
End Sub
En espérant que cette solution convienne plus à tes attentes.
@+ Lolote
<ma_komba@yahoo.fr> a écrit dans le message de news:
1150274574.068838.185190@f6g2000cwb.googlegroups.com...
Bonjour,
Je suis sous WinXP, Office2003. J'aimerais empêcher des utilisateurs
(externes à mon entreprise) d'utiliser un classeur (modèle). Les
utilisateurs de l'entreprise doivent pouvoir utiliser le classeur
lorsqu'ils sont sur le réseau de l'entreprise. Les données dans le
classeur sont sensibles donc l'idée est de bloquer l'utilisation mais
aussi d'empêcher de consulter les bases utilisées pour les calculs.
PS :tous les utilisateurs ont un login... est-il envisageable
d'utiliser les propriétés et paramètres du réseau ?
Si vous avez des idées sur comment procéder... je suis preneur.
Merci et bonne journée. MA
Peut être qu'en passant par le biais d'un formulaire cela te conviendrait mieux. L'exemple qui suit http://cjoint.com/?gon3jYGTJd te permet de saisir un mot de passe, et ferme l'application si le mdp est incorrect. Pour rendre vraiment opérationnel ce fichier dans les conditions expliquées plus haut, une fois que tu as la main tu fais : ALT+F11 pour passer en mode VBA et dans le code ci-dessous tu changes les paramètres que tu veux.
Private Sub Cmd_Valider_Click() xIci = False If Txt_Mdp <> "toto" Then 'Ici, c'est le mot de passe MsgBox "L'application va se fermer !!!!", vbCritical, "ERREUR" 'Application.Quit 'Cette ligne ferme l'application excel, il faut enlever le ' devant pour la rendre opérationnelle Else xIci = True Unload Me Sheets("Feuil1").Select End If End Sub
Private Sub UserForm_Terminate() If xIci = False Then MsgBox "Il ne faut pas essayer de tricher !!!!", vbCritical, "C'est pas bien !!!" 'Application.Quit 'Cette ligne ferme l'application excel, il faut enlever le ' devant pour la rendre opérationnelle End If End Sub
En espérant que cette solution convienne plus à tes attentes.
@+ Lolote
a écrit dans le message de news:
Bonjour, Je suis sous WinXP, Office2003. J'aimerais empêcher des utilisateurs (externes à mon entreprise) d'utiliser un classeur (modèle). Les utilisateurs de l'entreprise doivent pouvoir utiliser le classeur lorsqu'ils sont sur le réseau de l'entreprise. Les données dans le classeur sont sensibles donc l'idée est de bloquer l'utilisation mais aussi d'empêcher de consulter les bases utilisées pour les calculs. PS :tous les utilisateurs ont un login... est-il envisageable d'utiliser les propriétés et paramètres du réseau ? Si vous avez des idées sur comment procéder... je suis preneur. Merci et bonne journée. MA
ma_komba
Re bonjour Lolote (1 t cette fois..) Oui, c'est mieux, ça fonctionne parfaitement.... Merci pour toutes ces infos. J'ai aussi penser tester l'environnement (notre réseau) pour empêcher le déroulement du prg. Il me reste à trouver un mot de passe compliqué pour protéger le tout... Bonne fin de journée. MA..
Re salut Ma Komba,
Peut être qu'en passant par le biais d'un formulaire cela te conviendra it mieux. L'exemple qui suit http://cjoint.com/?gon3jYGTJd te permet de saisir un m ot de passe, et ferme l'application si le mdp est incorrect. Pour rendre vraiment opérationnel ce fichier dans les conditions expliq uées plus haut, une fois que tu as la main tu fais : ALT+F11 pour passer en mode VBA et dans le code ci-dessous tu changes les paramètres que tu veux.
Private Sub Cmd_Valider_Click() xIci = False If Txt_Mdp <> "toto" Then 'Ici, c'est le mot de passe MsgBox "L'application va se fermer !!!!", vbCritical, "ERREUR" 'Application.Quit 'Cette ligne ferme l'application excel, il faut enlever le ' devant pour la rendre opérationnelle Else xIci = True Unload Me Sheets("Feuil1").Select End If End Sub
Private Sub UserForm_Terminate() If xIci = False Then MsgBox "Il ne faut pas essayer de tricher !!!!", vbCritical, "C'e st pas bien !!!" 'Application.Quit 'Cette ligne ferme l'application excel, il faut enlever le ' devant pour la rendre opérationnelle End If End Sub
En espérant que cette solution convienne plus à tes attentes.
Re bonjour Lolote (1 t cette fois..)
Oui, c'est mieux, ça fonctionne parfaitement.... Merci pour toutes ces
infos. J'ai aussi penser tester l'environnement (notre réseau) pour
empêcher le déroulement du prg.
Il me reste à trouver un mot de passe compliqué pour protéger le
tout...
Bonne fin de journée. MA..
Re salut Ma Komba,
Peut être qu'en passant par le biais d'un formulaire cela te conviendra it
mieux.
L'exemple qui suit http://cjoint.com/?gon3jYGTJd te permet de saisir un m ot
de passe, et ferme l'application si le mdp est incorrect.
Pour rendre vraiment opérationnel ce fichier dans les conditions expliq uées
plus haut, une fois que tu as la main tu fais :
ALT+F11 pour passer en mode VBA et dans le code ci-dessous tu changes les
paramètres que tu veux.
Private Sub Cmd_Valider_Click()
xIci = False
If Txt_Mdp <> "toto" Then 'Ici, c'est le mot de passe
MsgBox "L'application va se fermer !!!!", vbCritical, "ERREUR"
'Application.Quit 'Cette ligne ferme
l'application excel, il faut enlever le ' devant pour la rendre
opérationnelle
Else
xIci = True
Unload Me
Sheets("Feuil1").Select
End If
End Sub
Private Sub UserForm_Terminate()
If xIci = False Then
MsgBox "Il ne faut pas essayer de tricher !!!!", vbCritical, "C'e st
pas bien !!!"
'Application.Quit 'Cette ligne ferme
l'application excel, il faut enlever le ' devant pour la rendre
opérationnelle
End If
End Sub
En espérant que cette solution convienne plus à tes attentes.
Re bonjour Lolote (1 t cette fois..) Oui, c'est mieux, ça fonctionne parfaitement.... Merci pour toutes ces infos. J'ai aussi penser tester l'environnement (notre réseau) pour empêcher le déroulement du prg. Il me reste à trouver un mot de passe compliqué pour protéger le tout... Bonne fin de journée. MA..
Re salut Ma Komba,
Peut être qu'en passant par le biais d'un formulaire cela te conviendra it mieux. L'exemple qui suit http://cjoint.com/?gon3jYGTJd te permet de saisir un m ot de passe, et ferme l'application si le mdp est incorrect. Pour rendre vraiment opérationnel ce fichier dans les conditions expliq uées plus haut, une fois que tu as la main tu fais : ALT+F11 pour passer en mode VBA et dans le code ci-dessous tu changes les paramètres que tu veux.
Private Sub Cmd_Valider_Click() xIci = False If Txt_Mdp <> "toto" Then 'Ici, c'est le mot de passe MsgBox "L'application va se fermer !!!!", vbCritical, "ERREUR" 'Application.Quit 'Cette ligne ferme l'application excel, il faut enlever le ' devant pour la rendre opérationnelle Else xIci = True Unload Me Sheets("Feuil1").Select End If End Sub
Private Sub UserForm_Terminate() If xIci = False Then MsgBox "Il ne faut pas essayer de tricher !!!!", vbCritical, "C'e st pas bien !!!" 'Application.Quit 'Cette ligne ferme l'application excel, il faut enlever le ' devant pour la rendre opérationnelle End If End Sub
En espérant que cette solution convienne plus à tes attentes.
ThierryP
Bonjour ma_komba,
Peut-être une autre possibilité en récupérant le nom d'utilisateur (login Windows). Fonctionne sous W2K, XP????
Dans un module standard :
Global Const App_Password = "toto" Private Declare Function GetUserName Lib "advapi32.dll" Alias "GetUserNameA" _ (ByVal lpBuffer As String, nSize As Long) As Long
Sub ControleUtilisateur() Dim NomUser As String NomUser = String(100, Chr$(0)) GetUserName NomUser, 100 utilisateur = Left$(NomUser, InStr(NomUser, Chr$(0)) - 1) End Sub
Dans le workbook_open : Call ControleUtilisateur If utilisateur <> "toto" Then activeworkbook.close false
En protégeant le code VBA par mot de passe, ça devrait le faire si tu n'as pas affaire à des costauds !!
Re bonjour Lolote (1 t cette fois..) Oui, c'est mieux, ça fonctionne parfaitement.... Merci pour toutes ces infos. J'ai aussi penser tester l'environnement (notre réseau) pour empêcher le déroulement du prg. Il me reste à trouver un mot de passe compliqué pour protéger le tout... Bonne fin de journée. MA..
--
@+ thierryp ----------------- Passer pour un idiot aux yeux d'un imbécile est une volupté de fin gourmet - G. Courteline
Bonjour ma_komba,
Peut-être une autre possibilité en récupérant le nom d'utilisateur
(login Windows). Fonctionne sous W2K, XP????
Dans un module standard :
Global Const App_Password = "toto"
Private Declare Function GetUserName Lib "advapi32.dll" Alias
"GetUserNameA" _
(ByVal lpBuffer As String, nSize As Long) As Long
Sub ControleUtilisateur()
Dim NomUser As String
NomUser = String(100, Chr$(0))
GetUserName NomUser, 100
utilisateur = Left$(NomUser, InStr(NomUser, Chr$(0)) - 1)
End Sub
Dans le workbook_open :
Call ControleUtilisateur
If utilisateur <> "toto" Then activeworkbook.close false
En protégeant le code VBA par mot de passe, ça devrait le faire si tu
n'as pas affaire à des costauds !!
Re bonjour Lolote (1 t cette fois..)
Oui, c'est mieux, ça fonctionne parfaitement.... Merci pour toutes ces
infos. J'ai aussi penser tester l'environnement (notre réseau) pour
empêcher le déroulement du prg.
Il me reste à trouver un mot de passe compliqué pour protéger le
tout...
Bonne fin de journée. MA..
--
@+ thierryp
-----------------
Passer pour un idiot aux yeux d'un imbécile est une volupté de fin
gourmet - G. Courteline
Peut-être une autre possibilité en récupérant le nom d'utilisateur (login Windows). Fonctionne sous W2K, XP????
Dans un module standard :
Global Const App_Password = "toto" Private Declare Function GetUserName Lib "advapi32.dll" Alias "GetUserNameA" _ (ByVal lpBuffer As String, nSize As Long) As Long
Sub ControleUtilisateur() Dim NomUser As String NomUser = String(100, Chr$(0)) GetUserName NomUser, 100 utilisateur = Left$(NomUser, InStr(NomUser, Chr$(0)) - 1) End Sub
Dans le workbook_open : Call ControleUtilisateur If utilisateur <> "toto" Then activeworkbook.close false
En protégeant le code VBA par mot de passe, ça devrait le faire si tu n'as pas affaire à des costauds !!
Re bonjour Lolote (1 t cette fois..) Oui, c'est mieux, ça fonctionne parfaitement.... Merci pour toutes ces infos. J'ai aussi penser tester l'environnement (notre réseau) pour empêcher le déroulement du prg. Il me reste à trouver un mot de passe compliqué pour protéger le tout... Bonne fin de journée. MA..
--
@+ thierryp ----------------- Passer pour un idiot aux yeux d'un imbécile est une volupté de fin gourmet - G. Courteline
ma_komba
Bonjour Thierry, Merci pour la solution, mon problème avec celle-ci est que j'ai plusieurs différents utilisateurs (30-40).. Je vais combiner la saisie d'un mot de passe avec une vérification du domaine. si d'aventure une personne donne le classeur et le mot de passe à la concurence, celui-ci ne pourra pas être utilisé... si ce ne sont pas des "costaud".. :-)) Vérification du domaine : Dim ObjNet Set ObjNet = CreateObject("Wscript.Network") If Txt_Mdp <> "monMDP" Or ObjNet.userdomain <> "mondomaine" Then MsgBox "Document protégé par monEntreprise", vbCritical, "ERREUR" Application.DisplayAlerts = False Application.Quit Else ....... End If ...... Merci à tous les deux. Bonne fin de semaine. MA
Bonjour ma_komba,
Peut-être une autre possibilité en récupérant le nom d'utilisateur (login Windows). Fonctionne sous W2K, XP????
Dans un module standard :
Global Const App_Password = "toto" Private Declare Function GetUserName Lib "advapi32.dll" Alias "GetUserNameA" _ (ByVal lpBuffer As String, nSize As Long) As Long
Sub ControleUtilisateur() Dim NomUser As String NomUser = String(100, Chr$(0)) GetUserName NomUser, 100 utilisateur = Left$(NomUser, InStr(NomUser, Chr$(0)) - 1) End Sub
Dans le workbook_open : Call ControleUtilisateur If utilisateur <> "toto" Then activeworkbook.close false
En protégeant le code VBA par mot de passe, ça devrait le faire si tu n'as pas affaire à des costauds !! Thierry
Bonjour Thierry,
Merci pour la solution, mon problème avec celle-ci est que j'ai
plusieurs différents utilisateurs (30-40)..
Je vais combiner la saisie d'un mot de passe avec une vérification du
domaine. si d'aventure une personne donne le classeur et le mot de
passe à la concurence, celui-ci ne pourra pas être utilisé... si ce
ne sont pas des "costaud".. :-))
Vérification du domaine :
Dim ObjNet
Set ObjNet = CreateObject("Wscript.Network")
If Txt_Mdp <> "monMDP" Or ObjNet.userdomain <> "mondomaine" Then
MsgBox "Document protégé par monEntreprise", vbCritical,
"ERREUR"
Application.DisplayAlerts = False
Application.Quit
Else
.......
End If
......
Merci à tous les deux. Bonne fin de semaine. MA
Bonjour ma_komba,
Peut-être une autre possibilité en récupérant le nom d'utilisateur
(login Windows). Fonctionne sous W2K, XP????
Dans un module standard :
Global Const App_Password = "toto"
Private Declare Function GetUserName Lib "advapi32.dll" Alias
"GetUserNameA" _
(ByVal lpBuffer As String, nSize As Long) As Long
Sub ControleUtilisateur()
Dim NomUser As String
NomUser = String(100, Chr$(0))
GetUserName NomUser, 100
utilisateur = Left$(NomUser, InStr(NomUser, Chr$(0)) - 1)
End Sub
Dans le workbook_open :
Call ControleUtilisateur
If utilisateur <> "toto" Then activeworkbook.close false
En protégeant le code VBA par mot de passe, ça devrait le faire si tu
n'as pas affaire à des costauds !!
Thierry
Bonjour Thierry, Merci pour la solution, mon problème avec celle-ci est que j'ai plusieurs différents utilisateurs (30-40).. Je vais combiner la saisie d'un mot de passe avec une vérification du domaine. si d'aventure une personne donne le classeur et le mot de passe à la concurence, celui-ci ne pourra pas être utilisé... si ce ne sont pas des "costaud".. :-)) Vérification du domaine : Dim ObjNet Set ObjNet = CreateObject("Wscript.Network") If Txt_Mdp <> "monMDP" Or ObjNet.userdomain <> "mondomaine" Then MsgBox "Document protégé par monEntreprise", vbCritical, "ERREUR" Application.DisplayAlerts = False Application.Quit Else ....... End If ...... Merci à tous les deux. Bonne fin de semaine. MA
Bonjour ma_komba,
Peut-être une autre possibilité en récupérant le nom d'utilisateur (login Windows). Fonctionne sous W2K, XP????
Dans un module standard :
Global Const App_Password = "toto" Private Declare Function GetUserName Lib "advapi32.dll" Alias "GetUserNameA" _ (ByVal lpBuffer As String, nSize As Long) As Long
Sub ControleUtilisateur() Dim NomUser As String NomUser = String(100, Chr$(0)) GetUserName NomUser, 100 utilisateur = Left$(NomUser, InStr(NomUser, Chr$(0)) - 1) End Sub
Dans le workbook_open : Call ControleUtilisateur If utilisateur <> "toto" Then activeworkbook.close false
En protégeant le code VBA par mot de passe, ça devrait le faire si tu n'as pas affaire à des costauds !! Thierry