abonnement Unibet Coolblue Bitvavo
pi_75717337
quote:
Op woensdag 16 december 2009 22:20 schreef znarch het volgende:
Jep
pi_75722182
quote:
Op woensdag 16 december 2009 19:16 schreef lobzorenzo het volgende:

[..]

je bent nu al m'n held, of het nou lukt of niet :D
Wellicht dat deze code sneller is:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
Sub lijstje()

'begin en eindrij zoeken van laatst toegevoegde data
ActiveSheet.Range("a10000").End(xlUp).Select
eindrij = ActiveCell.Row
i = 0
Do While ActiveCell.Offset(-i, 0).Value <> ""
    i = i + 1
Loop
beginrij = eindrij - i + 1
'MsgBox beginrij & ", " & eindrij

'array vullen met waarden
myArray = Range("A" & beginrij & ":" & "A" & eindrij)

'kolom D leegmaken
Range("D:D").Clear

'gegevens uit array plaatsen
For i = 1 To UBound(myArray)
    Range("D" & i).Value = myArray(i, 1)
Next i

End Sub
Supra Groningam Nihil
Postjubilea: 10.000 15.000 20.000 25.000
Sit jou kop in die koei se kont en wag tot die bul jou kom holnaai
Wat niemand je vertelt over de bioindustrie, geen bloed maar feiten
pi_75724313
quote:
Op donderdag 17 december 2009 11:25 schreef Deetch het volgende:

[..]

Wellicht dat deze code sneller is:
[ code verwijderd ]


Ja dat werkt!!! Bedankt! Echt super!
pi_75728386
quote:
Op donderdag 17 december 2009 12:19 schreef lobzorenzo het volgende:

[..]

Ja dat werkt!!! Bedankt! Echt super!
hahaha ik roeleer. Toch geen verloren dag dan zo ingeschneeuwd in Groningen.
Supra Groningam Nihil
Postjubilea: 10.000 15.000 20.000 25.000
Sit jou kop in die koei se kont en wag tot die bul jou kom holnaai
Wat niemand je vertelt over de bioindustrie, geen bloed maar feiten
pi_75729908
Luie donder ga gewoon werken!!
pi_75730708
quote:
Op donderdag 17 december 2009 14:47 schreef DaFan het volgende:
Luie donder ga gewoon werken!!
Ben druk aan het thuiswerken. Wel zo lekker trouwens. Saaie stukken doornemen met Manowar, IRon Maiden enzo op de achtergond \m/ hail and kill \m/
Supra Groningam Nihil
Postjubilea: 10.000 15.000 20.000 25.000
Sit jou kop in die koei se kont en wag tot die bul jou kom holnaai
Wat niemand je vertelt over de bioindustrie, geen bloed maar feiten
pi_75733092
Beste allemaal,

Zojuist heb ik het hele topic doorgelopen maar helaas nog geen antwoord gevonden op mijn vraag... Misschien ook omdat ik niet alles snap wat jullie zeggen:)

Mijn vraag is als volgt:

Als ik in excel rapportcijfers invoer wil ik graag dat deze automatisch punten toegewezen krijgt. Het hoogste rapportcijfer krijgt 10 punten en en het laagste 1 punt. Ook bij een ex aequo moet dit doorgerekend worden.

vb:
9,7 = 10 pt
9 = 9pt
9 = 9pt
8,3 = 7pt

Momenteel sorteer ik alles en voer dan handmatig de punten in maar het zou makkelijker zijn als excel in een nieuwe cel automatisch de punten toewijst. Ook moeten de punten dan verspringen als later een hoger rapportcijfer wordt ingevoerd.

Hoop dat jullie me kunnen helpen!
pi_75735753
stel: al je cijfers staan in cellen B2 tot B50

dan zet je in cellen C2 tm C50 de volgende formule
=(B9-MIN($B$1:$B$50))/(MAX($B$1:$B$50)-MIN($B$1:$B$50))*9+1

Op die manier krijgt het hoogste cijfer 10 punten, het laagste cijfer 1 punt en de rest punten in de gelijke verhouding als de cijfers.
Supra Groningam Nihil
Postjubilea: 10.000 15.000 20.000 25.000
Sit jou kop in die koei se kont en wag tot die bul jou kom holnaai
Wat niemand je vertelt over de bioindustrie, geen bloed maar feiten
  donderdag 17 december 2009 @ 22:37:04 #209
