OVH Cloud OVH Cloud

Identification par vba

6 réponses
Avatar
Angelus
Bonjour
je voudrai mettre dans vba à l'ouverture une identification de la personne
connecté sur un classeur en réseau afin de le personnalisé.

si la personne connectée est M 111 alors déplacement autorisé dans les
cellules B4 à B17 sur la feuille1, C18 à C 24 sur la feuille2.
si la personne connectée est M 222 alors déplacement autorisé dans les
cellules D4 à D20 sur la feuille1, D8 à D 12 sur la feuille2.
...
et que si la personne connecté n'est pas M 111, M 222 ou M 333 alors
fermeture du classeur.

Merci.

6 réponses

Avatar
FxM
Bonjour,

... et tu nous proposes quel début de solution, de code, ... ?

Appréciant les bienpolitus (chouette), je dirais que le principe est de
"détecter qui" pour "appliquer quelque chose".

Le "détecter qui" va varier selon le mode d'identification.
Si tu vois par rapport au nom d'utilisateur du PC, c'est du coté de
if application.username = "toto" then
Attention, Y utilisant le micro de X aura les droits de X.

Si tu vois dans un userform ou inputbox, c'est plutot
if textbox1 = "toto" then
ou
rep = inputbox(...)
if rep = "toto" then

