Dag Leden
voor degene onder jullie die graag raadsel oplossen in vba ben ik jullie vragen bron ^^
okay weer een nieuw probleem waar ik niet uit kan na vele pogingen
dit is de bedoeling :
het programma moet het gebruiker tekens een waarde vragen en die dan vergelijken of het
1. Binnen de grenzen ligt (Min en Max ) en 2. of het wel of geen Integer is.
enkel wanneer hij binnen de grenzen ligt en een integer is mag hij de ingegeven waarde afdrukken.
let op !!
de grenzen zijn dynamisch en worden bepaald door een for lus.
waarbij de Min -100 tot -400 en de Max 100 tot 400
Het programma mag de gebruiken maar 4 keer vragen om een waarde in te geven
met telkens de grenzen
-100 tot 100
-200 tot 200
-300 tot 300
-400 tot 400
het programma moet na elke grens (wanneer voldoet aan de 2 voorwaarden ) het resultaat weergeven.
dit is wat ik dacht (het is een heel boterham dus neem u tijd in het bekijken :
Wanneer ik deze programma run
Krijg ik deze resultaten
- het controle of het een integer is verloop normaal
- ik word 8 keer gevraag om een waarde in te geven ipv 4
dus weet iemand hoe ik ervoor zorg dat hij mij maar 4 keer vraag om iets in te geven met telkens de grenzen die hij moet controleren (zie grenzen) ?
ik hoop dat dit duidelijker is ..
sorry voor mijn taal ( Mijn moedertaal is Engels dusja )
groetjes en alvast bedankt
voor degene onder jullie die graag raadsel oplossen in vba ben ik jullie vragen bron ^^
okay weer een nieuw probleem waar ik niet uit kan na vele pogingen
dit is de bedoeling :
het programma moet het gebruiker tekens een waarde vragen en die dan vergelijken of het
1. Binnen de grenzen ligt (Min en Max ) en 2. of het wel of geen Integer is.
enkel wanneer hij binnen de grenzen ligt en een integer is mag hij de ingegeven waarde afdrukken.
let op !!
de grenzen zijn dynamisch en worden bepaald door een for lus.
waarbij de Min -100 tot -400 en de Max 100 tot 400
Het programma mag de gebruiken maar 4 keer vragen om een waarde in te geven
met telkens de grenzen
-100 tot 100
-200 tot 200
-300 tot 300
-400 tot 400
het programma moet na elke grens (wanneer voldoet aan de 2 voorwaarden ) het resultaat weergeven.
dit is wat ik dacht (het is een heel boterham dus neem u tijd in het bekijken :
Code:
Sub Oef5_LimietTest()
Dim IntA As Integer
Dim IntB As Integer
Dim intC As Integer
For IntB = 100 To 400 Step 100
For intC = -100 To -400 Step -100
IntA = IntegerMinMax(intC, IntB)
Call DrukWaardeAf(IntA, intC, IntB)
Next intC
Next IntB
End Sub
Function IntegerMinMax(Min As Integer, Max As Integer) As Integer 'geef een integer terug
Dim Intgetal As Integer
Dim Dblgetal As Double
Dim Stra As String
Dim BlnTest As Boolean
Dim answer As VbMsgBoxResult
BlnTest = True
Do While BlnTest = True
Stra = InputBox("geef een getal in aub ")
If IsNumeric(Stra) Then 'kijken of het wel een cijfer is
Dblgetal = CDbl(Stra)
If Dblgetal > Min And Dblgetal < Max Then ' bereik is nu die van IntB (ookwel Max hier genoemd)
Intgetal = CInt(Dblgetal)
If Intgetal = Dblgetal Then
' hoewel het normaal lijkt mag je hier nog geen waarde teruggeven
BlnTest = False
Else
answer = MsgBox("(" & CStr(Dblgetal) & ")" & " Bevat Komma ", vbOKOnly, " Error!! Komma (Getal) ")
End If
Else
answer = MsgBox("(" & CStr(Dblgetal) & ")" & "<" & CStr(Min) & CStr(Max), vbOKOnly, " ERROR !! Lengte Error ")
End If
Else
answer = MsgBox("(" & Stra & ")" & " Is toch duidelijk GEEN getal ", vbOKOnly, " ERROR !!GEEN GETAL ")
End If
Loop
IntegerMax = Intgetal
End Function
Sub DrukWaardeAf(getal As Integer, Min As Integer, Max As Integer)
Dim answer As VbMsgBoxResult
answer = MsgBox("(" & CStr(getal) & ")" & " Is een Integer en WEL ligt tussen " & CStr(Min) & " en " & CStr(Max), vbOKOnly, " Integer Getal ")
End Sub
Wanneer ik deze programma run
Krijg ik deze resultaten
- het controle of het een integer is verloop normaal
- ik word 8 keer gevraag om een waarde in te geven ipv 4
dus weet iemand hoe ik ervoor zorg dat hij mij maar 4 keer vraag om iets in te geven met telkens de grenzen die hij moet controleren (zie grenzen) ?
ik hoop dat dit duidelijker is ..
sorry voor mijn taal ( Mijn moedertaal is Engels dusja )
groetjes en alvast bedankt
Laatst bewerkt: