Formule in Excel werkt prima, dezelfde formule in VBA geeft Fout 1004

Status
Niet open voor verdere reacties.

Tomacro

Gebruiker
Lid geworden
5 jul 2016
Berichten
10
Beste allemaal,

ik zit met het volgende probleem.

Ik wil graag onderstaande formule in VBA hebben, zodat deze "automatisch" wordt aangemaakt wanneer ik de macro run.

Om deze formule in VBA te krijgen heb ik een macro opgenomen, de cel geselecteerd waar de formule in staat en vervolgens F2 + ENTER gedrukt. Einde macro.
Normaal gesproken resulteert dit in een werkende functie in VBA, nu helaas niet. Nu krijg ik Fout 1004 te zien bij het uitvoeren van de macro.

Weet iemand waar deze error vandaan komt? En vooral hoe deze te voorkomen is?
Thanks!

De formule in Excel:

Code:
=ALS(ALS(U2="DIRECT";VERGELIJKEN(0,1;E2:T2;1)+$E$1;VERGELIJKEN(-0,1;INDIRECT(CEL("adres";(INDEX(VERSCHUIVING(E2;0;0;AANTALARG($E:$E);16);1;VERGELIJKEN(-0,1;E2:T2;-1)+1)))):T2;1)+U2)=42;"Bestellen";ALS(U2="DIRECT";VERGELIJKEN(0,1;E2:T2;1)+$E$1;VERGELIJKEN(-0,1;INDIRECT(CEL("adres";(INDEX(VERSCHUIVING(E2;0;0;AANTALARG($E:$E);16);1;VERGELIJKEN(-0,1;E2:T2;-1)+1)))):T2;1)+U2))


Dezelfde formule na opname macro in VBA:

Code:
 ActiveCell.FormulaR1C1 = _
        "=IF(IF(RC[-4]=""DIRECT"",MATCH(0.1,RC[-20]:RC[-5],1)+R1C5,MATCH(-0.1,INDIRECT(CELL(""adres"",(INDEX(OFFSET(RC[-20],0,0,COUNTA(C5),16),1,MATCH(-0.1,RC[-20]:RC[-5],-1)+1)))):RC[-5],1)+RC[-4])=R1C5+16,""Bestellen"",IF(RC[-4]=""DIRECT"",MATCH(0.1,RC[-20]:RC[-5],1)+R1C5,MATCH(-0.1,INDIRECT(CELL(""adres"",(INDEX(OFFSET(RC[-20],0,0,COUNTA(C5),16),1,MATCH(-0.1,RC[-20]:RC[-5" & _
        "))):RC[-5],1)+RC[-4]))"
 
Ik heb er weinig verstand van maar als VBA de formule geplaatst heeft kun je toch zien wat er fout is?
Zet er even een ' voor en je kunt het controleren, denk ik.
 
In VBA heb je geen Excelformules nodig.
 
Dank voor jullie reacties!

Het probleem is dat VBA de formule niet plaatst, daar gaat het juist fout.
Zonder deze formule loopt de VBA gewoon.

@ snb: Wat ik graag zou willen is dat ik middels VBA deze formule in mijn Excel blad zet.
Het idee hierachter is dat ik een lijst met gegevens importeer naar Excel, om deze vervolgens middels een macro om te toveren tot werkbare informatie.
Daar is deze formule een onderdeel van.

Simpel gezegd/gevraagd: hoe schrijf ik de bovenste formule in VBA code?
 
Misschien moet targetcel gebruiken i.p.v. ActiveCell.
Als ik het zelf doe, een formule opnemen gebruik ik $, dan verspringt de range niet.
 
Het gekke is dat ik 4 kolommen heb met formules. 3 van de 4 werken prima op deze manier.
Deze alleen niet :-(

Hoe werkt TagetCell? In principe staan alle $-tekens op de juiste plaats in de formule...
 
Beste helpers!

Het probleem is opgelost!

De formule die ik heb opgenomen is dusdanig lang dat VBA hem heeft afgebroken en vervolgt op een volgende regel.
Echter is het afbreken niet goed gegaan en ontbreekt er een deel van de formule. Deze heb ik hersteld en nu werkt het wel!

Bedankt voor de reacties!

Code:
MATCH(-0.1,RC[-20]:RC[-5" & _
        "))):RC[-5],1)+RC[-4]))"

Dit had
Code:
 MATCH(-0.1,RC[-20]:RC[-5],-1)+1)))):RC[-5],1)+RC[-4]))"
moeten zijn.
 
Status
Niet open voor verdere reacties.
Terug
Bovenaan Onderaan