• 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.

foutmelding 400

Status
Niet open voor verdere reacties.

verluc

Gebruiker
Lid geworden
29 mei 2009
Berichten
540
Wat is fout aan deze code in mijn macro:

Range("H4:H500").Formula = "=ALS(ISFOUT(F4-G4)/F4;0;(F4-G4)/F4)"

Krijg steeds error 400
 
Eigenlijk alles. Dus wat is de vraag en hoe heb je dit toegepast in jouw bestand. Waarvan een upload ook welkom zou zijn.
 
Dit is de lijn waarop de formule dient uitgevoerd te worden:

SPT C C SUPREME RES 0,040 0,000 0,000 #DEEL/0!

In plaats van #DEEL/0! zou het een 0 moete n zijn (#DEEL/0! onderdrukken)
 
Het ging toch om een Macro? En het voorbeeldje mogen we zelf verzinnen. =ALS.FOUT(jouw macro;0) zal denk ik wel een een 0 geven.
 
1. Zelfs als plaats je een formule, meestal verstaat VBA geen Nederlands. Als je de formule in het Engels plaatst, wordt ze automatisch vertaald in het Nederlands als je met een Nederlandstalige Excel werkt.
2. De puntkomma's moeten vervangen worden door een komma.
Je krijgt dan:
Code:
Range("H4:H500").Formula = "=if(iserror(F4-G4)/F4,0,(F4-G4)/F4)"
MAAR: Je hebt nog geen rekening gehouden met de mogelijkheid dat de cellen in de F- en G-kolom leeg zijn, zodat je toch nog een foutmelding kunt krijgen. Daarom kun je er m.i. het best dit van maken:
Code:
Range("H4:H500").Formula = "=IF(OR(isblank(F4),isblank(G4)),"""",IF(ISERROR(f4-g4)/f4,0,(F4-G4)/F4))"
 
Het vermelde in mijn vraag is de macro.
Deze staat als volgt:

Code:
Sub macro1()
Range("H4:H500").Formula = "=ALS(ISFOUT(F4-G4)/F4;0;(F4-G4)/F4)"
End sub

Macro om reden dat het hier gaat om een 300 tal lijnen en om te voorkomen dat de formule niet zou verwijded kunnen worden.
 
Laatst bewerkt door een moderator:
Beste Zpatr,

Bij gebruik van Uw voorstel krijg ik de foutmelding 1004 Fout tijdens uitvoering
Enig idee?
 
Je kunt gebruik maken van .formulalocal ipv .formula.
 
Laatst bewerkt:
Zapatr,

De cellen F en G mogen geen 0 bevatten, dus niet blanco
 
Kan het dan NOOIT voorkomen dat 1 van die cellen leeg is?
 
Ja, dat kan maar dan is het verkeerdelijk ingevuld of vergeten.
De formule moet enkel voorkomen dat er geen #DEEL/0! vermeld word.
Als men beide cellen op 0,00 zet dan krijg ik inderdaad deze melding nog.
 
Ik weeet niet of, als zowel de F- als G-cel 0 is, het resulaat blanco moet zijn of 0.
Indien 0, wijzig dan de 4 aanhalingstekens in 0.
Code:
Range("H4:H500").Formula = "=IF(OR(F4=0,G4=0),"""",IF(ISERROR(f4-g4)/f4,0,(F4-G4)/F4))"
 
Wellicht kun je met dit volstaan:
Code:
Range("H4:H500").Formula = "=IF(OR(F4=0,G4=0),"""", (F4-G4)/F4)"
Het is afhankelijk van wat je precies wil.
Indien gewenst ook hier de 4 aanhalingstekens wijzigen in 0.
 
Na enig zoeken en aanpassen op basis van de verschillende suggesties, ben ik tot volgende oplossing gekomen :

Range("H4:H500").Formula = "=ALS(F4=0;0;(F4-G4)/F4)"

Deze lijkt mij de oplossing te geven voor mijn probleem.
Met dank voor alle meedenkende excellers !!
 
Ik weet zeker dat dat de oplossing niet is.
 
Status
Niet open voor verdere reacties.
Terug
Bovenaan Onderaan