VLookup met array geeft fout

Status
Niet open voor verdere reacties.

jonathan11

Gebruiker
Lid geworden
19 apr 2017
Berichten
8
Beste,

ik maak een bestand waarin ik lijstjes met afgehandelde taken afboek in de totaallijst van de werkvoorraad. Met deze macro wil ik de status van de items uit het lijstje van de medewerker in de totaallijst omzetten van open naar done. De macro start vanuit het tabblad van de medewerker waar zijn persoonlijke lijstje staat. De bedoeling is om vanuit de totaallijst in een ander tabblad de status op te halen uit het tabblad van de medewerker. De kolommen met het klantnummer en status sla ik op in een array (Cust_ID en Status). In een range van gelijke grootte probeer ik met worksheetfunction VLookup voor de regels uit het lijstje van de medewerker de status "Done" op te halen. De code werkt, behalve de formule VLookup, met als zoekcriterium het klantnummer. Ook niet als ik de iferror functie weghaal. Ongetwijfeld weet hier iemand wat er niet goed gaat.
Alvast bedankt. En als er een betere manier is om tot dit resultaat te komen hoor ik het natuurlijk graag. Een loop ipv een array leek me geen optie vanwege de grote range (1388 rijen in de totaallijst).

Oja, nog iets, de error die VLookup geeft als je een controle toevoegt is "Door object of functie gedefinieerde fout".

Code:
Dim Medewerker As String
Dim Cust_ID() As Variant
Dim Status() As Variant

Medewerker = ActiveSheet.Name
On Error Resume Next
EntireColumn.Hidden = False
Range("N2", Range("N2").End(xlDown)) = "Done"
Sheets("Voorraad").Activate
Cust_ID = Range("K2", Range("B1").End(xlDown).Offset(0, 9))
Status = Range("N2", Range("B1").End(xlDown).Offset(0, 12))
ProdName = Range("O2", Range("B1").End(xlDown).Offset(0, 13))

Range("N2", Range("N1").Offset(UBound(Cust_ID, 1))).Value = Application.WorksheetFunction.IfError(Application.WorksheetFunction.VLookup(Cust_ID, _
Sheets(Medewerker).Range("A2", Range("A1").End(xlDown).Offset(0, 13)), 14, False), Status)
 
Laatst bewerkt:
Het eerste argument in een Vlookup moet een waarde zijn en geen array. 1388 rijen is totaal niets dus dan kan je prima een loop om de array heen zetten. Verder begrijp ik niet echt wat je wilt bereiken dus een voorbeeldbestandje lijkt mij handig.
 
Fijn bedankt, ik denk dat ik er zo uit kom. Ik zal er toch een loop omheen zetten, dan denk ik dat het goedkomt. Als ik iets niet goed doe kom ik graag nog een vraag stellen en voorbeeldbestand bijvoegen.
 
Status
Niet open voor verdere reacties.
Steun Ons

Nieuwste berichten

Terug
Bovenaan Onderaan