Erreur dans l'utilisation de Vlookup avec la classe worksheetFunction

piki

XLDnaute Nouveau
Bonjour,
J'ai besoin de vos aides les amis, alors je suis en train de programmer une application de gestion de stock, et j'ai été obligée d'utiliser la fonction RechercheV en code vba donc le "Application.worksheetFunction.Vlookup" mais malheureusement j'ai reçu ça "erreur d'éxécussion'1400'" Impossible de lire la propriété Vlookup avec la classe worksheetFunction !!!!!
y'a-t-il quelqu'un pouvant m'aider s'il vous plait?
Merci d'avance.
 
Dernière édition:

Staple1600

XLDnaute Barbatruc
Bonjour

piki
Voici un petit exemple d'utilisation de RECHERCHEV en VBA
Lance la macro nommée test sur une feuille de classeur vierge.
En espérant que cela éclaire ta lanterne ;)
Code:
Sub test()
gdatas
MsgBox "La base de test est crée." & Chr(13) & "Test de RECHERCHEV en VBA", vbOKOnly
'test 1
[A5:B5].Font.Bold = True
MsgBox "Valeur cherchée: 105" & Chr(13) & "Valeur renvoyée: " & Application.VLookup(105, [zBASE], 2, 0), vbInformation, "Test 1"
'test 2
[A9:B9].Font.Bold = True
MsgBox "Valeur cherchée: 109" & Chr(13) & "Valeur renvoyée en D1", vbInformation, "Test 2"
[D1] = Application.VLookup(109, [zBASE], 2, 0)
End Sub
Private Sub gdatas()
'Cette macro ne sert qu'à créer un petit jeu d'exemples
Columns("A:D").Clear
With Range("A1:A15")
  .Formula = "=100+ROW()"
  .Offset(, 1).Formula = "=REPT(CHAR(64+ROW()),3)&ROW()"
  .Resize(, 2).Value = .Resize(, 2).Value
  .Resize(, 2).Name = "zBASE"
End With
End Sub
 

job75

XLDnaute Barbatruc
Bonjour piki, JM,

En effet si la valeur cherchée x n'existe pas dans la 1ère colonne de la plage ceci crée toujours un bug en VBA :
VB:
Dim x As Variant, v As Variant
x = "aaa"
v = Application.WorksheetFunction.VLookup(x, [A5:B20], 2, 0)
If Not IsError(v) Then MsgBox v
Pour l'éviter il suffit de ne pas utiliser WorksheetFunction :
VB:
Dim x As Variant, v As Variant
x = "aaa"
v = Application.VLookup(x, [A5:B20], 2, 0)
If Not IsError(v) Then MsgBox v
A+
 

Discussions similaires


Haut Bas