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

teken absolute waarde behouden

Status
Niet open voor verdere reacties.

nobody11

Gebruiker
Lid geworden
20 dec 2007
Berichten
552
hoe kan ik in feite de twee functies abs en max combineren ?

het volgende lukt alvast niet:

Code:
Application.WorksheetFunction.Max([COLOR="Red"]Abs(Range[/COLOR](Cells(rowfirstdate + n - 1, columnfirststock), Cells(rowfirstdate + n - 1, columnlaststock))))

alle variabelen zijn goed gedeclareerd..

ook had ik graag het teken behouden, dus als de grootste absolute waarde een negatief getal is, had ik graag het negatief gehouden,en omgekeerd als het grootste absolute getal in de rij positief is, dan moet het teken behouden blijven.. ik wil het zo eenvoudig mogelijk houden (ik zou er zelf iets heel ingewikkeld voor maken waarschijnlijk)
 
het volgende lukt alvast niet:

Code:
Application.WorksheetFunction.Max([COLOR="Red"]Abs(Range[/COLOR](Cells(rowfirstdate + n - 1, columnfirststock), Cells(rowfirstdate + n - 1, columnlaststock))))

Je verbindt de functie Max met WorksheetFunction, maar de functie Abs dan weer niet. Wat kan daarvoor de reden zijn?

als de grootste absolute waarde een negatief getal is

Dat lijkt mij schier onmogelijk.
 
Je verbindt de functie Max met WorksheetFunction, maar de functie Abs dan weer niet. Wat kan daarvoor de reden zijn?



Dat lijkt mij schier onmogelijk.

neen, ik bedoel dit in feite:

1 5 -9 10 => resultaat van de "zoekactie" 10

-20 4 9 10 => resultaat -20 (maar met een combinatie van max(abs) bv zou je 20 krijgen als resultaat (het teken gaat verloren)

dit betekent trouwens waarschijnljk een matrixfunctie, nietwaar?
 
Laatst bewerkt:
neen, ik bedoel dit in feite:

1 5 -9 10 => resultaat van de "zoekactie" 10

-20 4 9 10 => resultaat -20 (maar met een combinatie van max(abs) bv zou je 20 krijgen als resultaat (het teken gaat verloren)

dit betekent trouwens waarschijnljk een matrixfunctie, nietwaar?

dit heb ik nu in elkaar geboxt

Code:
Cells(i, columnlaststock + 1).FormulaR1C1 = IIf(Application.WorksheetFunction.Max(Range(Cells(rowfirstdate + n - 1, columnfirststock), Cells(rowfirstdate + n - 1, columnlaststock))) + Application.WorksheetFunction.Min(Range(Cells(rowfirstdate + n - 1, columnfirststock), Cells(rowfirstdate + n - 1, columnlaststock))) < 0, Application.WorksheetFunction.Min(Range(Cells(rowfirstdate + n - 1, columnfirststock), Cells(rowfirstdate + n - 1, columnlaststock))), Application.WorksheetFunction.Max(Range(Cells(rowfirstdate + n - 1, columnfirststock), Cells(rowfirstdate + n - 1, columnlaststock))))

kort gezegd:

if(max+min < 0, min, max)

simpele idee, maar dit doet hij niet :-)
 
Niet met vba (is niet mijn sterkste kant) maar gewoon met een formule:
Misschien dat je het kunt omzetten.
 

Bijlagen

Niet met vba (is niet mijn sterkste kant) maar gewoon met een formule:
Misschien dat je het kunt omzetten.


ja, zo had ik het trachten te vertalen in VBA. ik zal nog eens kijken met de macro recorder wat dat geeft :-)
 
Status
Niet open voor verdere reacties.
Terug
Bovenaan Onderaan