Partager via

Erreur avec la fonction vlookup

Anonyme
2024-12-04T23:07:07+00:00

Bonjour,

je veut afficher dans une zone de liste le nom et le prix de mon article, mais quand j'exécute la fonction celle-ci met un msg d'erreur "1004" impossible de lire la propriété vlookup de la classe worksheetfunction.

Pouvez vous me donne une solution pour réussir a afficher ces deux infos.

Je n'arrive pas a ajouter des image pour vous montrer le formulaire a remplire, ainsi que le msg d'erreur.

Merci de votre aide

Voici ma commande :

Private Sub CommandButton1_Click()

Dim Part_name As String

Dim Part_prix As Currency

If Me.Cbx_référence.ListIndex >= 0 And Me.Txt_nombre <> "" Then

If Me.List\_commande.ListCount &gt;= 20 Then 'Si il y a plus de 20 articles

    MsgBox "Trop d'articles pour cette commande, il faut créer une autre commande."

Else

    'Rechercher dans article

    Part\_name = WorksheetFunction.VLookup(Me.Cbx\_référence, Sheets(2).Range("B:K"), 3, 0)

    Part\_prix = WorksheetFunction.VLookup(Me.Cbx\_référence, Sheets(2).Range("B:K"), 6, 0)

    'Remplire la zone de liste

    With Me.List\_commande

        .AddItem

        .List(memoire, 0) = Me.Cbx\_référence

        .List(memoire, 1) = Part\_name

        .List(memoire, 2) = CCur(Part\_prix)

        .List(memoire, 3) = Me.Txt\_nombre

    End With

        memoire = memoire + 1

        'Vider l'article et le nombre

        Me.Cbx\_référence = ""

        Me.Txt\_nombre = ""

End If

End If

End Sub

Microsoft 365 et Office | Excel | Pour la maison | Windows

Question verrouillée. Cette question a été migrée à partir de la Communauté Support Microsoft. Vous pouvez voter pour indiquer si elle est utile, mais vous ne pouvez pas ajouter de commentaires ou de réponses ni suivre la question.

0 commentaires Aucun commentaire

18 réponses

  1. Anonyme
    2024-12-05T17:09:04+00:00

    je veut bien vous le transmettre mais je ne peut pas mettre de photo ou de lien dessus le site

    Cette réponse a-t-elle été utile ?

    0 commentaires Aucun commentaire
  2. Hecatonchire 53,700 Points de réputation Modérateur bénévole
    2024-12-05T12:23:51+00:00

    Bonjour,

    La valeur dans la combobox Me.Cbx_référence n'est pas dans la plage Sheets(2).Range("B:K") du classeur (quel classeur ?)

    Cette réponse a-t-elle été utile ?

    0 commentaires Aucun commentaire
  3. Anonyme
    2024-12-05T11:58:17+00:00

    Merci pour votre aide, ce pendant je reprend les informations contenue dans la zone de liste pour une autre fonction auriez-vous une idée ? Quitte a modifier des ligne pour que le prix unitaire et le nom s'affiche.

    Comment je peut trouver se que fonction RECHERCHEV/Vlookup ne trouve pas ? (=> #N/A).

    Je vous met la suite de mon formulaire :

    Private Sub CommandButton2_Click()

    Dim Nombre_ligne As Integer

    Dim Ligne As Integer

    Dim DL As Integer

    If Me.List_commande.ListCount > 0 And Me.Cbx_fournisseur.ListIndex >= 0 Then

    'Demmander une confirmation de la commande 
    
    If MsgBox("Voulez-vous passer la commande ?", vbYesNo) = vbYes Then 
    
        Nombre\_ligne = Me.List\_commande.ListCount - 1 
    
        For Ligne = 0 To Nombre\_ligne 
    
            Sheets(3).ListObjects(1).ListRows.Add 
    
            DL = Sheets(3).Range("B99999").End(xlUp).Row 
    
            'Afficher nos information dans la base de donnée commande 
    
            Sheets(3).Range("B" & DL) = Me.Label\_info.Caption 
    
            Sheets(3).Range("C" & DL) = CDate(Now()) 
    
            Sheets(3).Range("D" & DL) = Me.List\_commande.List(Ligne, 0) 
    
            Sheets(3).Range("E" & DL) = Me.List\_commande.List(Ligne, 1) 
    
            Sheets(3).Range("F" & DL) = CInt(Me.List\_commande.List(Ligne, 3)) 
    
            Sheets(3).Range("G" & DL) = CCur(Me.List\_commande.List(Ligne, 2)) 
    
            Sheets(3).Range("I" & DL) = Me.Cbx\_fournisseur 
    
        Next Ligne 
    
        'sauvegarder le fichier PDF 
    
        Sheets(4).Range("C11") = Me.Label\_info.Caption 
    
        Sheets(4).ExportAsFixedFormat \_ 
    
            Type:=xlTypePDF, \_ 
    
            Filename:="F:\Commandes\" & Me.Cbx\_fournisseur & "-" & Me.Label\_info.Caption, \_ 
    
            openafterpublish:=True 
    
        Sheets("Configurations").Range("D24") = Sheets("Configurations").Range("D24") + 1 
    
    End If 
    

    Else

    MsgBox "Pas de commande disponible" 
    
    Unload Add\_commande 
    

    End If

    End Sub

    Cette réponse a-t-elle été utile ?

    0 commentaires Aucun commentaire
  4. DanielCo 107.7K Points de réputation
    2024-12-05T08:31:44+00:00

    Bonjour,

    Tu peux gérer l'erreur de la façon suivante :

    On Error Resume Next 
    

    Part_name = WorksheetFunction.VLookup(Me.Cbx_référence, Sheets(2).Range("B:K"), 3, 0)

    If Err.Number = 1004 Then MsgBox "Pas trouvé"

    On Error GoTo 0

    Daniel

    Cette réponse a-t-elle été utile ?

    0 commentaires Aucun commentaire
  5. Hecatonchire 53,700 Points de réputation Modérateur bénévole
    2024-12-04T23:17:03+00:00

    Bonsoir,

    Ta fonction RECHERCHEV/Vlookup ne trouve pas de réponse => #N/A d'où cette erreur.

    Cette réponse a-t-elle été utile ?

    0 commentaires Aucun commentaire