recupere valeur valeur dans une range

faamugol

XLDnaute Nouveau
Bonjour,

Avec le code suivant je voudrais recuperer le nom de la personne correspondant au user.

Mais à chaque fois j'ai le même nom qui revient malgé un user different.
Exemple avec le user id 926288, j'ai MICK comm resultat alors que je devrais avoir Alain.

Code:
Private Sub Worksheet_Change(ByVal Target As Range)
Dim user

If ActiveCell.Value = "BXL" Or ActiveCell.Value = "GNT" Or ActiveCell.Value = "APN" Then
   
  user = ThisWorkbook.Application.UserName

  ActiveCell.Offset(0, 2).Value = Application.VLookup(user, Range("O33:P38"), 2)
  
End If

End Sub


Range("O33:p38")

926288 Alain
926321 FREDERIC
926053 JEROME
926259 MICK
926298 RAF
926327 VALERIE


Est ce possible de remplacer cette range() par un nom que je definit zet attribue au renage

Merci d'avance pour votre aide.
 

jp14

XLDnaute Barbatruc
Re : recupere valeur valeur dans une range

Bonjour

J'ai remplacé la fonction VLookup par find

Code:
Option Explicit
Dim flag As Boolean

Private Sub Worksheet_Change(ByVal Target As Range)
Dim user
Dim cel As Range

If flag = True Then Exit Sub
On Error GoTo suite
If Target.Value = "BXL" Or Target.Value = "GNT" Or Target.Value = "APN" Then
On Error GoTo 0
flag = True
  user = ThisWorkbook.Application.UserName


Set cel = Sheets(ActiveSheet.Name).Range("o33:p38").Find(user, LookIn:=xlValues, SearchOrder:=xlByColumns, lookat:=xlWhole)

Target.Offset(0, 2).Value = cel.Offset(0, 1)

End If
flag = False
suite:
flag = False
End Sub

J'ai rajouté un flag pour éviter la réentrance et on error goto pour éviter les messages d'erreurs.

A tester

JP
 

faamugol

XLDnaute Nouveau
Re : recupere valeur valeur dans une range

Merci JP14 pour la réponse,

ca fonctionne ..merci à tous le monde,

je voudrais savoir s'il est alors possible de donner un nom à la Range
Range("o33: p38"). De cette facon si la Range("o33:p38") s'agrandit, je ne vais pas toucher le code mais uniquement modifier un endroit.

Merci d'avance,
 
Dernière édition:

jp14

XLDnaute Barbatruc
Re : recupere valeur valeur dans une range

Bonsoir

En écrivant
Set cel = Sheets(ActiveSheet.Name).Range("essai").Find(user, LookIn:=xlValues, SearchOrder:=xlByColumns, lookat:=xlWhole)

"essai" étant le nom d'une zone avec la formule DECALER
comme ci dessous
=DECALER(Feuil1!$A$8;;;NBVAL(Feuil1!$A:$A))

A modifier en fonction de l'application

JP