User Defined Function

Status
Niet open voor verdere reacties.

CRJ

Gebruiker
Lid geworden
21 sep 2018
Berichten
5
Beste techneuten,

Ik tracht in vba een functieprocedure te schrijven die via de klassieke index/vergelijken - functies een bepaalde celwaarde weergeeft.
Dit lukt echter niet.

Concreet: de functie vereist een EAN-code en geeft vervolgens een artikelnummer, opgehaald uit een externe file.
Onderstaand mijn poging:

Code:
Function artikel(EAN As Variant) As Variant

    artikel = ActiveCell.FormulaR1C1 = "=INDEX('[BibleExport-PIM.xlsx]Bible'!R2C1:R1808C1,MATCH(EAN,'[BibleExport-PIM.xlsx]Bible'!R2C2:R1808C2,0))"

End Function

Dit werkt echter niet.
Na lang genoeg zoeken op internet, stel ik nu toch de vraag aan jullie.

Kunnen jullie mij helpen?

Alvast bedankt.
 
vragen/suggesties:
-staat het bestand BibleExport-PIM.xlsx open?
-Kijk eens naar application.evaluate wanneer je op deze manier gebruik maakt van excel-formules
-Gebruik geen hardcoded variabelen in jouw UDF (maar net zoals je EAN gebruikt)
 
Beste helpende denkers,

Alvast bedankt voor de reacties.

Ik begrijp de reactie van VenA dat het gebruik van een standaardfunctie als UDF onlogisch lijkt. Ik zou dit enkel willen doen om deze formule te kunnen toepassen zonder iedere keer het bronbestand te hoeven openen.
Application.evaluate is mij niet bekend (klinkt duidelijk wat dit doet), maar ik zoek het zeker eens op.
De opmerking van 'hardcoded variabelen' begrijp ik maar half en ik begrijp ook niet wat het alternatief zou kunnen zijn.

Aangezien excel/vba slechts zo verstandig is als zijn gebruiker, ligt het probleem zeker bij mij :).

In bijlage, een beperkt voorbeeld.

Nogmaals dank voor het meedenken.
 

Bijlagen

  • Voorbeeld Excelforum.xlsx
    43,6 KB · Weergaven: 21
Vooralsnog kan ik geen enkel voordeel vinden.

Hardcoded is alles wat je niet aan variabelen aan een UDF meegeeft.
Code:
[COLOR="#FF0000"][BibleExport-PIM.xlsx]Bible'!R2C1:R1808C1[/COLOR],MATCH(EAN,'[COLOR="#FF0000"][BibleExport-PIM.xlsx]Bible'!R2C2:R1808C2,[/COLOR]0)
 
Laatst bewerkt:
Gebruik geen UDF om iets te zoeken in een gesloten bestand, gebruik dan een Sub die jouw formule in de cel plaatst (en vervolgens daar evt weer een waarde van maakt)
 
Aha, ok. Bedankt Eric.
Dan los k t inderdaad zo op.
 
Status
Niet open voor verdere reacties.
Steun Ons

Nieuwste berichten

Terug
Bovenaan Onderaan