• Privacywetgeving
    Het is bij Helpmij.nl niet toegestaan om persoonsgegevens in een voorbeeld te plaatsen. Alle voorbeelden die persoonsgegevens bevatten zullen zonder opgaaf van reden verwijderd worden. In de vraag zal specifiek vermeld moeten worden dat het om fictieve namen gaat.

Onwaar ?

Status
Niet open voor verdere reacties.

verluc

Gebruiker
Lid geworden
29 mei 2009
Berichten
535
Waarom geeft deze formule in mijn macro ONWAAR als resultaat ?

Range("J4:J500").Formula = "=ALS(A4="";"";VERT.ZOEKEN(A4;Aankoop!$B$3:$M$500;12;0))

Bedankt voor iedere melding.
 
Je vorige vraag werkt ook al niet.
Al schrijf jezelf dat het is opgelost.
Vandaar dat deze ook niet werkt.
 
Je vorige vraag ken ik niet maar in deze zitten een aantal fouten.
1 - Je moet de Engelse functienamen gebruiken.
2 - Je moet geen ; als parameterscheiding in de functie gebruiken maar een ,
3 - Dubbele quote tekens (") in de formule moet je "Escapen" door dat teken 2x te plaatsen waar ze in de functie nodig zijn.
4 - De complete functie moet beginnen met een " teken EN er mee eindigen, omdat het voor VBA een String is.
 
Laatst bewerkt:
Thank you :thumb:
 
Dat heb ik dus ook al vermeld in z'n vorige vraag.
Vandaar mijn reactie.
 
Ja, zo schiet het niet op natuurlijk.
 
HSV, sorry maar ik had Uw laatste bericht niet gelezen om reden dat mijn vraag als opgelost werd gezet.
Inderdaad, na een tweede run van mijn macro kreeg ik opnieuw Error 400

Edmoor, zeer bedankt voor Uw uitvoerige beschrijving van mogelijke oplossing, doch zonder resultaat.
Vandaar dat ik duidelijk wil uiteenzetten wat ik wil bereiken:

Als A1 niet blank is dan in cell J1 het getal zoeken in blad Aankoop, bereik B2:M500, kolom 12
Als A1 blank is dan moet ook J1 blank blijven

Dit is te verwerken met een macrolijn, om te voorkomen dat deze formule word verwijderd met backspace.

Hopelijk !
 
Het gaat in eerste instantie niet eens om de formule zelf. Laat eens zien hoe je deze nu in de code hebt staan.
 
Zo ziet mijn macro er thans uit :
Code:
Sub macro1()
Range("H4:H500").Formula = "=ALS(E4<>0;AFRONDEN((F4-G4)/G4;6);"""")"
Range("I4:I500").Formula = "=ALS(F4<>0;AFRONDEN((F4-E4)/E4;6);"""")"
Range("J4:J500").Formula = "=ALS(A4="";"";VERT.ZOEKEN(A4;Aankoop!$B$3:$M$500;12;0))"
Range("K4:K500").Formula = "=SOM(M4/F4)"
Range("L4:L500").Formula = "=ALS(C4=C;F4*J4*$F$3;"")"
End Sub

Nog veel beter ware moest de range 500 vervangen kunnen worden tot laatst ingevuld rij
 
Laatst bewerkt door een moderator:
Maar je hebt dus nog steeds niet gedaan wat in je beide vragen door meerdere mensen is gezegd. Gebruik geen .Formula maar .FormulaLocal of gebruik de Engelse functienamen en dan een , waar nu een ; staat.
 
Zo is het precies Ed,

Ik heb "direct-mail" notificatie aan staan, dus kijk ik eerst of er reacties zijn en waarop, zodat ik direct naar die vragen kan surfen.
Maar goed.
Verluc leest zijn of haar berichten zo ook al niet goed, dus de mail-notificatie heeft ook al geen zin.
 
Laatst bewerkt:
Ik heb inderdaad de voorstellen gevolgd, doch zonder resultaat, daarom de eerste macro zonder deze aanpassingen..
Had gehoopt dat U de macrolijn van kolom J zou aangepast hebben, zodat deze werkt.
Toch bedankt.
 
Zoals je het nu volgens je bericht in #11 hebt staan is in ieder geval fout. Maar ik ga niet nog een keer herhalen wat je moet doen om dat te verhelpen want dat is nu vaak genoeg gezegd.
 
Het vreemde aan het ganse verhaal is dat, wanneer ik de formule bovenaan in de formulebalk zet en doortrek
naar onder, alles prima werkt
Doe ik deze formule via een macro dan werkt deze niet en krijg error 400
Zeer vreemd (althans bvor mij!)
 
Ik zou zeggen, lees de antwoorden nog eens door. De oplossing is meerdere keren en door meerdere mensen genoemd. Ik ben hier klaar.
 
O.K. alles opgelost.
Heb dit via een andere manier kunnen oplossen door deze formules in de formulebalk te plaatsen en
via een macro deze automatisch door te trekken.
In elk geval mijn gewaardeerde dank voor alle "helpers" aan deze vraagstelling.
Zet vraag als "opgelost"
 
Verluc,

weet je wat ik vaak doe?
1) maak de formule gewoon in een excelcel
2) plaats de cursor in die cel
3) start de macrorecorder
4) druk op de toets F2, gevolgd door enter
5) stop de macrorecorder.
Nu heeft de macrorecorder de formule keurig vertaald naar VBA, dan staan de termen in het engels, de ; zijn , geworden en er worden "" om de gehele formule geplaatst
 
Status
Niet open voor verdere reacties.
Terug
Bovenaan Onderaan