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

kleiner of groter dan

Status
Niet open voor verdere reacties.

snitsel

Gebruiker
Lid geworden
12 feb 2008
Berichten
199
Beste

Even een vraagje aan de hand van een vb.
Ik heb 3 vaste waarden waar ik mij moet houden die uiteindelijk een resultaat weergeven.
1. 1950 en 3050 resultaat: 15
2. 2500 en 3050 resultaat: 30
3. 3000 en 4000 resultaat: 40

Als ik in cel A1 het volgende invul 2000
en in cel A2 vul ik in: 3000

Dan zou ik willen dat er in cel A3 het gepaste resultaat komt.
Het antwoord is hier nu 30 omdat de 2000 groter is dan 1950.
Je mag de getallen ook omwisselen. Stel A1 = 2000 en A2 = 1800
dan zou het resultaat 15 zijn want 1800 is kleiner dan 1950 en 2000 is kleiner dan 3050.

Ik snap gewoon niet hoe ik dit alles in een 1 formule moet krijgen.
Uiteindelijk is het de bedoeling dat ik de formule in een macro stop om telkens een hele tabel te controleren.

Hopelijk kan er mij iemand verder helpen.

Mvg
Snitsel
 
Ik heb het niet uitgebreid getest, maar ik denk dat de formules in bijlage kloppen. (althans voor jouw 2 voorbeelden toch)

Wigi
 

Bijlagen

Dank je wel Wigi, voor de snelle info.
Ik heb het even gecheckt maar er zitten fouten in.
Ik heb geprobeerd de formule te ontleden, maar ze is een beetje te ingewikkeld.

met deze hitte ben ik helemaal aan het dutsen. Hoe moek ik deze formule juist met een ALS en EN functie samen:

=ALS(D10<=3060)&(C10<=1950);0;ONWAAR)

Mvg

Steven
 
Bedoel je het zo?

Code:
=ALS(EN(D10<=3060;C10<=1950);0;ONWAAR)

Met vriendelijke groet,


Roncancio
 
Beste Ron

Dit was inderdaad wat ik bedoelde. Ik wist ongeveer hoe het moest, maar ik had ergens 2 haakjes teveel gezet wat leidde tot de fout. Met dank tot hier toe :-).
 
Beste Ron

Dit was inderdaad wat ik bedoelde. Ik wist ongeveer hoe het moest, maar ik had ergens 2 haakjes teveel gezet wat leidde tot de fout. Met dank tot hier toe :-).

Graag gedaan.
Als hiermee je vraag is beantwoord dan gaarne de vraag op opgelost zetten (rechts onderaan op de pagina).
Bvd.

Met vriendelijke groet,


Roncancio
 
Beste Ron

Ik ben namelijk nog niet helemaal klaar :-).
Ik heb zojuist de formule aangepast en het is misschien wat omslachtig, maar het werkt.
Nu moet ik deze formule in een macro knopje krijgen.

Het zou de bedoeling zijn dat het volgende gebeurd:

Hij moet deze formule plakken =MIN(T13:U13) in cel AI13
Hij moet deze formule plakken =MAX(T13:U13) in cel AJ13
en deze formule =ALS(EN(AJ13<=3060;AI13<=1950);0;ALS(EN(AJ13<=3060;EN(AI13>1950;AI13<=2500));15;ALS(EN(EN(AJ13>3060;AJ13<=4400);AI13<=2500);30;ALS(OF(AI13>2500;AJ13>4400);"Jumbo";ONWAAR)))) in cel AK13

Dit is nu niet het probleem, maar wel dat hij deze formules naar beneden moet kopieren tot er in kolom T niets meer staat ingevuld. Ik heb bv een lijst die loopt tot T41. Vanaf rij 42 mag de formule er niet meer staan.

Hopelijk kan je mij hiervoor nog helpen. Alvast bedankt aan Ron en Wigi!

Mvg
 
Waarom via een macroknop ipv de formules gewoon in Excel plaatsen?

Met vriendelijke groet,


Roncancio
 
of ?

=kiezen(integer((MAX(T13:U13)-MIN(T13:U13))/550)+1;0;15;30;30;30;"Jumbo")
 
Hoi

Lijkt inderdaad een sterk vereenvoudigde formule. heb ze even toegepast, maar dit geeft het juiste resultaat niet weer!
Ik snap niet veel van de formule, maar heeft het niets te maken met dat je deelt door 550 ofzo? Ik weet niet vanwaar dat komt...

@ Ron: Ik moet het wel in een macroknopje steken omdat:
Als ik een project heb gemaakt, kan ik een lijst genereren uit mijn programma en dan moet ik telkens deze formules toepassen. Als ik een macro heb, dan hoef ik deze enkel te starten en het is klaar. Als ik de macro niet heb, moet ik telkens mijn formules kopieren in de juiste cellen en naar beneden slepen... snappie?

Kan je mij hier dus even bij helpen?

Mvg
 
