Twitter iPhone pliant OnePlus 11 PS5 Disney+ Orange Livebox Windows 11

Validation en fonction de l'utilisateur

9 réponses
Avatar
Lulu la Nantaise
Bonjour à toutes et à tous,
Le fichier étant en réseau, est-il possible d'utiliser Données\Validation 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

9 réponses

Avatar
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




Avatar
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" wrote:
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


Avatar
SB
Merci, c'est exactement ça !
"JB" a écrit dans le message de news:

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" wrote:
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


Avatar
Lulu la Nantaise
Merci pour ces conseils, JB m'a trouvé la solution.
Lulu
"LSteph" a écrit dans le message de news:

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




Avatar
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" a écrit dans le message de news:

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" wrote:
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


Avatar
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" wrote:
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" a écrit dans le message de news:

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" wrote:



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 -



Avatar
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" a écrit dans le message de news:

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








Avatar
Lulu la Nantaise
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" a écrit dans le message de news:

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" a écrit dans le message de news:

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









Avatar
Lulu la Nantaise
Merci encore
Lulu
"JB" a écrit dans le message de news:

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" wrote:
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" a écrit dans le message de news:

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" wrote:



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 -