quote:Op woensdag 16 december 2009 22:20 schreef znarch het volgende:
Jep
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!!! Bedankt! Echt super!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 dat staat voor ( i ) (zonder spaties.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
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), 2) 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 dat staat 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 dat staat voor ( i ) (zonder spaties.
[ code verwijderd ]
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.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.
Forum Opties | |
---|---|
Forumhop: | |
Hop naar: |