1 |
Hi Poepoog,quote:Op zaterdag 12 december 2009 23:26 schreef Poepoog het volgende:
[..]
Iemand![]()
Gaat om een URL waarachter automagisch een nummer geplakt moet worden. www.nummerkomthierachter.nl/track.jps[nummer]
quote:Op maandag 14 december 2009 19:03 schreef HeetBoven het volgende:
[..]
Hi Poepoog,
Extra kolommetje aanmaken naast je tracking nummer (H kolom = kolom met tracking nummers in onderstaande formule) en je link zonder tracking nummer op een fixed locatie zetten in je sheet ($i$1 hieronder) dan de formule hieronder doorkopieren.
=HYPERLINK($I$1&$H1;$H1)
Succes!
HeetBoven
Daar zet je gewoon de link van je website neer, of als je het helemaal geintegreerd wil hebben, vervang je $I$1 met "www.nummerkomthierachter.nl/track.jps/" ( " 2x niet vergeten!)quote:Op maandag 14 december 2009 20:05 schreef Poepoog het volgende:
[..]
Dank!
Nog een vraagje,
Hoe maak ik een fixed location aan met $i$1?
Echt een n00b dus
Stel in A1 staat "Sheet2" (zonder aanhalingstekens).quote:Op maandag 14 december 2009 18:11 schreef znarch het volgende:
Nu is de vraag dus, hoe zorg ik ervoor dat ik in mijn hoofdtab, het aantal gewerkte uren uit de tab van de huide werkweek weergeef ?
1 |
1 |
moet je een macrootje maken, ff uit het hoofd.quote:Op dinsdag 15 december 2009 18:51 schreef lobzorenzo het volgende:
Excel problemen!Wie kan helpen
Ik heb het volgende probleem. In cell A1 t/m A10 heb ik 10 verschillende getallen staan. Vervolgens zijn cell A11 tot en met A20 leeg. Dan komen er in A21 t/m A30 weer 10 getallen. Dit gaat steeds door, en de lijst breidt zich steeds verder uit naar onder (ja ik heb even een macro erin gegooid 8)).
Mijn vraag is nu, hoe kan ik in bijvoorbeeld column D1 tot en met D10 steeds de laatste 10 cells met getallen weergeven die in column A staan? Dus als A41-A50 de laatste zijn van het rijtje, hoe kan ik die dan in D1-D10 krijgen? En dat het telkens update als bijvoorbeeld A61-A70 weer gevuld worden met getallen?
Alvast héél erg bedankt!
1 2 3 4 5 6 7 8 9 10 | ActiveSheet.Range("a10000").End(xlUp).Select For i = 1 to 10 j=-1*i range("D"&i).value = activecell.offset(j,0) next i end sub |
Ik snap jequote:Op maandag 14 december 2009 22:24 schreef DaFan het volgende:
[..]
Stel in A1 staat "Sheet2" (zonder aanhalingstekens).
Stel op mijn Sheet2 in cel A1 staat "toet toet"
Dan geeft de volgende formule in Sheet1, de waarde uit A1 in Sheet2 weer:
=INDIRECT(A1 & "!A1")
Is dat duidelijk dan hoe je een sheetnaam uit een cel kan gebruiken?
Ik heb het geïmplementeerd, en het is een goede oplossing, maar toch is er iets mee. Ik heb hem inderdaad achter de update code gegooid, zodat het mee-update elke 30 seconden. Alleen het hele bestand wordt er gewoon te traag door. Omdat hij meer dan 1000 regels eerst om moet keren en vervolgens de 1e 10 moet pakken (ik neem aan dat het stukje code daarvoor zorgt, maar ik ben niet zo'n expertquote:Op dinsdag 15 december 2009 21:05 schreef Deetch het volgende:
[..]
moet je een macrootje maken, ff uit het hoofd.
[ code verwijderd ]
Elke keer als je dan wilt updaten kun je die code runnen. Je zou hem ook achter je code van het maken van je rijtje kunnen plakken, ben je in een keer klaar.
Beter nog je zou de code waarmee die 10 cellen worden gevuld ook kunnen grbruiken om de cellen D1 tm D10 te vullen.
Geef je formule eens?quote:Op dinsdag 15 december 2009 21:31 schreef znarch het volgende:
[..]
Ik snap jeHij werkt alleen niet
Ik krijg de ref fout
Dus je geeft de 3 kolommen al aan ergens?quote:Op woensdag 16 december 2009 02:59 schreef Nerobacsi het volgende:
Kan iemand mij helpen met een formule?
Ik wil graag de waarden selecteren die in drie kolommen tegelijk voorkomen. Het lukt me nu wel in twee stappen via voorwaardelijke opmaak, maar ik zou het liefst een lijstje van de drie-dubbelen netjes in een aparte kolom gepresenteerd krijgen.
Waar ik het voor nodig heb: voor een forum op een torrentsite maak ik graag raadseltjes in een wedstrijd. Daarvoor heb ik van IMDB van zo'n 300 TV-series alle acteurs in excel gezet. Per kolom een serie. Voor de puzzeltjes wil ik weten welke acteurs allemaal in dezelfde drie TV-series hebben meegedaan. Ik kies zelf de drie kolommen uit.
Zo doe ik het nu:
[ afbeelding ]
Maar het moet handiger kunnen, alleen ik weet niet hoe.
Ja, ik kies willekeurig een drietal kolommen uit om te proberen of en hoeveel acteurs in alle drie daarvan gespeeld hebben. Soms zet ik die kolommen voor het gemak even naast mekaar; ze hoeven niet op alfabet te blijven of zo.quote:Op woensdag 16 december 2009 08:25 schreef DaFan het volgende:
[..]
Dus je geeft de 3 kolommen al aan ergens?
Dus je kijkt niet welke waarden in welke 3 kolommen komen, maar welke waarden in 3 vaste kolommen voorkomen?
Ik vind het een goed idee, maar dit gaat niet lukken, helaas. Ik heb het geprobeerd, maar het probleem is dat er niet altijd 10 gevulde cellen zijn. Bij minder dan 10 gevulde cellen krijg ik inderdaad 0.quote:Op woensdag 16 december 2009 08:13 schreef DaFan het volgende:
loblorenzo:
Als je in A1:A10 (of in A1034:A1044) je 10 waardes hebt staan, geeft de volgende formule in D1:D10 je laatste 10 waarden uit kolom A:
=INDIRECT(ADRES(VERGELIJKEN(9E+307;A:A)-(10-RIJ());1))
Dit werkt alleen als er 10 waarden achter elkaar staan, als er 9 staan bv dan wordt de eerste een 0 omdat de cel 10 rijen boven je laatste waarde leeg is.
Hoop dat je hier wat aan hebt.
Ik hoop het. Ik heb de macro van internet geplukt, maar dit is 'em:quote:Op woensdag 16 december 2009 12:01 schreef Deetch het volgende:
maar als je toch een macro hebt die steeds verse getallen toevoegt kun je die toch ook de verse getallen in cellen D1 tm D10 laten schrijven of ben ik nou debiel. Hoe ziet die macro voor je verse getallen eruit, ws. kun je daar door 1 regeltje toe te voegen precies krijgen wat je wilt.
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 | Public Const cRunIntervalSeconds = 30 ' one minute Public Const cRunWhat = "DoTheImport" ' the name of the procedure to run Sub StartTimer() RunWhen = Now + TimeSerial(0, 0, cRunIntervalSeconds) Application.OnTime EarliestTime:=RunWhen, Procedure:=cRunWhat, _ Schedule:=True End Sub '''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''' ' ImportTextFile ' This imports a text file into Excel. '''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''' Public Sub ImportTextFile(FName As String, Sep As String) Dim RowNdx As Long Dim ColNdx As Integer Dim TempVal As Variant Dim WholeLine As String Dim Pos As Integer Dim NextPos As Integer Dim SaveColNdx As Integer Application.ScreenUpdating = False 'On Error GoTo EndMacro: SaveColNdx = 1 RowNdx = 1 Open FName For Input Access Read As #1 While Not EOF(1) Line Input #1, WholeLine If Right(WholeLine, 1) <> Sep Then WholeLine = WholeLine & Sep End If ColNdx = SaveColNdx Pos = 1 NextPos = InStr(Pos, WholeLine, Sep) While NextPos >= 1 TempVal = Mid(WholeLine, Pos, NextPos - Pos) Cells(RowNdx, ColNdx).Value = TempVal Pos = NextPos + 1 ColNdx = ColNdx + 1 NextPos = InStr(Pos, WholeLine, Sep) Wend RowNdx = RowNdx + 1 Wend EndMacro: On Error GoTo 0 Application.ScreenUpdating = True Close #1 '''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''' ' END ImportTextFile '''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''' End Sub Sub DoTheImport() ImportTextFile FName:=textbestand.txt", Sep:=" " StartTimer ' Reschedule the procedure End Sub |
HET WERKT!!quote:Op woensdag 16 december 2009 12:08 schreef DaFan het volgende:
Hm zou dit voor je werken Nero:
Ik heb in A2:C6 een aantal waarden staan, waarvan in alle drie kolommen een bepaalde waarde drie keer voorkomt.
Via Voorwaardelijke opmaak, kies ik A2:C6, vanaf A2, en voer dan in als formule:
=AANTAL.ALS($A$2:$C$6;A2)>2
=COUNTIF($A$2:$C$6,A2)>2)
En dan kies ik een opmaak.
Alles wat nu in alle drie de kolommen voorkomt, wordt gekleurd.
Nadeel hiervan is dat ook als een naam dubbel in de lijst staat, deze wordt gekleurd (dus zeg maar 2x in kolom 1 en 1x in kolom 2, dan kleurt ie).
Maarrrr er staan nooit 2 acteurs in dezelfde kolom toch?
Werkt dat voor je?
Met een macro kan je evt later nog dan de gekleurde cellen zoeken in een kolom en die in een apart deel als output genereren.
Was die voor mij?quote:Op dinsdag 15 december 2009 20:51 schreef Deetch het volgende:
staan die getallen allemaal in 1 regel? Dan eerst uitsplitsen naar kolommen. Daarna kun je gewoon van elke cel de kolompositie berekenen.
No problemo, succes met je quiz.quote:Op woensdag 16 december 2009 12:39 schreef Nerobacsi het volgende:
[..]
HET WERKT!!![]()
En er komen inderdaad nooit dubbelen in dezelfde kolom voor, dus dat gaat perfect zo.
Geweldig bedankt voor de (snelle!) hulp!!
quote:Op woensdag 16 december 2009 11:50 schreef DaFan het volgende:
Denk dat het ook wel anders kan.
Wil je dan alsnog de laatste 10 waardes, dus als er 8 zijn ingevuld, wil je dan ook de laatste 2 van de vorige 10?
Nee helaas niet, steeds verschillend hoeveel rijen ertussen zitten.quote:Op woensdag 16 december 2009 13:29 schreef DaFan het volgende:
Het is makkelijker om er 10 weer te geven dan 8 als er maar 8 zijn.
Ik moet er nog wel ff over nadenken...
Beginnen je gegevens wel altijd op een vaste rij, dus altijd een meervoud van 10 + 1 (1, 11, 21 etc)
1 |
1 |
Wat zou dit moeten doen dan? Want volgens mij kopieert ie de 4e kolom, namelijk D, naar kolom 4+1, namelijk E.quote:Op woensdag 16 december 2009 13:38 schreef Deetch het volgende:
voeg onder regel 45
[ code verwijderd ]
de volgende regel toe:
[ code verwijderd ]
Volgens mij werkt het dan.
Aangepaste notatie > 000quote:Op woensdag 16 december 2009 14:37 schreef GuitarJJ het volgende:
Hallo,
even een simpele vraag; wat voor celinstellingen moet je gebruiken om het getaal 030 te kunnen typen? Hij verandert het telkens in 30 of 30,0
of begin met een ' (je kan er dan alleen niet meer mee rekenen, maar ik gok dat het om kengetallen gaat)quote:Op woensdag 16 december 2009 14:37 schreef GuitarJJ het volgende:
Hallo,
even een simpele vraag; wat voor celinstellingen moet je gebruiken om het getaal 030 te kunnen typen? Hij verandert het telkens in 30 of 30,0
Als ik de regel toevoeg aan de macro, dan kopieert ie alle gevulde cellen uit kolom E naar kolom D.quote:Op woensdag 16 december 2009 14:11 schreef Deetch het volgende:
is dat wat ie doet of wat je denkt dat ie doet?
Als ik die code goed heb gelezen leest je macro een regel en voegt elke waarde tussen spaties (sep=" ") in een nieuwe regel toe. Wat die nieuwe regel doet is dezelfde data in kolom D op dezelfde rij toevoegen.
Het is een grootboekrekeningnummer waar niet meer gerekend hoeft te wordenquote:Op woensdag 16 december 2009 14:41 schreef qu63 het volgende:
[..]
of begin met een ' (je kan er dan alleen niet meer mee rekenen, maar ik gok dat het om kengetallen gaat)
Dan kan je het ook doen dmv een apostrof (')quote:Op woensdag 16 december 2009 15:09 schreef GuitarJJ het volgende:
[..]
Het is een grootboekrekeningnummer waar niet meer gerekend hoeft te worden
Ik zal mijn vorige code nog eens herschrijven om hem sneller te maken, blijkbaar heb ik jouw gekopieerde macro verkeerd begrepen. Vanavond meer.quote:Op woensdag 16 december 2009 15:07 schreef lobzorenzo het volgende:
[..]
Als ik de regel toevoeg aan de macro, dan kopieert ie alle gevulde cellen uit kolom E naar kolom D.
De lege cellen van kolom E worden niet gekopieerd, daar blijft de data die oorspronkelijk in kolom D staat gewoon staan.
Maar wat nu
Of als je wel moet rekenen: je gaat naar celeigenschappen, dan maak je de bij Getal -> aangepast een nieuw type aan dmv onder Type zoveel nullen in te geven als je nodig hebt.quote:Op woensdag 16 december 2009 15:57 schreef qu63 het volgende:
[..]
Dan kan je het ook doen dmv een apostrof (')
ik was niet in staat eerder te reageren, sorry.quote:
1 |
quote:Op woensdag 16 december 2009 18:00 schreef HeetBoven het volgende:
[..]
Of als je wel moet rekenen: je gaat naar celeigenschappen, dan maak je de bij Getal -> aangepast een nieuw type aan dmv onder Type zoveel nullen in te geven als je nodig hebt.
quote:
je bent nu al m'n held, of het nou lukt of nietquote:Op woensdag 16 december 2009 16:20 schreef Deetch het volgende:
[..]
Ik zal mijn vorige code nog eens herschrijven om hem sneller te maken, blijkbaar heb ik jouw gekopieerde macro verkeerd begrepen. Vanavond meer.
je moet even met extra aanhalingstekens werken:quote:Op woensdag 16 december 2009 18:44 schreef znarch het volgende:
[..]
ik was niet in staat eerder te reageren, sorry.
Ik gebruik jouw formule:
[ code verwijderd ]
In cel A1 staat de naam van de Tab waar hij moet kijken genaamd: 2009 Week 51 (of zoiets) (de cel geeft de huidige week weer).
mijn !A1 (de 2de) staat op !S32, deze cel (op sheet 2009 Week 51) is de waarde die ik wil zien.
Wellicht dat deze code sneller is: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
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 | '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 |
Ja dat werkt!!!quote:Op donderdag 17 december 2009 11:25 schreef Deetch het volgende:
[..]
Wellicht dat deze code sneller is:
[ code verwijderd ]
hahaha ik roeleer. Toch geen verloren dag dan zo ingeschneeuwd in Groningen.quote:Op donderdag 17 december 2009 12:19 schreef lobzorenzo het volgende:
[..]
Ja dat werkt!!!![]()
![]()
Bedankt! Echt super!
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/quote:Op donderdag 17 december 2009 14:47 schreef DaFan het volgende:
Luie donder ga gewoon werken!!
Klopt. Dat had ik ook gedaan. Bedanktquote: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..
Deze werkt. Let ook op de afrondfunctie om rekenfouten te corrigeren. En datquote: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
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 | 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 / myArray ![]() 'tekstregel maken met het aantalcoupures en het type change = change & flappen & "x" & myArray ![]() 'oevrgebleven bedrag berekenen dat nog gewisseld moet worden, afronden op 2 decimalen om rekenfouten te voorkomen diff = Round((diff - flappen * myArray ![]() Next i 'tekst box met te wisselen bedrag en hoe deze te wisselen MsgBox bedrag & ":-->" & change End Sub |
idd. mooi gemaakt! Zo zou ik het ook ongeveer doen, denk ik.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 datstaat voor ( i ) (zonder spaties.
[ code verwijderd ]
watquote: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
1 2 3 4 5 6 | for i = 1 to 100 range("H1").value = i printen van pagina code die je had opgenomen next i |
Waarom in VBA?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 datstaat voor ( i ) (zonder spaties.
[ code verwijderd ]
Dank voor je snelle respons, maar het lukt niet echtquote: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.
In B3 komt dit:quote:Op woensdag 23 december 2009 18:39 schreef RoaldReurink het volgende:
[..]
Dank voor je snelle respons, maar het lukt niet echtEven 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 ]
geen idee wat je nu precies wilt... Je wilt iets laten selecteren op basis van de selectie man of vrouw, of wat?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
Dan krijg je je leeftijd in dagen, wat niet altijd even handig is om mee te rekenen.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?
dat klopt niet, het moet dit zijn: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 zei ik tochquote: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
ja, als je enkel jaren moet hebben is dat idd het makkelijkste maar soms is het exact nodig.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
jij: YEAR(NOW())-YEAR(A1)+(MONTH(NOW())-MONTH(A1)/12+(DAY(NOW())-DAY(A1))/365quote:Op maandag 28 december 2009 15:54 schreef Beregd het volgende:
[..]
dat zei ik toch
en waarom vraag je het dan?
Dat wordt pas na 100 jaar ofzo een issue, of de dag erna. Maar goed ik snap je puntquote: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
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?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
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.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]
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((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))
ik heb alle relevante cellen (of cellranges) een naam gegeven, dit houdt je "code" ook wat beter onderhoudbaar.quote:=INDEX(prijzen;IF(geslacht="man";MATCH(leeftijd;leeftijden_man);MATCH(leeftijd;leeftijden_vrouw));MATCH(duur;premie_lengtes))
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 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 |
Gebruik dynamische tabellen (ook wel draaitabellen of pivot tabels genoemd). Er staat genoeg handleidingen online!quote:Iemand een oplossing??
1 |
Fantastisch, precies way ik zocht! Zo leer ik nog eens wat!quote:Op maandag 4 januari 2010 22:01 schreef DaFan het volgende:
[ afbeelding ]
Waar G2:
[ code verwijderd ]
En dan gewoon doorgetrokken naar beneden.
Hoop dat dat duidelijk genoeg is!
quote:Op dinsdag 5 januari 2010 00:08 schreef Deetch het volgende:
lol, toch weer een sumproduct kunnen slijten DaFan.
quote:
Ik raad je ook aan mijn tip eens te bekijken.. de mogelijkheden van die dynamische tabellen zijn legio!quote:Op maandag 4 januari 2010 23:34 schreef elkravo het volgende:
[..]
Fantastisch, precies way ik zocht! Zo leer ik nog eens wat!
PIvot tables zijn handig, maar in mijn zaak bestaat de uiteindelijke tabel al, en moet die veelvuldig berekend worden door mensen die nog slechter als ik in Excel zijn... dan heb ik liever een uitgekauwd stukje paraat... nevertheless bedankt voor je ideequote:Op dinsdag 5 januari 2010 15:46 schreef M-Bozz het volgende:
[..]
Ik raad je ook aan mijn tip eens te bekijken.. de mogelijkheden van die dynamische tabellen zijn legio!
Kan niemand mij helpen bij mijn vraag van gisteren?![]()
Als je mij een voorbeeldbestand (of een van je echte bestanden, wat jij wil) stuurt, dan wil ik wel even proberen wat voor je in elkaar te draaien.. Het leuke ervan is dat het dynamisch is en je alleen de tabel of grafiek hoeft te updaten na het aanvullen van je sheet...quote:Op dinsdag 5 januari 2010 18:01 schreef elkravo het volgende:
[..]
PIvot tables zijn handig, maar in mijn zaak bestaat de uiteindelijke tabel al, en moet die veelvuldig berekend worden door mensen die nog slechter als ik in Excel zijn... dan heb ik liever een uitgekauwd stukje paraat... nevertheless bedankt voor je idee
Die werkt helaas niet.quote:
Die 2e doet precies wat ik zoek.quote:Op donderdag 7 januari 2010 14:57 schreef DaFan het volgende:
[ afbeelding ]
Waar D1 =
=VERT.ZOEKEN(C1;A1:B4;2;1)
Of:
=ALS(C1<10;1;ALS(C1<20;2;ALS(C1<30;3;4)))
Jij ook bedankt.quote:Op donderdag 7 januari 2010 14:59 schreef DaFan het volgende:
Dan moet je de VLOOKUP oplossing gebruiken.
Sorry ik heb op werk alleen Nederlandse versie, geen Engels.
Excel voor 2007quote:Op vrijdag 8 januari 2010 14:49 schreef kippiej het volgende:
Geen zin in de zoekfunctie, dus ik stel mn vraag hier maar
Ik heb een enorme hoeveelheid data, die excel niet kan verwerken. Excel heeft een limiet van 65000 gegevens in een rij.
Een grafiek heeft ene nog lagere limiet dan dat.
Is er een optie binnen excel dat dat wel kan? Of moet ik dan een ander spreadsheet programma gebruiken ?
zoals ik het lees, zou dit een oplossing zijn:quote:Op zaterdag 9 januari 2010 01:02 schreef ColaKoning het volgende:
Voor mijn afstudeeropdracht maak ik gebruik van een erg fijn instrument die een .txt output heeft met 280 regels. Elk van deze regels is een reeks van reactietijden op een bepaalde stimuli. Er zijn dus 280 stimuli aangeboden. Verder bestaat elke reactie op de stimuli uit 4 reactietijden en een 'break'. Maar, mensen kunnen ook fouten maken bij de stimuli, wat resulteert in meer dan 4 reactietijden weer incl een break.
Enfin, omzetten naar excel gaat prima. Ik krijg in excel de kolommen A tm M in het geval van een 'goede' trial. Deze bestaat uit kolom A B C met informatie over de aangeboden stimuli, D tm M bestaat uit 4 reactie tijden (D is de tekst RT1, en E is de daarbij horende RT), en een break. In het geval van een error loopt het aantal kolommen op. Dit kan bijvoorbeeld oplopen tot kolom AO.
Nu wil het geval, dat ik per regel, slechts kolom A B C, en de laatste 4 kolommen van deze zelfde regel nodig heb. Dit is handmatig niet te doen, ik heb 280 regels maal minimaal 20 personen.
Ik vraag me dus af of het met (wellicht een makro?) mogelijk is om per regel excel te laten kijken wat de laatste 4 kolommen zijn per regel, en deze samen met de kolommen ABC te kopieren naar een nieuw werkblad.
Daarnaast zou het ook helemaal geweldig zijn wanneer excel kijkt of de regel langer is dan kolom M, is dat het geval, deze dan het cijfer 1 te geven. Is dit niet het geval, dan krijgt hij het cijfer 2.
Ik zal zeker ook mee zoeken naar een manier om dit te realiseren, maar wellicht hebben jullie nog een goede ingeving
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 | 'loop maken om door de rijen heen te lopen rw = 1 Do 'nu een loopje om de laatste kolom te zoeken klm = 0 Do klm = klm + 1 Loop Until Cells(rw, klm).Value = "" 'nu op basis van rw en klm de gegevens over nemen op het 2e blad For j = 1 To 3 Sheets("Blad2").Cells(rw, j).Value = Sheets("Blad1").Cells(rw, j).Value Next j For j = 1 To 4 Sheets("Blad2").Cells(rw, (j + 3)).Value = Sheets("Blad1").Cells(rw, (klm - 5 + j)).Value Next j If klm>13 then Sheets("Blad2").cells(rw, 8).value = 1 else Sheets("Blad2").cells(rw, 8).value = 2 end if rw = rw + 1 Loop Until Cells(rw, 1).Value = "" End Sub |
ik weet niet of dit je helpt, maar je kan met ctrl en pijltje naar beneden naar de laatst gevulde cel van dat blokje gaan. Als je dat dan doet terwijl je shift ingedrukt houdt, dan heb je snel de 1e t/m de laatste cel van die kolom geselecteerd. Kun je toch handmatig een rand maken.quote:Op zaterdag 9 januari 2010 11:37 schreef EddyAlbena het volgende:
Hoe kan ik de onderkant van een werkblad verwijderen? Ik heb bijv. door op A te klikken en een lijn aan de zijkant van deze kolommen te doen een lijn naar het oneindige lopen, terwijl dat maar tot rij 200 ofzo moet. Nu zeg je misschien: dat kun je toch gewoon handmatig ff volledig wehalen en vervolgens enkel een lijn tot rij 200 zetten.
Neen dat kan niet, want dit blad is megagroot waardoor ik daar uren mee bezig ben.
Perfect! Alles wegquote:Op zaterdag 9 januari 2010 15:24 schreef Joooo-pi het volgende:
[..]
ik weet niet of dit je helpt, maar je kan met ctrl en pijltje naar beneden naar de laatst gevulde cel van dat blokje gaan. Als je dat dan doet terwijl je shift ingedrukt houdt, dan heb je snel de 1e t/m de laatste cel van die kolom geselecteerd. Kun je toch handmatig een rand maken.
1 2 3 4 5 | Application.EnableAutoComplete = False End Sub |
thx goede tip. Er zijn best wel wat mensen die dit document moeten gaan invullen. Veel mensen hebben macro's uitstaan vermoed ik. Ik heb het nu opgelost door een lege regel toe te voegen. Dan pakt hij hem ook niet mee.quote:Op dinsdag 12 januari 2010 13:11 schreef DaFan het volgende:
Plak dit in VBA editor - ThisWorkbook:
[ code verwijderd ]
Dan zet ie m automatisch uit als iemand het bestand opent.
je kan dan werken met de formule isfout en als. Iets als =als(isfout(som(g10+I10));"nog geen waarde of 0";G10+I10) of met de formula isgetal. Dan wordt het zoiets als =ALS(EN(ISGETAL(G10);ISGETAL(G11));G10+G11;"nog geen waarde ingevuld").quote:Op dinsdag 12 januari 2010 21:17 schreef mirelia het volgende:
Ik heb in een sheet de volgende formule staan =SUM(G10+I10). maar omdat gevraagde cellen nog leeg zijn geeft deze cel nu #VALUE! aan en dat vind ik er niet uitzien. wat kan je daar aan veranderen?
ofquote:Op dinsdag 12 januari 2010 23:32 schreef jakees het volgende:
[..]
je kan dan werken met de formule isfout en als. Iets als =als(isfout(som(g10+I10));"nog geen waarde of 0";G10+I10) of met de formula isgetal. Dan wordt het zoiets als =ALS(EN(ISGETAL(G10);ISGETAL(G11));G10+G11;"nog geen waarde ingevuld").
De engelse formule namen moet je even zelf opzoeken op http://www.applewood.nl/forms/3000/FRM-004/index.asp.
s6
Ja ik zou zeggen dat die cellen G10/G11 formules of vlookups bevatten die nog geen waarde hebben of een waarde in de trand van #NB of tekstueel iets. Weet jij wanneer er #VALUE in een kolom komt? Dat is volgens mij niet als je een optelsom doet met lege cellen. Dan komt er gewoon 0 te staan.quote:Op dinsdag 12 januari 2010 23:43 schreef qu63 het volgende:
[..]
of
ALS(OF(G10="";G11="");"leeg";G10+G11)
Volgens mij wel in de laatste versie van Office.quote:Op woensdag 13 januari 2010 08:17 schreef jakees het volgende:
[..]
Hoe bedoel je? Als het Xlsm is dan is het een macro of zo?
Forum Opties | |
---|---|
Forumhop: | |
Hop naar: |