Problème avec la fonction Vlookup en VBA: erreur execution 9

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

julien1025

XLDnaute Nouveau
Bonjour tous le monde,

Je suis débutant en VBA et j'ai un problème avec mon code.
J'ai un problème avec la fonction Vlookup en VBA.
Je n'arrive pas à trouver pourquoi ça ne marche pas.
Je vous mets le code ainsi que les deux fichiers en pièce jointes.



VB:
Private Sub CommandButton1_Click()

Dim Bd As Worksheet
Dim Rech As Worksheet
Dim NbLig As Long
Dim NbCol As Long
Dim Derlign As Integer
Set Bd = ThisWorkbook.Sheets("Gamme")
Set Rech = ThisWorkbook.Sheets("Suivi")
Dim i As Integer
Dim j As Integer
Dim k As Integer
Dim m As Integer
Dim l As Integer
Dim Resultat As Variant

j = 1
With Bd
NbLig = .Cells(.Rows.Count, 1).End(xlUp).Row
NbCol = .Cells(1, .Columns.Count).End(xlToRight).Column
End With

For i = 2 To NbLig
If Suivi_gamme.ComboBox1.Value = Bd.Cells(i, 1).Value Then
    If Suivi_gamme.ComboBox2.Value = Bd.Cells(i, 2).Value Then
        If Suivi_gamme.ComboBox3.Value = Bd.Cells(i, 3).Value Then
        For k = 4 To NbCol
            If Bd.Cells(i, k).Text Like "Fil" Or Bd.Cells(i, k).Text Like "V22" Or Bd.Cells(i, k).Text Like "Drill 20" Or Bd.Cells(i, k).Text Like "Sodick" Then
                If Bd.Cells(i, k + 1).Value = Bd.Cells(i, k).Value Then
                
                Else
                Rech.Cells(j + 8, 1).Value = Bd.Cells(1, k).Value
                Bd.Cells(i, k).Copy
                Rech.Cells(j + 8, 2).PasteSpecial xlPasteValuesAndNumberFormats
                j = j + 1
                End If
            End If
        Next k
        End If
     End If
End If
Next i

For l = 9 To 23
Rech.Range("C" & l).Interior.ColorIndex = xlColorIndexNone
Next l



For l = 9 To 23
If Rech.Cells(l, 2).Text Like "Fil" Or Rech.Cells(l, 2).Text Like "Drill 20" Then
   Resultat = Application.VLookup(Rech.Cells(4, 2).Value, Workbooks("C:\Users\mto\Desktop\Suivi_Mc_FIL.xlsx").Sheets("2015").Range("C6:J500"), 1, False)
 If IsError(Resultat) Then
    Rech.Range("C" & l).Interior.ColorIndex = 10
    Else
    Rech.Range("C" & l).Interior.ColorIndex = 3
    End If
End If
Next l
       
Unload Me
End Sub


Je n'arrive pas à voir pourquoi ça ne marche pas.
Quand je fait débogage, l'erreur se trouve se la ligne:
Resultat = Application.VLookup(Rech.Cells(4, 2).Value, Workbooks("C:\Users\mto\Desktop\Suivi_Mc_FIL.xls").Sheets("2015").Range("C6:J500"), 1, False)


(Ce n'est qu'un exemple car il va me falloir lire dans 3 fichiers en tout mais si dans un ça marche, ça devrait marcher pour les 3 après)

Merci d'avance pour votre aide
 

Pièces jointes

Re : Problème avec la fonction Vlookup en VBA: erreur execution 9

Bonjour à tous,

Bienvenue sur XLD

Peux-tu essayer :

Workbooks("C:\Users\mto\Desktop\Suivi_Mc_FIL.xlsx") .Sheets("2015").Range("C6:J500"), 1, False)

A+ à tous
 
Re : Problème avec la fonction Vlookup en VBA: erreur execution 9

Bonjour JCGL,

Merci de ta réponse, mais j'ai réussi à résoudre ce problème. Il me manquait un peu de code.
Cependant, maintenant j'ai un autre problème, je ne sais pas si tu pourra m'aider.
En effet, j'ai mon fichier avec mon formulaire dans lequel je viens renseigner le numéro de dossier voulu, la référence et le nom de la pièce et quand je clique sur le bouton suivi ça m'affiche la gamme e ça doit aller chercher dans un autre classeur si il trouve le numéro de dossier, la référence et le nom de la pièce. Et si c'est le cas, la cellule se remplis selon une couleur sinon selon une autre.
Cependant, dans mon fichier dans lequel je viens lie, il y a des fois plusieurs fois le numéro de dossier et la référence de renseigner mais pas le nom de la pièce. Ainsi quand je cherche un autre nom de pièce, ça ne me le trouve pas car la fonction Vlookup s'arrete à la premiere ligne trouvée
Cependant, je ne vois pas comment faire pour que la fonction recherche tous les nom de pièce avec le numero de dossier et la référence voulue et les comparer avec le nom de la pièce voulue.

Je mets en pièce jointe mes deux fichiers.

Merci d'avance de votre aide.
 

Pièces jointes

- 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

Réponses
4
Affichages
367
Réponses
5
Affichages
79
Réponses
9
Affichages
390
  • Question Question
Microsoft 365 worksheet_change
Réponses
29
Affichages
272
  • Question Question
XL 2021 VBA excel
Réponses
4
Affichages
88
Réponses
2
Affichages
60
Retour