XL 2019 Erreur 1004 propriété vlookup

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 !

Dominique-evrard

XLDnaute Nouveau
Bonjour à tous les membres du forum,

Je tenais à vous remercier pour l'occasion que vous nous donner d'exprimer nos soucis à travers cette plateforme.

Mon souci est le suivant, j'ai une base de donnée avec laquelle je veux exécuter une recherche V dans un userform. A chaque fois que je lance le code, j'obtiens le message figurant ci-dessous.

Comment le résoudre s'il vous plaît ?

PS: je suis débutant dans la programmation VBA

je vous mets le fichier en PJ

ffff.PNG
 

Pièces jointes

Bonjour @Dominique-evrard

Je te propose ceci :

VB:
Private Sub Tb1_AfterUpdate()
If WorksheetFunction.CountIf(Sheets("BD").Range("A:A"), Me.Tb1.Value) <> 0 Then
    With Me
        .Tb2 = Application.WorksheetFunction.VLookup(CStr(Me.Tb1), Sheets("BD").Range("Tbase"), 2, 0)
        .Tb3 = Application.WorksheetFunction.VLookup(CStr(Me.Tb1), Sheets("BD").Range("Tbase"), 3, 0)
        .Tb4 = Application.WorksheetFunction.VLookup(CStr(Me.Tb1), Sheets("BD").Range("Tbase"), 4, 0)
        .Tb5 = Application.WorksheetFunction.VLookup(CStr(Me.Tb1), Sheets("BD").Range("Tbase"), 5, 0)
        .Tb6 = Application.WorksheetFunction.VLookup(CStr(Me.Tb1), Sheets("BD").Range("Tbase"), 6, 0)
    End With
Else
    MsgBox "Cette immat n'existe pas", vbInformation + vbOKOnly, "Avertissement"
End If
End Sub

*Merci de ton retour

@Phil69970
 
Bonjour @Dominique-evrard

Je te propose ceci :

VB:
Private Sub Tb1_AfterUpdate()
If WorksheetFunction.CountIf(Sheets("BD").Range("A:A"), Me.Tb1.Value) <> 0 Then
    With Me
        .Tb2 = Application.WorksheetFunction.VLookup(CStr(Me.Tb1), Sheets("BD").Range("Tbase"), 2, 0)
        .Tb3 = Application.WorksheetFunction.VLookup(CStr(Me.Tb1), Sheets("BD").Range("Tbase"), 3, 0)
        .Tb4 = Application.WorksheetFunction.VLookup(CStr(Me.Tb1), Sheets("BD").Range("Tbase"), 4, 0)
        .Tb5 = Application.WorksheetFunction.VLookup(CStr(Me.Tb1), Sheets("BD").Range("Tbase"), 5, 0)
        .Tb6 = Application.WorksheetFunction.VLookup(CStr(Me.Tb1), Sheets("BD").Range("Tbase"), 6, 0)
    End With
Else
    MsgBox "Cette immat n'existe pas", vbInformation + vbOKOnly, "Avertissement"
End If
End Sub

*Merci de ton retour

@Phil69970
Bonjour Phil69970

Merci pour ton aide, mais le problème persiste toujours
 
Bonjour,
Suis pas un spécialiste vba mais
1) dans ton fichier je ne retrouve pas ce code et tbl ... est null part ... sur une feuille que t'as suppr. pour l'anonymisation?)
2) Par contre sur ta capture tu as pour la valeur cherchée "me.tbl" ... je ne suis pas certain que cela te renvoie une valeur unique ... t'as mis un espion sur cette valeur en mode débogage pour voir ce qu'il y avait dedans ?
et tu passes ton code en faisant F8 pour exécuter ligne à ligne 🙂
A+
1- Ce code est dispo en cliquant sur la 1ère Textbox de l'userform
2- Non non je n'ai pas mis d'espion sur cette valeur
j'essaie ce que tu m'as dis
 
Tu testes avec quelle valeur ?
Et en Vba je sais pas mais en formule incluse dans la cellule cette fonction nécéssite que ta matrice dans laquelle tu cherche soit triée par ordre croissant (colonne contenant les données comparées à celle que tu cherche) ... car un fois qu'il a dépassé la valeur, il s'arrete et te renvoie une erreur , même si la valeur est plus bas.
 

Pièces jointes

Le fil

@Deadpool_CC
Ta solution est exactement celle que je propose au post #1
J'ai simplement modifié
If WorksheetFunction.CountIf(Sheets("BD").Range("A:A"), Me.Tb1.Value) <> 0 Then
et donc l'ordre du "else " 😉

CQFD

@Dominique-evrard n'a surement pas vu la subtilité et n'a surement pas recopié toute la solution que je proposais au post #2 sinon il aurait vu que ma solution fonctionnait !!!

@Phil69970
 
Tu testes avec quelle valeur ?
Et en Vba je sais pas mais en formule incluse dans la cellule cette fonction nécéssite que ta matrice dans laquelle tu cherche soit triée par ordre croissant (colonne contenant les données comparées à celle que tu cherche) ... car un fois qu'il a dépassé la valeur, il s'arrete et te renvoie une erreur , même si la valeur est plus bas.
Je recherche avec la valeur "815"
 
- 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

  • Question Question
Microsoft 365 affichage userform
Réponses
4
Affichages
361
Réponses
15
Affichages
832
Réponses
2
Affichages
591
Retour