Validation en fonction de l'utilisateur

Le
Lulu la Nantaise
Bonjour à toutes et à tous,
Le fichier étant en réseau, est-il possible d'utiliser DonnéesValidation en
fonction de l'utilisateur réseau Par Exemple A1 doit être inférieure à 5 si
"Username"="Durant" et 10 si "Username"="Dupont" ?
Merci de votre aide,
Lulu
Vidéos High-Tech et Jeu Vidéo
Téléchargements
Vos réponses
Gagnez chaque mois un abonnement Premium avec GNT : Inscrivez-vous !
Trier par : date / pertinence
LSteph
Le #4913871
Bonjour,

(je vois pas bien pourquoi utiliser données validation).

Voici un exemple VBA plus bas pour fixer A1 à l'ouverture en fonction de
l'utilisateur, mais cela requiert quelques précautions, à savoir ceci:

on peut avoir username dans excel mais c'est celui saisi par
l'utilisateur, il peut donc ne pas être renseigné ou être modifié.

Il est donc préférable d'utiliser Environ("UserName")
qui correspont à ce que renverrait l'API GetUserName
soit le nom login de session de l'utilisateur.

En vba tu peux dans le thisworkbook de ton classeur utiliser
l'évennement WorkBook_Open pour fixer [A1]
à l'ouverture, (faudra seulement qu'user active les macros)

Attention c'est sensible à la casse, j'ai mis lcase dans l'exemple
pour convertir en minuscules avant le test, reste que c'est un peu
hasardeux on ne sait pas si le nom est utilisé en ntier et si on a pas
mis le prénom avant et avec ou sans accent.Bref faut connaître
précisément ces UserName pour les écrire dans le code, je n'ai utilisé
comme tu le vois que les 4 premiers caractères (Left), à adapter.

''''''dans le thisworkbook du classeur
Private Sub Workbook_Open()
MsgBox "Bonjour " & Environ("UserName")
Select Case LCase(Left(Environ("UserName"), 4))
Case "stép"
[a1] = 7
Case "dura"
[a1] = 5
Case "dupo"
[a1] = 10
Case Else
[a1] = 1
End Select
End Sub
'''''''''''''''''''''''''''''''''''

'Cordialement

'LSteph


Bonjour à toutes et à tous,
Le fichier étant en réseau, est-il possible d'utiliser DonnéesValidation en
fonction de l'utilisateur réseau Par Exemple A1 doit être inférieure à 5 si
"Username"="Durant" et 10 si "Username"="Dupont" ?
Merci de votre aide,
Lulu




JB
Le #4913811
Bonjour,

Dans un module:

Function nomUser()
nomUser = Environ("username")
End Function

En B1: =Nomuser()

En C6:
Données/Validation/Perso

=SI($B$1="Boisgontier";C6<5;SI(B1="toto";C6<10;C6<100))

http://cjoint.com/?gtkKZgcytA

JB

On 19 juin, 08:22, "Lulu la Nantaise"
Bonjour à toutes et à tous,
Le fichier étant en réseau, est-il possible d'utiliser DonnéesVali dation en
fonction de l'utilisateur réseau Par Exemple A1 doit être inférieur e à 5 si
"Username"="Durant" et 10 si "Username"="Dupont" ?
Merci de votre aide,
Lulu


SB
Le #4913261
Merci, c'est exactement ça !
"JB"
Bonjour,

Dans un module:

Function nomUser()
nomUser = Environ("username")
End Function

En B1: =Nomuser()

En C6:
Données/Validation/Perso

=SI($B$1="Boisgontier";C6<5;SI(B1="toto";C6<10;C6<100))

http://cjoint.com/?gtkKZgcytA

JB

On 19 juin, 08:22, "Lulu la Nantaise"
Bonjour à toutes et à tous,
Le fichier étant en réseau, est-il possible d'utiliser DonnéesValidation
en
fonction de l'utilisateur réseau Par Exemple A1 doit être inférieure à 5
si
"Username"="Durant" et 10 si "Username"="Dupont" ?
Merci de votre aide,
Lulu


Lulu la Nantaise
Le #4913251
Merci pour ces conseils, JB m'a trouvé la solution.
Lulu
"LSteph"
Bonjour,

(je vois pas bien pourquoi utiliser données validation).

Voici un exemple VBA plus bas pour fixer A1 à l'ouverture en fonction de
l'utilisateur, mais cela requiert quelques précautions, à savoir ceci:

on peut avoir username dans excel mais c'est celui saisi par
l'utilisateur, il peut donc ne pas être renseigné ou être modifié.

Il est donc préférable d'utiliser Environ("UserName")
qui correspont à ce que renverrait l'API GetUserName
soit le nom login de session de l'utilisateur.

En vba tu peux dans le thisworkbook de ton classeur utiliser l'évennement
WorkBook_Open pour fixer [A1]
à l'ouverture, (faudra seulement qu'user active les macros)

Attention c'est sensible à la casse, j'ai mis lcase dans l'exemple
pour convertir en minuscules avant le test, reste que c'est un peu
hasardeux on ne sait pas si le nom est utilisé en ntier et si on a pas mis
le prénom avant et avec ou sans accent.Bref faut connaître précisément ces
UserName pour les écrire dans le code, je n'ai utilisé comme tu le vois
que les 4 premiers caractères (Left), à adapter.

''''''dans le thisworkbook du classeur
Private Sub Workbook_Open()
MsgBox "Bonjour " & Environ("UserName")
Select Case LCase(Left(Environ("UserName"), 4))
Case "stép"
[a1] = 7
Case "dura"
[a1] = 5
Case "dupo"
[a1] = 10
Case Else
[a1] = 1
End Select
End Sub
'''''''''''''''''''''''''''''''''''

