Erreur dans l'utilisation de Vlookup avec la classe worksheetFunction

  • Initiateur de la discussion Initiateur de la discussion piki
  • 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 !

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:
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
 
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+
 
- 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

Discussions similaires

Retour