229935 damsco
Internetheld sinds 2008
pi_75749187
Hoe kan ik de inhoud van 1 cel over meerdere cellen horizontaal kopieren zonder dat hij de waarde veranderd.

Ik heb nu: =SOM(Exploitatiebegroting!C11)/12 als formule, maar sleep ik het over meerdere cellen dan veranderd hij de cel C11 in D11 E11 F11 et cetera. Hoe kan ik dit voorkomen zonder het in 20 andere cellen handmatig in te moeten voeren?

bvd

EDIT: het is me gelukt door een koppeling naar één van de cellen te maken.

[ Bericht 10% gewijzigd door damsco op 17-12-2009 22:48:26 ]
  donderdag 17 december 2009 @ 23:59:21 #210
62215 qu63
..de tijd drinkt..
pi_75752130
of c11 vervangen door $c$11.. $ zorgt er voor dat de cellen niet veranderen..
It's Time To Shine
[i]What would life be like without rhethorical questions?[/i]
  vrijdag 18 december 2009 @ 00:49:24 #211
229935 damsco
Internetheld sinds 2008
pi_75753517
quote:
Op donderdag 17 december 2009 23:59 schreef qu63 het volgende:
of c11 vervangen door $c$11.. $ zorgt er voor dat de cellen niet veranderen..
Klopt. Dat had ik ook gedaan. Bedankt
pi_75871263
Uit een ander topic even het volgende ter informatie (misschien heeft iemand anders er nog eens wat aan)
quote:
Op zondag 20 december 2009 14:33 schreef adbeentjes het volgende:
Om maar meteen te beginnen, het volgende probleem:

Ik moet een algoritme (in Excel VBA) schrijven dat berekent hoeveel wisselgeld een kassier moet teruggeven aan een klant. Niet enkel het totaal terug te geven bedrag moet worden afgedrukt, maar het wisselgeld moet worden opgesplitst in de verschillende coupures (bijv. ¤634,33 = 1x500 + 0x200+ 1x100 +0x50 + 1x20 + 2x5+ 2x2+ 0x1+ 0x0,50 + 1x0,20 + 1x0,10 + 0x0,05 + 1x0.02+1x0,01)
Ervan uitgaande: terug te geven bedrag kleiner is dan 1000 euro.

Al wat uurtjes 'gespeeld' met VBA, maar helaas zonder resultaat. Wie helpt?

