VBA VLookup autre Workbooks
Bonjour,
Je m'occupe du suivi des essais dans mon fichier "Test-DVP.xlsm". Je souhaite connaitre l'état des essais, l'info se trouve dans Test-Proto.xlsx. Si Test-Proto.xlsx contient une date de dispo près de l'essai, je souhaite retourner l'info. "Available" dans "Test-DVP.xlsm"
Pour le moment je travail avec les 2 fichiers ouverts, par la suite je souhaiterais ouvrir le fichier "Test-Proto.xlsm" en arrière plan et le fermer à la fin de la routine.
Sub Macro1()
Dim Test As String
Dim Dispo As String
Dim i As Integer
Dim wb_Proto As Workbook
Dim wb_DVP As Workbook
i = Range(Cells(1, 1), Cells(1, 1).End(xlDown)).Rows.Count
Set wb_Proto = Workbooks("Test-Proto.xlsx")
Set wb_DVP = Workbooks("Test-DVP.xlsm")
'Set srchRange = book1.Sheets(4).Range(Cells(row1 + 2, 1).Address, Cells(row2, col1).Address)
Set Base = wb_Proto.Sheets(1).Columns("A:B")
For o = 2 To i
If ActiveSheet.Cells(o, 2).Value = "II" Then
If ActiveSheet.Cells(o, 4).Value <> "Available" Then
Test = ActiveSheet.Cells(o, 1)
Dispo = Application.WorksheetFunction.VLookup(Test, wb_Proto.Sheets(1).Range("A:B"), 2, False)
If Dispo <> "" Then
Cells(o, 3).HorizontalAlignment = xlCenter
Cells(o, 3).VerticalAlignment = xlCenter
Cells(o, 3).Value = "Available"
End If
End If
End If
Next
wb_Proto.Close SaveChange = False
Set wb_Proto = Nothing
End SubJ'ai une erreur d'exécution '1004' au niveau du VLookup. J'ai chercher sur pas mal de forum mais je ne trouve pas mon erreur.
Pouvez-vous m'aider s'il vous plait?
Hello Lilliputien,
Après quelques tests, 2 choses:
Utiliser
Application.VLookupà la place de
Application.WorksheetFunction.VLookupLe problème est sur le "False", je ne sais pas encore par quoi il faut le remplacer, donc pour le moment il faut le supprimer
Dispo = Application.VLookup(Test, wb_Proto.Sheets(1).Range("A:B"), 2)PS: Dispo est à déclarer comme Date non?
Dim Dispo as Date[quote="d3d9x"]
Le problème est sur le "False", je ne sais pas encore par quoi il faut le remplacer, donc pour le moment il faut le supprimer
Dispo = Application.VLookup(Test, wb_Proto.Sheets(1).Range("A:B"), 2)Bonjour d3d9x
Le problème est qu'en supprimant le FALSE, la date de l'essai LIS2016-010 est celle du LIS2016-002.