Blocage avec fonction VLOOKUP

Airone784

XLDnaute Occasionnel
Bonjour,

J'ai besoin de votre aide si possible.
J'ai un UF avec une textbox1 et un label1 Lorsque je rentre un nombre dans ma textbox1, je veux rechercher cette valeur dans une liste placée dans la feuille 'feuille_émargement' cellule A4 à B80 et renvoyer la valeur de la colonne B (j'ai appelé cette variable trouvée V). Ensuite je veux que la propriété caption de ma label1 prenne comme valeur la variable V.

Concrètement dans la feuille émargement j'ai une liste de dossard en A et le nom et prénom dans la colonne B. Lorsque je tape un n° dossard dans ma textbox1 de ma UF, je veux obtenir dans ma label1 le nom et prénom du coureur.

Voici mon code tapé dans ma userform :

Private Sub TextBox1_Change()

Dim rech As Integer
Dim zon As Range

rech = UserForm2.TextBox1
zon = Sheets("feuille_émargement").Range("A4:B80")

V = Application.WorksheetFunction.VLookup(rech, zon, 2, False)
UserForm2.Label17.Caption = V
End Sub

Lorsque je tape ce code j'ai un message "erreur d'execution 91" : variable objet ou variable de bloc with non définie. La ligne zon se met en jaune.

Merci d'avance pour votre aide.

A+
 
G

Guest

Guest
Re : Blocage avec fonction VLOOKUP

bonjour,

Ne serait-ce pas l'absence du Set ?
Code:
 Set zon = Sheets("feuille_émargement").Range("A4:B80")

Il faut revoir les bases de la manipulation des variables objets.

A+

[EDIT] Hello JC:):):) efficace? pas en orthographe en tout cas, faut que je revois les bases de français!! Je viens de corriger une GROSSE faute.
 
Dernière modification par un modérateur:

Bebere

XLDnaute Barbatruc
Re : Blocage avec fonction VLOOKUP

bonjour Airone
'donne ce que tu cherches
Function INDEX_EQUIV(PlgRecherche As Range, ValCherchée, PlgEquivalence As Range)
'Alain Vallon, mpfe
With Application
If IsError(.Match(ValCherchée, PlgRecherche, 0)) Then
INDEX_EQUIV = ""
Else
INDEX_EQUIV = .Index(PlgEquivalence, .Match(ValCherchée, PlgRecherche, 0), 2).Value
End If
End With
End Function

'pour appeler
UserForm2.Label17.Caption = INDEX_EQUIV(Sheets("feuille_émargement").Range("B4:B80"),rech, Sheets("feuille_émargement").Range("B4:C80"))
 

Airone784

XLDnaute Occasionnel
Re : Blocage avec fonction VLOOKUP

J'ai essayé avec le set hasco mais ça ne marche pas mieux!!! Dailleurs jai du mal a comprendre lutilité du set pour les variables! Tu peux meclairer hasco???
Ta solution a l'air compliquée bebere, on peut Pas rester sur une solution avec vlookup???? JCGL Je mets le fichier en rentrant tout a l'heure. Merci des coups de main en tout cas.
 
G

Guest

Guest
Re : Blocage avec fonction VLOOKUP

Re,

Si la macro s'arrête toujours sur la ligne :

Code:
zon = Sheets("feuille_émargement").Range("A4:B80")

et que tu as mis le Set (obligatoire pour les variables objets) devant zon :
Code:
 Set zon = Sheets("feuille_émargement").Range("A4:B80")

C'est peut-être alors que le nom te ta feuille est mal orthographiée (présence d'espace dans le nom d'onglet?)

Mais comme le dis JC, pour t'aider un bon fichier serait utile. J'ai pas de boule de cristal:)

A+
 

JCGL

XLDnaute Barbatruc
Re : Blocage avec fonction VLOOKUP

Bonjour à tous,

Il me semble qu'avec ceci cela fonctionne :

VB:
Private Sub TextBox1_Change()

Dim rech As Integer
Dim zon As Range
Dim V As String

rech = UserForm2.TextBox1.Value
Set zon = Sheets("feuille_émargement").Range("A4:B80")

V = Application.WorksheetFunction.VLookup(rech, zon, 2, False)
UserForm2.Label17.Caption = V
End Sub

A + à tous
 

Discussions similaires