Vba positieve getallen optellen

Status
Niet open voor verdere reacties.

heetheid

Gebruiker
Lid geworden
13 jan 2012
Berichten
14
dag allemaal
ben ik weer

nu dit begon als een vrije simpele test tot mijn pc raar deed waardoor ik me afvraag of de fout aan mijn pc of aan mij ligt

dit is de bedoeling

een code maken die
- vraag naar een getal en zolang die positief blijf die het optellen tot een negatieve getal ingegeven wordt
en die dan tenslotte met elkaar optellen en weergeven in msgbox ( en dan sluiten)

- Maar als het eerst ingegeven getal < 0 is dan krijg je een foutmelding en begint hij op nieuw (zonder te sluiten)

dit is wat ik dacht :

Code:
intsom = 0
Do

If Intgetal < 0 Then
MsgBox ("geen getal ingegeven")
Else

Intgetal = CInt(InputBox("geef getal"))
IntSom = IntSom + Intgetal

End If

Loop While Intgetal > 0

MsgBox (IntSom)
End Sub

de probleem echter is :
-als het eerste getal < 0 sluit hij af en weergeef de laatste ingegeven getal

-wanneer het eerste getal > 0 geeft hij de som + het laatst ingegeven waarde (bv -5) terwijl hij moet stoppen bij een negatieve getal (zonder die erbij te tellen ) en de som te weergeven

dus de vraag is
is het menselijk error
zo ja
hoe los ik het op
zo nee
HOE LOS IK HET OP !!

alvast bedankt
-
-
-
-
-


Het probleem is OPGELOST en hier is de oplossing ( code door " Warme bakkertje" )

Code:
Sub tst()
Dim IntSom As Double
Dim IntGetal As Double

IntSom = 0

Do
    IntGetal = CInt(InputBox("Geef getal;" & vbLf & "Stop met een negatief getal.", "Typ een getal"))
    If IntGetal < 0 Then Exit Do
    IntSom = IntSom + IntGetal
Loop

MsgBox (IntSom)
End Sub
 
Laatst bewerkt:
Beetje te moeilijk gedacht ;)

Code:
Dim IntSom As Double
Dim IntGetal As Double

IntSom = 0
Do Until IntGetal < 0
    IntGetal = CInt(InputBox("Geef getal;" & vbLf & "Stop met een negatief getal.", "Typ een getal"))
    IntSom = IntSom + IntGetal
Loop

MsgBox (IntSom)
 
Wel ik heb jouw code uitgetest en heeft het zelfde werking als de mijne en hetzelfde fouten

als eerste waarde < 0 is dan sluit hij af en geef hij de laatste waarde (bv -5 )
als je positieve waarde ingeef en dan een negatieve sluit hij af een geef hij de som + het laatst ingegeven waarde (bv 10,5,6,-6) = 15 terwijl hij 21 moet geven

menselijk error of doe mijn pc bizar

suggesties worden met harte genomen
 
Code:
Sub tst()
Dim IntSom As Double
Dim IntGetal As Double

IntSom = 0

Do
    IntGetal = CInt(InputBox("Geef getal;" & vbLf & "Stop met een negatief getal.", "Typ een getal"))
    If IntGetal < 0 Then Exit Do
    IntSom = IntSom + IntGetal
Loop

MsgBox (IntSom)
End Sub
 
Ja dit is hem !!
deze code werkt prima

er zijn wat schoonheid foutjes , maar ik ben uiterst tevreden je heb mijn dankbaarheid

maar kunt u mij vertellen wat " then exit do " doet want dit is de eerste keer dat ik deze eigenschap gebruik zie worden gebruik zie worden
 
Laatst bewerkt:
Exit Do heeft gewoon als bedoeling dat wanneer je ingevoerde getal niet meer aan je voorwaarde voldoet (negatief getal) dat je uit de loop springt. Zolang je dus geen negatief getal invoert blijf je in de loop.
 
@heetheid Veel van jouw vragen rieken naar schoolopdrachten, tentamenvragen of hoe je het ook wil noemen. Houd er rekeing mee dat dit niet is toegestaan op Helpmij. Wanneer ik tot de conclusie kom dat mijn aanname waarheid is zullen je vragen gesloten worden.
 
@huijb Het zijn ook schoolopdrachten, maar omdat TS ook de moeite deed om zelf iets te brengen wou ik toch een handje helpen. Mijn excuses als dit een brugje te ver was.
 
Gezien al zijn vragen omtrent "Een aflossingsplan opstellen in VBA" zijn jullie ondertussen zijn opdracht aan het maken. Dat kan niet de bedoeling zijn.
 
@huijb

Mijn excuses ik wist niet dat het niet mocht
het zijn vragen die ik gelezen had in een boek van één van mijn vrienden die nu afgestudeerd is en besloot er zelf aan te beginnen sinds ik vanaf het 2de trimester over Vba,java en nog andere talen ga leren
dacht ik wat te oefenen

Nu ik weet dat zulke activiteiten niet toegestaan is zal ik zo'n vragen niet meer posten

groetjes
 
Status
Niet open voor verdere reacties.
Steun Ons

Nieuwste berichten

Terug
Bovenaan Onderaan