Ceci est une page optimisée pour les mobiles. Cliquez sur ce texte pour afficher la vraie page.

recupere valeur valeur dans une range

  • Initiateur de la discussion Initiateur de la discussion faamugol
  • Date de début Date de début

Boostez vos compétences Excel avec notre communauté !

Rejoignez Excel Downloads, le rendez-vous des passionnés où l'entraide fait la force. Apprenez, échangez, progressez – et tout ça gratuitement ! 👉 Inscrivez-vous maintenant !

F

faamugol

Guest
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😛38")

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.
 
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
 
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😛38") s'agrandit, je ne vais pas toucher le code mais uniquement modifier un endroit.

Merci d'avance,
 
Dernière modification par un modérateur:
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
 
- Navigue sans publicité
- Accède à Cléa, notre assistante IA experte Excel... et pas que...
- Profite de fonctionnalités exclusives
Ton soutien permet à Excel Downloads de rester 100% gratuit et de continuer à rassembler les passionnés d'Excel.
Je deviens Supporter XLD
Assurez vous de marquer un message comme solution pour une meilleure transparence.
Les cookies sont requis pour utiliser ce site. Vous devez les accepter pour continuer à utiliser le site. En savoir plus…