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

Formule in macro

Status
Niet open voor verdere reacties.

verluc

Gebruiker
Lid geworden
29 mei 2009
Berichten
540
IN mijn tabblad heb ik gegevens van A4 tot L200
Aangezien ik in kolom H een formule heb voor berekening van een percentage die
loopt van H4 tot H200, blijkt dat medewerkers toch nog een wijziging doen aan dit
percentage (manueel) en aldus de formule vernietigen.
Ik wens deze dan ook onder te brengen in een macro zodat dit niet meer kan gebeuren.

formule in kolom H is : =ALS(E4<>0;AFRONDEN(F4-G4)/E4;6)"")

deze zou via macro automatisch moeten doorgetrokken worden tot H200

Met dank voor enige aanzet hiervoor.
 
zet de macro recorder aan
en begin te typen met je formule en trek deze zover je wilt naar beneden
en recorder weer uit zetten
 
test deze macro eens

Sub HerschrijfMijnPercentageFormule()

[H4:H200].FormulaR1C1 = _
"=IF(RC[-3]<>0,ROUND((RC[-2]-RC[-1])/RC[-3],6),"""")"
Range("H4").Select
End Sub
 
Sorry Jean-Paul, krijg error 400 met Uw macro. Enig idee ?
 
Nee geen idee , bij mij werkt het, kan je dat bestand posten, is er misschien een beveiliging op de kolom.
 
Verluc,
in je formule ontbreken een haakje en een puntkomma. En of dollartekens moeten worden gebruikt kunnen wij ook niet weten als we je bestand niet zien. Daarom is het een gok wat je wil berekenen, maar probeer dit:
Code:
Sub macro1()
'Deze code is geschreven door Zapatr
Range("H4").Formula = "=if(e4<>0,round((F4-G4)/A4,6),"""")"
Range("H4:H200").FillDown
End Sub
 
Beste Zapatr,

Nadat ik de kommas hebt gewijzigd in punt/komma, krijg ik als resultaat #NAAM
Nog een kleine aanpassing misschien ?
 
Beste Zapatr,

na enige testen heb ik het probleem kunnen oplossen door de macro in het Nederlands te zetten.
Werkt thans perfect zoals ik had bedoeld.
Mijn zeer gewaardeerde dank voor Uw genomen tijd.
Dit geld evenzeer voor Pasan als Jean-Paul
Zet de vraag als opgelost.
 
De formule in het Nederlands omzetten (dat is dan alleen "if" en "Round") is niet nodig (dat gebeurt nl. automatisch), dat heb ik in het verleden getest in verschillende versies van Excel. Wel is het zo dat de functie voor afronden (hier ROUND) in verschillende Nederlandstalige versies van Excel een wijziging heeft ondergaan (nl. AFRONDEN of AFRONDING). Dat kan voor een probleempje zorgen, maar is dus afhankelijk van met welke versie van Excel je werkt (het is verstandig om dat altijd bij een vraag te vermelden).
En verder: de regel met "Fildown" kun je verwijderen, wijzig de regel daarboven als volgt:
Code:
Range("H4:H200").Formula = "=....
 
Laatst bewerkt:
Status
Niet open voor verdere reacties.
Terug
Bovenaan Onderaan