'Cordialement

'LSteph


Bonjour à toutes et à tous,
Le fichier étant en réseau, est-il possible d'utiliser DonnéesValidation
en fonction de l'utilisateur réseau Par Exemple A1 doit être inférieure à
5 si "Username"="Durant" et 10 si "Username"="Dupont" ?
Merci de votre aide,
Lulu




Lulu la Nantaise
Le #4913231
Merci JB,
Y a t il un pb à tout mettre en macro ? :
Function nomUser()
nomUser = Environ("username")
Range("D12").Select
With Selection.Validation
.Delete
.Add Type:=xlValidateWholeNumber, AlertStyle:=xlValidAlertStop,
Operator:=xlBetween, Formula1:="1", Formula2:="5"
.IgnoreBlank = False
.InCellDropdown = True
.InputTitle = ""
.ErrorTitle = ""
.InputMessage = ""
.ErrorMessage = ""
.ShowInput = True
.ShowError = True
End With

If nomUser ="Toto" then
With Selection.Validation
.Delete
.Add Type:=xlValidateWholeNumber, AlertStyle:=xlValidAlertStop,
Operator:=xlBetween, Formula1:="1", Formula2:="3"
.IgnoreBlank = False
.InCellDropdown = True
.InputTitle = ""
.ErrorTitle = ""
.InputMessage = ""
.ErrorMessage = ""
.ShowInput = True
.ShowError = True
End With
End If
End Function


Merci de ton aide

Lulu


"JB"
Bonjour,

Dans un module:

Function nomUser()
nomUser = Environ("username")
End Function

En B1: =Nomuser()

En C6:
Données/Validation/Perso

=SI($B$1="Boisgontier";C6<5;SI(B1="toto";C6<10;C6<100))

http://cjoint.com/?gtkKZgcytA

JB

On 19 juin, 08:22, "Lulu la Nantaise"
Bonjour à toutes et à tous,
Le fichier étant en réseau, est-il possible d'utiliser DonnéesValidation
en
fonction de l'utilisateur réseau Par Exemple A1 doit être inférieure à 5
si
"Username"="Durant" et 10 si "Username"="Dupont" ?
Merci de votre aide,
Lulu


JB
Le #4913191
Dans un module. Cette macro est exécutée à l'ouverture du classeur.

http://cjoint.com/?gtt0JyuVGV

Sub auto_open()
nomUser = Environ("username")
Range("D12").Select
With Selection.Validation
.Delete
.Add Type:=xlValidateWholeNumber,
AlertStyle:=xlValidAlertStop, _
Operator:=xlBetween, Formula1:="1", Formula2:="5"
.IgnoreBlank = False
.InCellDropdown = True
.InputTitle = ""
.ErrorTitle = ""
.InputMessage = ""
.ErrorMessage = ""
.ShowInput = True
.ShowError = True
End With

If nomUser = "Boisgontier" Then
With Selection.Validation
.Delete
.Add Type:=xlValidateWholeNumber,
AlertStyle:=xlValidAlertStop, _
Operator:=xlBetween, Formula1:="1", Formula2:="3"
.IgnoreBlank = False
.InCellDropdown = True
.InputTitle = ""
.ErrorTitle = ""
.InputMessage = ""
.ErrorMessage = ""
.ShowInput = True
.ShowError = True
End With
End If
End Sub

JB

On 19 juin, 19:23, "Lulu la Nantaise"
Merci JB,
Y a t il un pb à tout mettre en macro ? :
Function nomUser()
nomUser = Environ("username")
Range("D12").Select
With Selection.Validation
.Delete
.Add Type:=xlValidateWholeNumber, AlertStyle:=xlValidAlertSto p,
Operator:=xlBetween, Formula1:="1", Formula2:="5"
.IgnoreBlank = False
.InCellDropdown = True
.InputTitle = ""
.ErrorTitle = ""
.InputMessage = ""
.ErrorMessage = ""
.ShowInput = True
.ShowError = True
End With