En guise de "appliquer quelque chose", ça devrait ressembler à
sheets("Feuil1").range("B4:B17").cells.unlock
(à vérifier avec l'enregistreur de macros).

Enfin, pour quitter sans rien faire, ça sent le
Thisworkbook.close false

@+
FxM



Bonjour
je voudrai mettre dans vba à l'ouverture une identification de la personne
connecté sur un classeur en réseau afin de le personnalisé.

si la personne connectée est M 111 alors déplacement autorisé dans les
cellules B4 à B17 sur la feuille1, C18 à C 24 sur la feuille2.
si la personne connectée est M 222 alors déplacement autorisé dans les
cellules D4 à D20 sur la feuille1, D8 à D 12 sur la feuille2.
....
et que si la personne connecté n'est pas M 111, M 222 ou M 333 alors
fermeture du classeur.

Merci.


Avatar
Angelus
Bonjour FxM
Je c'est que je fait pas dans la simplicité lol :)
En faite j'ai vu sur le site excelabo dans le dossier à télécharger :"N°461
: De Michel Pierron, mp-menusdansuserform" que l'on pouvez identifier la
personne conecter à l'aide de

Private Declare Function GetUserName Lib "advapi32.dll" Alias "GetUserNameA"
(ByVal lpBuffer As String, nSize As Long) As Long

J'aimerai utilisé cette fonction pour faire un si utilisateur X alors
aplliquer tel commande.

Je c pas si je m'explique bien. c'est plus clair comme ça?
Merci



Bonjour,

.... et tu nous proposes quel début de solution, de code, ... ?

Appréciant les bienpolitus (chouette), je dirais que le principe est de
"détecter qui" pour "appliquer quelque chose".

Le "détecter qui" va varier selon le mode d'identification.
Si tu vois par rapport au nom d'utilisateur du PC, c'est du coté de
if application.username = "toto" then
Attention, Y utilisant le micro de X aura les droits de X.

Si tu vois dans un userform ou inputbox, c'est plutot
if textbox1 = "toto" then
ou
rep = inputbox(...)
if rep = "toto" then

En guise de "appliquer quelque chose", ça devrait ressembler à
sheets("Feuil1").range("B4:B17").cells.unlock
(à vérifier avec l'enregistreur de macros).

Enfin, pour quitter sans rien faire, ça sent le
Thisworkbook.close false

@+
FxM



Bonjour
je voudrai mettre dans vba à l'ouverture une identification de la personne
connecté sur un classeur en réseau afin de le personnalisé.

si la personne connectée est M 111 alors déplacement autorisé dans les
cellules B4 à B17 sur la feuille1, C18 à C 24 sur la feuille2.
si la personne connectée est M 222 alors déplacement autorisé dans les
cellules D4 à D20 sur la feuille1, D8 à D 12 sur la feuille2.
....
et que si la personne connecté n'est pas M 111, M 222 ou M 333 alors
fermeture du classeur.

Merci.









Avatar
JB
Bonjour,

-Enlève la protection du champ de l'utilisateur connecté.
-les noms des champs sont les noms des users réseau.

http://cjoint.com/?jvnodhAeFb

Private Sub Workbook_Open()
Sheets(1).Unprotect Password:=""
nomUser = Environ("username")
Sheets(1).Range(nomUser).Locked = False
Sheets(1).Protect Password:=""
End Sub

Private Sub Workbook_BeforeSave(ByVal SaveAsUI As Boolean, Cancel As
Boolean)
Sheets(1).Unprotect Password:=""
Sheets(1).Cells.Locked = True
Sheets(1).Protect Password:=""
End Sub

JB


Bonjour
je voudrai mettre dans vba à l'ouverture une identification de la perso nne
connecté sur un classeur en réseau afin de le personnalisé.

si la personne connectée est M 111 alors déplacement autorisé dans les
cellules B4 à B17 sur la feuille1, C18 à C 24 sur la feuille2.
si la personne connectée est M 222 alors déplacement autorisé dans les
cellules D4 à D20 sur la feuille1, D8 à D 12 sur la feuille2.
...
et que si la personne connecté n'est pas M 111, M 222 ou M 333 alors
fermeture du classeur.

Merci.


Avatar
JB
http://cjoint.com/?jvnzwnSGRT

Private Sub Workbook_Open()
Sheets(1).Unprotect Password:=""
nomUser = Environ("username")
On Error Resume Next
Sheets(1).Range(nomUser).Locked = False
If Err = 0 Then
Sheets(1).Protect Password:=""
ActiveSheet.EnableSelection = xlUnlockedCells
Else
MsgBox "Bye"
'ActiveWorkbook.Close
End If
End Sub

Private Sub Workbook_BeforeSave(ByVal SaveAsUI As Boolean, Cancel As
Boolean)
Sheets(1).Unprotect Password:=""
Sheets(1).Cells.Locked = True
Sheets(1).Protect Password:=""
End Sub

JB


Bonjour
je voudrai mettre dans vba à l'ouverture une identification de la perso nne
connecté sur un classeur en réseau afin de le personnalisé.

si la personne connectée est M 111 alors déplacement autorisé dans les
cellules B4 à B17 sur la feuille1, C18 à C 24 sur la feuille2.
si la personne connectée est M 222 alors déplacement autorisé dans les
cellules D4 à D20 sur la feuille1, D8 à D 12 sur la feuille2.
...
et que si la personne connecté n'est pas M 111, M 222 ou M 333 alors
fermeture du classeur.

Merci.


Avatar
Angelus

Bonjour
je voudrai mettre dans vba à l'ouverture une identification de la personne
connecté sur un classeur en réseau afin de le personnalisé.

si la personne connectée est M 111 alors déplacement autorisé dans les
cellules B4 à B17 sur la feuille1, C18 à C 24 sur la feuille2.
si la personne connectée est M 222 alors déplacement autorisé dans les
cellules D4 à D20 sur la feuille1, D8 à D 12 sur la feuille2.
...
et que si la personne connecté n'est pas M 111, M 222 ou M 333 alors
fermeture du classeur.

Merci.


Avatar
Angelus
Merci FxM et JB

J'ai compilé un commande qui fonctionne :

If Application.UserName = "Utilisateur1" Then
Worksheets(I).ScrollArea = "d4:f8"
ElseIf Application.UserName = "Utilisateur2" Then
Worksheets(I).ScrollArea = "e4:f8"
ElseIf Application.UserName = "Utilisateur3" Then
Worksheets(I).ScrollArea = "d4:k8"
ElseIf Application.UserName = "Utilisateur4" Then
Worksheets(I).ScrollArea = "d1:f8"
ElseIf Application.UserName = "Utilisateur5" Then
Worksheets(I).ScrollArea = "a4:f8"
ElseIf Application.UserName = "Utilisateur6" Then
Worksheets(I).ScrollArea = "b4:c8"
Else
MsgBox "Pas d'autorisation d'accès"
'ThisWorkbook.Close
End If