Laatst bewerkt:
snitsel

Neem de stappen van het zetten van de formules op met de macro recorder. Dan heb je alvast de syntax in VBA-code.

Of je zet de juiste formule in een cel, en laat VBA kopiëren naar de juiste cellen. Dat lijkt me nog het handigste.
 
Voila, bij deze de code die ik ongeveer zocht.
Raar maar waar krijg ik toch nog een foutmelding:

Compileerfout
Verwacht: instructie-einde

Code:
Sub Macro1()

    Range("AI13").Formula = "=MIN(T13:U13)"
    Range("AJ13").Formula = "=MAX(T13:U13)"
    Range("AK13").Formula = "=ALS(EN(AJ13<=3060;AI13<=1950);0;ALS(EN(AJ13<=3060;EN(AI13>1950;AI13<=2500));15;ALS(EN(EN(AJ13>3060;AJ13<=4400);AI13<=2500);30;ALS(OF(AI13>2500;AJ13>4400);[COLOR="Red"]"Jumbo";[/COLOR]ONWAAR))))"
    Range("AI13:AK13").Select
    Application.CutCopyMode = False
    Selection.AutoFill Destination:=Range("AI13:AK100"), Type:=xlFillDefault
    Range("AI13:AK100").Select
    
End Sub

De foutmelding verwijst naar "Jumbo". Het heeft waarschijnlijk met de " te maken, maar hoe kan ik dit oplossen?

Mvg
 
Laatst bewerkt:
Het " teken vóór en na Jumbo dient verdubbeld te worden.

""Jumbo""
 
AAhhhhh

Ik had die tekentjes verdubbeld voor en achter mijn formule!!
 
Neen :-)
Het werkt precies nog niet.
Ik heb de code aangepast en nu krijg ik een fout, maar ik weet niet wat er gaande is.
De langste code wordt geel gemarkeerd.

Code:
Sub Macro1()

    Range("AI13").Formula = "=MIN(T13:U13)"
    Range("AJ13").Formula = "=MAX(T13:U13)"
    [B]Range("AK13").Formula = "=ALS(EN(AJ13<=3060;AI13<=1950);0;ALS(EN(AJ13<=3060;EN(AI13>1950;AI13<=2500));15;ALS(EN(EN(AJ13>3060;AJ13<=4400);AI13<=2500);30;ALS(OF(AI13>2500;AJ13>4400);""Jumbo"";ONWAAR))))"[/B]    Range("AI13:AK13").Select
    Application.CutCopyMode = False
    Selection.AutoFill Destination:=Range("AI13:AK100"), Type:=xlFillDefault
    Range("AI13:AK100").Select
    
End Sub
 
Laatst bewerkt:
Code:
Sub Macro1()
    [AI13].Formula = "=MIN(T13:U13)"
    [AJ13].Formula = "=MAX(T13:U13)"
    [AK13].Formula = "=IF(AND(RC[-1]<=3060,RC[-2]<=1950),0,IF(AND(RC[-1]<=3060,AND(RC[-2]>1950,RC[-2]<=2500)),IF(AND(AND(RC[-1]>3060,RC[-1]<=4400),RC[-2]<=2500),30,IF(OR(RC[-2]>2500,RC[-1]>4400),""Jumbo"",0))))"
    [AI13:AK13].AutoFill [AI13:AK100], xlFillDefault
End Sub
 
Nu kan ik inderdaad al de macro starten zonder foutmeldingen.

Het enige probleem die ik nu krijg is:
De formule in kolom AK wordt enigzins uitgevoerd, maar vanaf er 15 , 30 of Jumbo moet komen te staan, staat er gewoon ONWAAR. In de rest van de cellen wordt er wel een 0 ingevuld.
 
De formule in kolom AK wordt enigzins uitgevoerd, maar vanaf er 15 , 30 of Jumbo moet komen te staan, staat er gewoon ONWAAR.

Ga dan na waarom dat zo is: misschien is de formule niet goed, of de vertaling naar VBA niet goed.
 
Ok Wigi , dit is inderdaad de beste oplossing die ik kon doen.
Uiteindelijke oplossing gevonden:

Code:
Sub Macro1()
    [AI13].Formula = "=MIN(T13:U13)"
    [AJ13].Formula = "=MAX(T13:U13)"
    [AK13].Formula = "=IF(AND(RC[-1]<=3060,RC[-2]<=1950),"""",IF(AND(RC[-1]<=3060,AND(RC[-2]>1950,RC[-2]<=2500)),15,IF(AND(AND(RC[-1]>3060,RC[-1]<=4400),RC[-2]<=2500),30,IF(OR(RC[-2]>2500,RC[-1]>4400),""Jumbo"",ONWAAR))))"
    [AI13:AK13].AutoFill [AI13:AK100], xlFillDefault
End Sub

Met dank aan iedereen zijn inbreng!
Mvg
 
Status
Niet open voor verdere reacties.
Terug
Bovenaan Onderaan