If nomUser ="Toto" then
With Selection.Validation
.Delete
.Add Type:=xlValidateWholeNumber, AlertStyle:=xlValidAler tStop,
Operator:=xlBetween, Formula1:="1", Formula2:="3"
.IgnoreBlank = False
.InCellDropdown = True
.InputTitle = ""
.ErrorTitle = ""
.InputMessage = ""
.ErrorMessage = ""
.ShowInput = True
.ShowError = True
End With
End If
End Function

Merci de ton aide

Lulu

"JB"
Bonjour,

Dans un module:

Function nomUser()
nomUser = Environ("username")
End Function

En B1: =Nomuser()

En C6:
Données/Validation/Perso

=SI($B$1="Boisgontier";C6<5;SI(B1="toto";C6<10;C6<100))

http://cjoint.com/?gtkKZgcytA

JB

On 19 juin, 08:22, "Lulu la Nantaise"


Bonjour à toutes et à tous,
Le fichier étant en réseau, est-il possible d'utiliser DonnéesVa lidation
en
fonction de l'utilisateur réseau Par Exemple A1 doit être inférie ure à 5
si
"Username"="Durant" et 10 si "Username"="Dupont" ?
Merci de votre aide,
Lulu- Masquer le texte des messages précédents -


- Afficher le texte des messages précédents -



LSteph
Le #4913141
Bonsoir,

Il s'agit d'une solution par VBA ,
si tu lis un rien plus,
certes avec explications pas juste des conseils.

Cordialement.

lSteph

Merci pour ces conseils, JB m'a trouvé la solution.
Lulu
"LSteph"
Bonjour,

(je vois pas bien pourquoi utiliser données validation).

Voici un exemple VBA plus bas pour fixer A1 à l'ouverture en fonction de
l'utilisateur, mais cela requiert quelques précautions, à savoir ceci:

on peut avoir username dans excel mais c'est celui saisi par
l'utilisateur, il peut donc ne pas être renseigné ou être modifié.

Il est donc préférable d'utiliser Environ("UserName")
qui correspont à ce que renverrait l'API GetUserName
soit le nom login de session de l'utilisateur.

En vba tu peux dans le thisworkbook de ton classeur utiliser l'évennement
WorkBook_Open pour fixer [A1]
à l'ouverture, (faudra seulement qu'user active les macros)

Attention c'est sensible à la casse, j'ai mis lcase dans l'exemple
pour convertir en minuscules avant le test, reste que c'est un peu
hasardeux on ne sait pas si le nom est utilisé en ntier et si on a pas mis
le prénom avant et avec ou sans accent.Bref faut connaître précisément ces
UserName pour les écrire dans le code, je n'ai utilisé comme tu le vois
que les 4 premiers caractères (Left), à adapter.

''''''dans le thisworkbook du classeur
Private Sub Workbook_Open()
MsgBox "Bonjour " & Environ("UserName")
Select Case LCase(Left(Environ("UserName"), 4))
Case "stép"
[a1] = 7
Case "dura"
[a1] = 5
Case "dupo"
[a1] = 10
Case Else
[a1] = 1
End Select
End Sub
'''''''''''''''''''''''''''''''''''

'Cordialement

'LSteph


Bonjour à toutes et à tous,
Le fichier étant en réseau, est-il possible d'utiliser DonnéesValidation
en fonction de l'utilisateur réseau Par Exemple A1 doit être inférieure à
5 si "Username"="Durant" et 10 si "Username"="Dupont" ?
Merci de votre aide,
Lulu








Lulu la Nantaise
Le #4912791
Merci beaucoup, j'avais bien tout lu (excuse moi de mon message un peu
pressé), c'était surtout l'histoire de la validation que je cherchais, ce
pour quoi m'a débloqué JB...
En revanche, je vais grandement me servir de ton "select case" que je ne
connaissais pas non plus et qui me sera fort utile.
Merci encore de ton aide
Cordialement,
Lulu
"LSteph"
Bonsoir,

Il s'agit d'une solution par VBA ,
si tu lis un rien plus,
certes avec explications pas juste des conseils.

Cordialement.

lSteph

Merci pour ces conseils, JB m'a trouvé la solution.
Lulu
"LSteph"
Bonjour,

(je vois pas bien pourquoi utiliser données validation).

Voici un exemple VBA plus bas pour fixer A1 à l'ouverture en fonction de
l'utilisateur, mais cela requiert quelques précautions, à savoir ceci:

on peut avoir username dans excel mais c'est celui saisi par
l'utilisateur, il peut donc ne pas être renseigné ou être modifié.

Il est donc préférable d'utiliser Environ("UserName")
qui correspont à ce que renverrait l'API GetUserName
soit le nom login de session de l'utilisateur.

En vba tu peux dans le thisworkbook de ton classeur utiliser
l'évennement WorkBook_Open pour fixer [A1]
à l'ouverture, (faudra seulement qu'user active les macros)

Attention c'est sensible à la casse, j'ai mis lcase dans l'exemple
pour convertir en minuscules avant le test, reste que c'est un peu
hasardeux on ne sait pas si le nom est utilisé en ntier et si on a pas
mis le prénom avant et avec ou sans accent.Bref faut connaître
précisément ces UserName pour les écrire dans le code, je n'ai utilisé
comme tu le vois que les 4 premiers caractères (Left), à adapter.

''''''dans le thisworkbook du classeur
Private Sub Workbook_Open()
MsgBox "Bonjour " & Environ("UserName")
Select Case LCase(Left(Environ("UserName"), 4))
Case "stép"
[a1] = 7
Case "dura"
[a1] = 5
Case "dupo"
[a1] = 10
Case Else
[a1] = 1
End Select
End Sub
'''''''''''''''''''''''''''''''''''