Ad
Deze werkt. Let ook op de afrondfunctie om rekenfouten te corrigeren. En dat i staat voor ( i ) (zonder spaties.

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
Sub wisselgeld()

Dim check, pay, diff, bedrag As Double
Dim change As String
Dim flappen As Integer

'te betalen = check
'geld gegeven = pay
'diff = wisselgeld (tussengetal)
'bedrag = oorspronkelijk wisselgeld (totaal)
check = Range("B1").Value
pay = Range("B2").Value
diff = pay - check
bedrag = diff

'lijst met coupures
myArray = Array(500, 200, 100, 50, 20, 10, 5, 2, 1, 0.5, 0.2, 0.1, 0.05, 0.02, 0.01)
change = ""

'loop door elke coupure
For i = 0 To 14
'als te geven wisselgeld 0 is dan is loopje klaar
    If diff = 0 Then Exit For
'het aantal coupures van de betreffende waarde bepalen (int maakt er een geheel getal van)
'myArray is het i-de item van de eerder aangemaakte array
    flappen = Int(diff / myArrayi)
'tekstregel maken met het aantalcoupures en het type
    change = change & flappen & "x" & myArrayi & " "
'oevrgebleven bedrag berekenen dat nog gewisseld moet worden, afronden op 2 decimalen om rekenfouten te voorkomen
    diff = Round((diff - flappen * myArrayi), 2)
Next i

'tekst box met te wisselen bedrag en hoe deze te wisselen
MsgBox bedrag & ":-->" & change

End Sub
Supra Groningam Nihil
Postjubilea: 10.000 15.000 20.000 25.000
Sit jou kop in die koei se kont en wag tot die bul jou kom holnaai
Wat niemand je vertelt over de bioindustrie, geen bloed maar feiten
pi_75881484
Ghe nice!
  maandag 21 december 2009 @ 15:53:28 #214
158136 Joooo-pi
Do you want a balloon...
pi_75883024
quote:
Op maandag 21 december 2009 11:10 schreef Deetch het volgende:
Uit een ander topic even het volgende ter informatie (misschien heeft iemand anders er nog eens wat aan)
[..]

Deze werkt. Let ook op de afrondfunctie om rekenfouten te corrigeren. En dat i staat voor ( i ) (zonder spaties.
[ code verwijderd ]
idd. mooi gemaakt! Zo zou ik het ook ongeveer doen, denk ik.
heitieh
pi_75892625
ik moet vanuit excel een export naar een csv file, alleen klopt de indeling niet. wanneer ik voor csv kies dan komt de uitvoer er zo uit te zien: text1, text2, enz.

het programma dat de csv gaat gebruiken leest het csv bestand als volgt: "text1", "text2", 1, 10, "enz"
dus alles moet gescheiden worden dmv een komma, maar tekst moet tussen aanhalingstekens staan en getallen weer niet.

een voorbeeld van de juiste uitvoer is:
"Address Space.AMS_GYR.Power.134.SDB.MDU.A1.OSB","Trip","No","","Yes",1,"No",,,"","","","","Register", "enz"

nou zag ik op internet wel een vb functie die dit mogelijk maakt, maar dan zet hij alles tussen aanhalingstekens. heeft iemand anders misschien ervaring met zo'n soort probleem?
pi_75915630
dan moet je eerst alle formats vastleggen van de kolommemn vastleggen (dus niet general maar text of number)
Vervolgens gebruik je als basis die VB functie die alles tussen "" zet en voeg je daar een regel aan toe:

if activecell.numberformat = "@" then
code om "" toe te voegen
else end if
end if
Supra Groningam Nihil
Postjubilea: 10.000 15.000 20.000 25.000
Sit jou kop in die koei se kont en wag tot die bul jou kom holnaai
Wat niemand je vertelt over de bioindustrie, geen bloed maar feiten
pi_75916230
quote:
Op dinsdag 22 december 2009 10:30 schreef Deetch het volgende:
dan moet je eerst alle formats vastleggen van de kolommemn vastleggen (dus niet general maar text of number)
Vervolgens gebruik je als basis die VB functie die alles tussen "" zet en voeg je daar een regel aan toe:

if activecell.numberformat = "@" then
code om "" toe te voegen
else end if
end if
wat
pi_75918580
oh ja die kan gewoon weggelaten worden
Supra Groningam Nihil
Postjubilea: 10.000 15.000 20.000 25.000
Sit jou kop in die koei se kont en wag tot die bul jou kom holnaai
Wat niemand je vertelt over de bioindustrie, geen bloed maar feiten
pi_75919327
Is het mogelijk om een formulier in excel te maken dat bij elke print een nummer erbij optelt. Dus stel ik wil 100 dezelfde formulieren maar dan bovenin genummerd van 1 t/m 100.

Ik heb de nederlandse 2007 excel versie.
pi_75963753
ja dan moet je het printen van je formulier met de macro recorder openemen.
1
2
3
4
5
6
sub print100()

for i = 1 to 100
range("H1").value = i
printen van pagina code die je had opgenomen
next i


eerst even testen met 5 opvolgende nummer ofzo (ipv 1 to 100 doe je dan 5)
Supra Groningam Nihil
Postjubilea: 10.000 15.000 20.000 25.000
Sit jou kop in die koei se kont en wag tot die bul jou kom holnaai
Wat niemand je vertelt over de bioindustrie, geen bloed maar feiten
pi_75964810
quote:
Op maandag 21 december 2009 11:10 schreef Deetch het volgende:
Uit een ander topic even het volgende ter informatie (misschien heeft iemand anders er nog eens wat aan)
[..]


Deze werkt. Let ook op de afrondfunctie om rekenfouten te corrigeren. En dat i staat voor ( i ) (zonder spaties.
[ code verwijderd ]


Waarom in VBA?
Je kunt ook rechtstreeks de formules in Excel plaatsen.

Zet in A1: biljetten/munten
Zet in B1: aantal coupures
Zet in C1: blijft over
Zet in C2: Het bedrag, b.v. 634,33
Zet in A3: 500
Zet in A4: 200
etc.
t/m zet in A17: 0,01
Zet in B3: +AFRONDEN.NAAR.BENEDEN(c2/a3;0)
Zet in C3: =AFRONDEN(c2-a3*b3;2)
Copieer B3 en C3 naar beneden.
Klaar
Je kunt beter één kaars opsteken dan duizend maal de duisternis vervloeken.
pi_75965944
klopt helemaal maar de oorspronkelijke vraag was om er een algoritme voor te maken. Dat impliceert het gebruik van een stuk programeercode.
Supra Groningam Nihil
Postjubilea: 10.000 15.000 20.000 25.000
Sit jou kop in die koei se kont en wag tot die bul jou kom holnaai
Wat niemand je vertelt over de bioindustrie, geen bloed maar feiten
pi_75975171
Hallo,

Ik ben bezig met mijn scriptie en heb wat hulp nodig, ben mijn oude wachtwoord bij FOK vergeten dus ben niet nieuw Ik heb iig een probleem met verwijzen. Een voorbeeld:

Vraag 1. Wat is uw gezinssituatie? (dropdown menu: alleenstaand, alleenstaand + kinderen, gehuwd, gehuwd + kinderen, samenwonend, samenwonend + kinderen)

Vraag 2. Wilt u tandheelkundige verzekering voor uw kinderen? Ja / Nee


Nou dat was het voorbeeld. Ik wil als ik kies 'alleenstaand' (dus zonder kinderen) dat er automatisch NEE komt te staan bij vraag 2. Echter ik kan alleen verwijzen dat er 'alleenstaand' komt te staan, en dat is niet het goede antwoord.

Is er hier een oplossing voor?

Met vriendelijke groet,

Roald Reurink
  woensdag 23 december 2009 @ 16:37:37 #224
62215 qu63
..de tijd drinkt..
pi_75975450
Bij de cel voor vraag 2:
=ALS(OF(CELMETANTWOORDVRAAG1="alleenstaand';CELMETANTWOORDVRAAG1="gehuwd");"Nee";"")

Met VBA zou je de cel ook nog kunnen blokkeren denk ik, maar op deze manier vult ie automatisch Nee in als er alleenstaand of gehuwd is ingevuld bij vraag 1, en niets als er van de andere antwoorden gekozen is.
It's Time To Shine
[i]What would life be like without rhethorical questions?[/i]
pi_75979600
quote:
Op woensdag 23 december 2009 16:37 schreef qu63 het volgende:
Bij de cel voor vraag 2:
=ALS(OF(CELMETANTWOORDVRAAG1="alleenstaand';CELMETANTWOORDVRAAG1="gehuwd");"Nee";"")

Met VBA zou je de cel ook nog kunnen blokkeren denk ik, maar op deze manier vult ie automatisch Nee in als er alleenstaand of gehuwd is ingevuld bij vraag 1, en niets als er van de andere antwoorden gekozen is.
Dank voor je snelle respons, maar het lukt niet echt Even een screenshot van het probleem...bij de vraagtekens dus moet 'nee' komen wanneer het gezin geen kinderen heeft. In kolom D zie je de dropdownbox en in kolom F de mogelijkheden voor die dropdownbox.

  woensdag 23 december 2009 @ 19:08:34 #226
62215 qu63
..de tijd drinkt..
pi_75980776
quote:
Op woensdag 23 december 2009 18:39 schreef RoaldReurink het volgende:

[..]

Dank voor je snelle respons, maar het lukt niet echt Even een screenshot van het probleem...bij de vraagtekens dus moet 'nee' komen wanneer het gezin geen kinderen heeft. In kolom D zie je de dropdownbox en in kolom F de mogelijkheden voor die dropdownbox.

[ afbeelding ]
In B3 komt dit:
=ALS(OF(D1="alleenstaand";D1="gehuwd");"Nee";"Ja")
It's Time To Shine
[i]What would life be like without rhethorical questions?[/i]
pi_75984586
Top! Dat werkt, heel erg bedankt, kan ik weer verder
pi_76141959
Ik vroeg mij af of dit mogelijk is:



De klant kiest bijvoorbeeld 'Man', 'Premieduur 15 jaar, geboren op 12-08-2008 (dus 1 jaar oud), dan wordt er automatisch 'leeftijd 1 MAN' gekozen = 5,00

Het lastige is de geboortedatum dat als ik nu invul 21-02-1986 dat Excel weet dat ik dan 23 ben, en de goede lengte van de premieduur.

Is dit mogelijk? Zou namelijk erg mooi zijn als dat zo is

Gr,
Roald
  maandag 28 december 2009 @ 15:26:55 #229
85514 ralfie
!Yvan eht nioj
pi_76142899
quote:
Op maandag 28 december 2009 15:03 schreef RoaldReurink het volgende:
Ik vroeg mij af of dit mogelijk is:

[ afbeelding ]

De klant kiest bijvoorbeeld 'Man', 'Premieduur 15 jaar, geboren op 12-08-2008 (dus 1 jaar oud), dan wordt er automatisch 'leeftijd 1 MAN' gekozen = 5,00

Het lastige is de geboortedatum dat als ik nu invul 21-02-1986 dat Excel weet dat ik dan 23 ben, en de goede lengte van de premieduur.

Is dit mogelijk? Zou namelijk erg mooi zijn als dat zo is

Gr,
Roald
geen idee wat je nu precies wilt... Je wilt iets laten selecteren op basis van de selectie man of vrouw, of wat?
pi_76143037
Vrouwen kunnen geen 0-4 jaar zijn?
pi_76143167
Je hebt in excel de NOW functie (zal wel NU heten in het Nederlands ofzo, achterlijke vertalingen altijd), die de huidige tijd teruggeeft, als je daar de geboortedatum vanaf haalt krijg je de leeftijd?
  maandag 28 december 2009 @ 15:38:21 #232
43584 Beregd
absolutely inch perfect
pi_76143417
quote:
Op maandag 28 december 2009 15:33 schreef kingjotte het volgende:
Je hebt in excel de NOW functie (zal wel NU heten in het Nederlands ofzo, achterlijke vertalingen altijd), die de huidige tijd teruggeeft, als je daar de geboortedatum vanaf haalt krijg je de leeftijd?
Dan krijg je je leeftijd in dagen, wat niet altijd even handig is om mee te rekenen.

je kunt ook bijvoorbeeld year(now())-year(a1)+(month(now())-month(a1)/12+(day(now())-day(a1))/365 doen
pi_76143957
En dan ROUNDDOWN
pi_76143963
quote:
Op maandag 28 december 2009 15:38 schreef Beregd het volgende:

[..]

Dan krijg je je leeftijd in dagen, wat niet altijd even handig is om mee te rekenen.

je kunt ook bijvoorbeeld year(now())-year(a1)+(month(now())-month(a1)/12+(day(now())-day(a1))/365 doen
dat klopt niet, het moet dit zijn:

=YEAR(NOW())-YEAR(A1)+(MONTH(NOW())-MONTH(A1))/12+(DAY(NOW())-DAY(A1))/365
pi_76144048
Huh doe gewoon =ROUNDDOWN((TODAY()-A1)/365;0)
waar A1 de geboortedatum is. Of ben ik nou gek
  maandag 28 december 2009 @ 15:54:02 #236
43584 Beregd
absolutely inch perfect
pi_76144112
quote:
Op maandag 28 december 2009 15:50 schreef kingjotte het volgende:

[..]

dat klopt niet, het moet dit zijn:

=YEAR(NOW())-YEAR(A1)+(MONTH(NOW())-MONTH(A1))/12+(DAY(NOW())-DAY(A1))/365
dat zei ik toch

en waarom vraag je het dan?
  maandag 28 december 2009 @ 15:57:10 #237
43584 Beregd
absolutely inch perfect
pi_76144258
quote:
Op maandag 28 december 2009 15:52 schreef DaFan het volgende:
Huh doe gewoon =ROUNDDOWN((TODAY()-A1)/365;0)
waar A1 de geboortedatum is. Of ben ik nou gek
ja, als je enkel jaren moet hebben is dat idd het makkelijkste maar soms is het exact nodig.

in excel 2007 is er trouwens een nieuwe excelfunctie die het verschil in data berekent.
pi_76145369
quote:
Op maandag 28 december 2009 15:54 schreef Beregd het volgende:

[..]
dat zei ik toch

en waarom vraag je het dan?
jij: YEAR(NOW())-YEAR(A1)+(MONTH(NOW())-MONTH(A1)/12+(DAY(NOW())-DAY(A1))/365
ik: YEAR(NOW())-YEAR(A1)+(MONTH(NOW())-MONTH(A1))/12+(DAY(NOW())-DAY(A1))/365
(hint: het zit hem in de haakjes)

met jouw oplossing is iemand die op 1-1-2009 geboren is: 11,99063927
met mijn oplossing is iemand die op 1-1-2009 geboren is: 0,990639269

Waarom ik het vroeg? Omdat ik me afvroeg wat het probleem was (Het was niet mijn probleem om mee te beginnen)
  maandag 28 december 2009 @ 16:28:34 #239
43584 Beregd
absolutely inch perfect
pi_76145435
ah, een haakje, boeiend.

Ik dacht dat je een vraag stelde, mijn excuses.
  maandag 28 december 2009 @ 16:33:32 #240
43584 Beregd
absolutely inch perfect
pi_76145623
om nog even terug te keren op de formule van dafan, die zal niet altijd werken omdat sommige jaren 366 dagen tellen, zeker als je over vele jaren rekent
pi_76146175
Ja ok, met leeftijd uitrekenen is gelukt.

Echter nog niet dit probleem: uit tabel (zie figuur) moet er dus automatisch worden gekozen dat iemand 'man' is en '1 jaar', en premieduur '15 jaar', dus er moet automatisch 5,00 (euro) worden geselecteerd.

Die 5, is 5 euro, dus er moet komen:

Premiekosten: 5 euro (=man, 1jaar, premieduur 15 jaar --> hier een formule voor)

Hopelijk zo goed uitgelegd
pi_76146342
quote:
Op maandag 28 december 2009 16:33 schreef Beregd het volgende:
om nog even terug te keren op de formule van dafan, die zal niet altijd werken omdat sommige jaren 366 dagen tellen, zeker als je over vele jaren rekent
Dat wordt pas na 100 jaar ofzo een issue, of de dag erna. Maar goed ik snap je punt
pi_76147977
quote:
Op maandag 28 december 2009 16:48 schreef RoaldReurink het volgende:
Ja ok, met leeftijd uitrekenen is gelukt.

Echter nog niet dit probleem: uit tabel (zie figuur) moet er dus automatisch worden gekozen dat iemand 'man' is en '1 jaar', en premieduur '15 jaar', dus er moet automatisch 5,00 (euro) worden geselecteerd.

Die 5, is 5 euro, dus er moet komen:

Premiekosten: 5 euro (=man, 1jaar, premieduur 15 jaar --> hier een formule voor)

Hopelijk zo goed uitgelegd
Wat is het regeltje om aan die 5 euro te komen, gegeven het geslacht en de leeftijd? Moet je dan niet ook de premieduur weten?

Als we het in een formule moeten vatten, zullen we toch eerst moeten weten wat de spelregels zijn.

Verder, wat is nou precies het gewenste resultaat? Je hebt het over automatisch 5,00 selecteren, maar hoe wil je dat weergeven? Als een regeltje onder Geboortedatum en Geslacht?

[offtopic]
Rare premieverdeling hanteer je en wat nou als er een vrouw van 3 langskomt?
[/offtopic]
pi_76152449
quote:
Op maandag 28 december 2009 17:42 schreef kingjotte het volgende:

[..]

Wat is het regeltje om aan die 5 euro te komen, gegeven het geslacht en de leeftijd? Moet je dan niet ook de premieduur weten?

Als we het in een formule moeten vatten, zullen we toch eerst moeten weten wat de spelregels zijn.

Verder, wat is nou precies het gewenste resultaat? Je hebt het over automatisch 5,00 selecteren, maar hoe wil je dat weergeven? Als een regeltje onder Geboortedatum en Geslacht?

[offtopic]
Rare premieverdeling hanteer je en wat nou als er een vrouw van 3 langskomt?
[/offtopic]
Ja de premieverdeling heb ik anders ingevoerd omdat ik niet weet of ik die mag posten. Deze verdeling is zo als ik het gekregen, leeftijd vrouw begint bij 5 jaar.



Dus als de drie variabelen bekent zijn (geb.datum, geslacht en premieduur) dan selecteer Excel automatisch het gele vlak. Als een klant bij registratie dus zijn/haar geboortedatum, geslacht heeft ingevuld, dan hoeft de klant alleen nog te zeggen hoe lang ze de premie wil (premieduur). Dan komt er automatisch te staan hoe duur dat voor de klant is (prijs per maand). Daar wil ik dus die formule in gebruiken, ik heb de premieverdeling en als het mogelijk is dat het automatisch het goede vakje selecteerd zou dat er makkelijk zijn.
pi_76156314
Okee, niet schrikken, dit is hem:
quote:
=INDEX(prijzen;IF(geslacht="man";MATCH((YEAR(NOW())-YEAR(geboortedatum)+(MONTH(NOW())-MONTH(geboortedatum))/12+(DAY(NOW())-DAY(geboortedatum))/365);leeftijden_man);MATCH((YEAR(NOW())-YEAR(geboortedatum)+(MONTH(NOW())-MONTH(geboortedatum))/12+(DAY(NOW())-DAY(geboortedatum))/365);leeftijden_vrouw));MATCH(duur;premie_lengtes))
om het wat leesbaarder te maken heb ik even een extra veld "leeftijd" toegevoegd, dan ziet het er zo uit:
quote:
=INDEX(prijzen;IF(geslacht="man";MATCH(leeftijd;leeftijden_man);MATCH(leeftijd;leeftijden_vrouw));MATCH(duur;premie_lengtes))
ik heb alle relevante cellen (of cellranges) een naam gegeven, dit houdt je "code" ook wat beter onderhoudbaar.

Wat ik hier doe is het volgende: ik zoek in de range "prijzen" de goede cel op met INDEX
INDEX lust een range (prijzen), en een rijnummer en kolomnummer binnen die range
het kolomnummer (de laatste parameter) is het makkelijkst, want die is voor zowel mannen als vrouwen hetzelfde (namelijk afhankelijk van de duur van het contract) dus die zoeken we gewoon op met MATCH(duur;premie_lengtes)

Het rijnummer is iets lastiger, daarvoor hebben we naast MATCH ook nog IF nodig, om onderscheid te maken tussen mannetjes en vrouwtjes.

Ik hoop dat het zo een beetje duidelijk is, anders hoor ik het wel.
pi_76232076
Hoi all, ik maak mbv deze code een calendar aan:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
Const SjabloonBladnaam As String = "Sjabloon"
Const WeekNummerCel As String = "B1"
Const DatumMaandag As String = "C2"

Public NieuweAgenda As Object

Sub MaakAgenda(Jaar As Long)
  Dim WeekNummer As Integer, DefaultSheets As Integer

  With Application
    'Haal de flikkering weg
    .ScreenUpdating = False

    'Zet het aantal sheets in nieuw workbook op 1
    DefaultSheets = .SheetsInNewWorkbook
    .SheetsInNewWorkbook = 1

    'Maak nieuw nieuwe agenda aan
    Set NieuweAgenda = .Workbooks.Add

    'weken van het jaar
    WeekNummer = ISOweeknum(DateSerial(Jaar, 1, 1))
    'Week 52/53
    If WeekNummer > 1 Then
      Call VulAgenda(WeekNummer, Jaar)
    End If
    'Week 1 -> 52/53
    For WeekNummer = 1 To ISOweeknum(DateSerial(Jaar, 12, 31))
      Call VulAgenda(WeekNummer, Jaar)
    Next

    'Opruimen
    .DisplayAlerts = False
    NieuweAgenda.Sheets(1).Delete
    NieuweAgenda.Sheets(1).Select
    'ActiveWindow.ScrollWorkbookTabs Position:=xlFirst
    .DisplayAlerts = True
    Set NieuweAgenda = Nothing
    .SheetsInNewWorkbook = DefaultSheets
    .ScreenUpdating = True
  End With
End Sub
Sub VulAgenda(WeekNummer As Integer, Jaar As Long)
  Dim Maandag As Date, SheetName As String

  Maandag = ISOweeknumNaarDatum(Jaar, WeekNummer)
  ThisWorkbook.Sheets(SjabloonBladnaam).Copy After:=NieuweAgenda.Sheets(NieuweAgenda.Sheets.Count)
  With NieuweAgenda.ActiveSheet
    SheetName = CStr(" Week " & WeekNummer)
    If SheetExists(NieuweAgenda, SheetName) Then SheetName = SheetName & "-"
    .Name = SheetName
    .Range(WeekNummerCel) = WeekNummer
    .Range(DatumMaandag) = Maandag
  End With
End Sub

Public Function ISOweeknumNaarDatum(ByVal Jaar As Integer, ByVal Week As Integer) As Date
  Dim Maandag As Date, Weeknum As Integer

  Maandag = EersteMaandagJaar(Jaar)
  Weeknum = ISOweeknum(Maandag)
  'If Weeknum = 53 Then Weeknum = 52
  ISOweeknumNaarDatum = ((Week - Weeknum) * 7) + Maandag
End Function

Public Function ISOweeknum(ByVal Datum As Date) As Integer
  ISOweeknum = DatePart("ww", Datum, vbMonday, vbFirstFourDays)
End Function

Private Function EersteMaandagJaar(ByVal Jaar As Integer) As Date
  Const DONDERDAG = 4
  Dim Nieuwjaar As Date, Weekdag As Integer

  Nieuwjaar = DateSerial(Jaar, 1, 1)
  Weekdag = DatePart("w", Nieuwjaar, vbMonday, vbFirstFourDays) - 1
  EersteMaandagJaar = Nieuwjaar - Weekdag
  If Weekdag > DONDERDAG Then EersteMaandagJaar = EersteMaandagJaar + 7
End Function

'SheetExists Function -> Bestaat de sheet al in het workbook
Private Function SheetExists(Book As Object, SheetName As String) As Boolean
'   Geeft TRUE als sheet bestaat in het actieve workbook
  On Error Resume Next
  Dim x As Object

  SheetExists = False
  Set x = Book.Sheets(SheetName)
  If Err = 0 Then SheetExists = True
  On Error GoTo 0
End Function


Nu is het probleem alleen dat nu ik die van 2010 wil maken, de weektelling niet klopt Maandag week is is geen 4 januari om een of andere reden, ziet iemand waarom ?

Week 53 is goed, maar dan begint week 1 op maandag 29-12 ?
"AAAAAHH ZENNE MOAT, WOARST VLEISCH"
  FOK!fossiel maandag 4 januari 2010 @ 14:53:11 #247
8443 cptmarco
it's captain...
pi_76399047
ik weet niet meer hoe de formule gaat...

Stel (voorbeeld puur voor de formule):
In kolom A staat onder elkaar:: AA20091 t/m AA2009100
In kolom B wil ik alleen maar het stuk na 'AA2009' hebben, dus 1 t/m 100

Via een mooie formule kun je het eerste gedeelte weglaten zodat alleen het laatste deel overblijft...
pi_76401151
=RIGHT(A1,LEN(A1)-6))
pi_76405214
Ik ben op dit moment bezig met een opdracht voor een bedrijf en daarvoor moet ik enorme hoeveelheden data verwerken.

Ik liep daarbij tegen het volgende probleem aan:

Ik gebruik Excel 2007 en wil een aantal pivot graphs maken van data bestaande uit meer dan 1,5 miljoen rijen. Omdat deze Excelversie per tabblad maar iets meer dan een miljoen rijen aan data kan herbergen, moest ik de data verdelen over twee tabbladen.

Nu wil ik voor de analyse van de data doormiddel van pivot tabels and graphs (draaitabellen en -grafieken) alle data selecteren in de pivot wizard, maar op een of andere manier lukt dat niet met de gebruikelijke scheidingstekens waarmee je een range over verschillende gebieden aangeeft, zoals de komma of punt-komma.

bv.

'TAB1'!A1:H3,'TAB2'!A1:H3 werkt niet.



Verder geeft de wizard ook geen mogelijkheid om meerdere ranges aan te geven. Op welke manier moet nu de data selecteren van de twee tabs? Zijn er andere operators voor dit soort situaties? Of moet ik iets met haakjes doen ofzo?

NB Wat aanvullende informatie: ja het aantal kolommen zijn aan elkaar gelijk en de kolommen hebben dezelfde titels (hoef of moet ik de titels trouwens maar 1 keer selecteren?)

[ Bericht 6% gewijzigd door M-Bozz op 04-01-2010 20:23:34 ]
-
  FOK!fossiel maandag 4 januari 2010 @ 18:26:38 #250
8443 cptmarco
it's captain...
abonnement Unibet Coolblue Bitvavo
Forum Opties
Forumhop:
Hop naar:
(afkorting, bv 'KLB')