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

VLookup(n, Table, 2, False)

2 réponses
Avatar
Jean-Paul V
Bonjour à tous

J’ai dans un Userform un combobox appelé Compositeurs qui alimente la zone
de Texte appelée Compositeur comment alimenter la zone de Texte Prénom grâce
à la table nommée TABLE qui en fonction du Nom donne le Prénom.

De plus je voudrais qu'elle laisse à blanc si le nom n'est pas dans la table
Comment modifier la macro

Private Sub Compositeurs_Change()
Dim p As Range
Me.Compositeur = Compositeurs.Value
n = Compositeurs.Value
p = "=VLOOKUP(n,TABLE,2,FALSE)" 'ne marche pas
p = VLookup(n, Table, 2, False) 'ne marche pas plus
Me.Prénom = p
End Sub

A + j’espère

--
Jean-Paul V

2 réponses

Avatar
MichDenis
Bonjour Jean-Paul,

Un petit exemple :

A ) Observe le nombre de guillements!
B ) Si tu as des doublons, tu obtiendras le résultat de la première occurrence.
C ) tu dois attribuer à la variable "P", le type as variant au cas où Vlookup ne trouve
pas.
'------------------------------------
Sub test()
Dim N As String, P As Variant

N = """diane"""
'OU
'à partir d'une valeur inscrite dans une cellule
N = """" & Range("A3").Value & """"

P = Evaluate("VLOOKUP(" & N & ",TABLE,2,FALSE)") 'ne marche pas
If IsError(P) Then
MsgBox "Pas Trouvé."
Else
MsgBox P
End If

End Sub
'------------------------------------




"Jean-Paul V" a écrit dans le message de groupe de
discussion :
Bonjour à tous

J’ai dans un Userform un combobox appelé Compositeurs qui alimente la zone
de Texte appelée Compositeur comment alimenter la zone de Texte Prénom grâce
à la table nommée TABLE qui en fonction du Nom donne le Prénom.

De plus je voudrais qu'elle laisse à blanc si le nom n'est pas dans la table
Comment modifier la macro

Private Sub Compositeurs_Change()
Dim p As Range
Me.Compositeur = Compositeurs.Value
n = Compositeurs.Value
p = "=VLOOKUP(n,TABLE,2,FALSE)" 'ne marche pas
p = VLookup(n, Table, 2, False) 'ne marche pas plus
Me.Prénom = p
End Sub

A + j’espère

--
Jean-Paul V
Avatar
Jean-Paul V
Merci MichDenis avec votre réponse j'ai trouvé cette solution et ça marche :
Il faut le reconnaitre le nbre de '' il fallait les trouver chapeau bas ...

Private Sub Compositeurs_Change()
Dim N As String, P As Variant
Me.Compositeur = Compositeurs.Value
N = """" & Compositeurs.Value & """"
P = Evaluate("VLOOKUP(" & N & ",TABLE,2,FALSE)")
If IsError(P) Then
MsgBox "Pas Trouvé."
Else
Me.Prénom = P
End If
End Sub

--
Jean-Paul V


"MichDenis" wrote:

Bonjour Jean-Paul,

Un petit exemple :

A ) Observe le nombre de guillements!
B ) Si tu as des doublons, tu obtiendras le résultat de la première occurrence.
C ) tu dois attribuer à la variable "P", le type as variant au cas où Vlookup ne trouve
pas.
'------------------------------------
Sub test()
Dim N As String, P As Variant

N = """diane"""
'OU
'à partir d'une valeur inscrite dans une cellule
N = """" & Range("A3").Value & """"

P = Evaluate("VLOOKUP(" & N & ",TABLE,2,FALSE)") 'ne marche pas
If IsError(P) Then
MsgBox "Pas Trouvé."
Else
MsgBox P
End If

End Sub
'------------------------------------




"Jean-Paul V" a écrit dans le message de groupe de
discussion :
Bonjour à tous

J’ai dans un Userform un combobox appelé Compositeurs qui alimente la zone
de Texte appelée Compositeur comment alimenter la zone de Texte Prénom grâce
à la table nommée TABLE qui en fonction du Nom donne le Prénom.

De plus je voudrais qu'elle laisse à blanc si le nom n'est pas dans la table
Comment modifier la macro

Private Sub Compositeurs_Change()
Dim p As Range
Me.Compositeur = Compositeurs.Value
n = Compositeurs.Value
p = "=VLOOKUP(n,TABLE,2,FALSE)" 'ne marche pas
p = VLookup(n, Table, 2, False) 'ne marche pas plus
Me.Prénom = p
End Sub

A + j’espère

--
Jean-Paul V