'Cordialement

'LSteph


Bonjour à toutes et à tous,
Le fichier étant en réseau, est-il possible d'utiliser
DonnéesValidation en fonction de l'utilisateur réseau Par Exemple A1
doit être inférieure à 5 si "Username"="Durant" et 10 si
"Username"="Dupont" ?
Merci de votre aide,
Lulu









Lulu la Nantaise
Le #4912781
Merci encore
Lulu
"JB"
Dans un module. Cette macro est exécutée à l'ouverture du classeur.

http://cjoint.com/?gtt0JyuVGV

Sub auto_open()
nomUser = Environ("username")
Range("D12").Select
With Selection.Validation
.Delete
.Add Type:=xlValidateWholeNumber,
AlertStyle:=xlValidAlertStop, _
Operator:=xlBetween, Formula1:="1", Formula2:="5"
.IgnoreBlank = False
.InCellDropdown = True
.InputTitle = ""
.ErrorTitle = ""
.InputMessage = ""
.ErrorMessage = ""
.ShowInput = True
.ShowError = True
End With

If nomUser = "Boisgontier" Then
With Selection.Validation
.Delete
.Add Type:=xlValidateWholeNumber,
AlertStyle:=xlValidAlertStop, _
Operator:=xlBetween, Formula1:="1", Formula2:="3"
.IgnoreBlank = False
.InCellDropdown = True
.InputTitle = ""
.ErrorTitle = ""
.InputMessage = ""
.ErrorMessage = ""
.ShowInput = True
.ShowError = True
End With
End If
End Sub

JB

On 19 juin, 19:23, "Lulu la Nantaise"
Merci JB,
Y a t il un pb à tout mettre en macro ? :
Function nomUser()
nomUser = Environ("username")
Range("D12").Select
With Selection.Validation
.Delete
.Add Type:=xlValidateWholeNumber, AlertStyle:=xlValidAlertStop,
Operator:=xlBetween, Formula1:="1", Formula2:="5"
.IgnoreBlank = False
.InCellDropdown = True
.InputTitle = ""
.ErrorTitle = ""
.InputMessage = ""
.ErrorMessage = ""
.ShowInput = True
.ShowError = True
End With

If nomUser ="Toto" then
With Selection.Validation
.Delete
.Add Type:=xlValidateWholeNumber,
AlertStyle:=xlValidAlertStop,
Operator:=xlBetween, Formula1:="1", Formula2:="3"
.IgnoreBlank = False
.InCellDropdown = True
.InputTitle = ""
.ErrorTitle = ""
.InputMessage = ""
.ErrorMessage = ""
.ShowInput = True
.ShowError = True
End With
End If
End Function

Merci de ton aide

Lulu

"JB"
Bonjour,

Dans un module:

Function nomUser()
nomUser = Environ("username")
End Function

En B1: =Nomuser()

En C6:
Données/Validation/Perso

=SI($B$1="Boisgontier";C6<5;SI(B1="toto";C6<10;C6<100))

http://cjoint.com/?gtkKZgcytA

JB

On 19 juin, 08:22, "Lulu la Nantaise"


Bonjour à toutes et à tous,
Le fichier étant en réseau, est-il possible d'utiliser
DonnéesValidation
en
fonction de l'utilisateur réseau Par Exemple A1 doit être inférieure à 5
si
"Username"="Durant" et 10 si "Username"="Dupont" ?
Merci de votre aide,
Lulu- Masquer le texte des messages précédents -


- Afficher le texte des messages précédents -



Publicité
Poster une réponse
Anonyme