marjan
Artikelen: 0
Berichten: 34
Lid geworden op: vr 23 okt 2009, 12:51

Macro met vba

Hoi ik heb nog een vraagje

ik drie code gehreven met if statments maar ik moet er een do While in verwerken

bij 1ste mogen alleen hoofdletters in de in de inputbox gelacht ingegeven zolang er kleine letters inggeven zijn moet inputbox gegeven

Option Explicit

Sub geslacht()

Dim naam As String

Dim geslacht As String

Dim V As String

Dim M As String

naam = InputBox("geef uw naam", naam)

geslacht = InputBox("geef M of V in", geslacht)

Do While geslacht = "m" Or "v"

If geslacht = "m" Or "v" Then

geslacht = InputBox("geef M of V in", geslacht)

If geslacht = "V" Then

Debug.Print naam & " Vrouw"

Else

Debug.Print naam & " Man"

End If

Loop

End Sub

weet iemand wat ik fout doe

bij de tweede opdracht heb ik hetzelde probleem ik weet niet wat mis doe met do While

Option Explicit

Sub letters()

Dim letter As Integer

Dim woord As String

Dim lengte As Integer



woord = InputBox("Geef een woord", "woord")

lengte = Len(woord)

If lengte <> 6 Then

MsgBox ("het woord mag maar 6 letters tellen")

woord = InputBox("Geef een woord", woord)

Else

If lengte = 6 Then

woord = (Mid(woord, 2, 5))

End If

MsgBox woord

End Sub

zolalag het woord niet gelijk aan 6 letters moet dit MsgBox ("het woord mag maar 6 letters tellen")

woord = InputBox("Geef een woord", woord") worden

bedankt voor de hulp
mcs51mc
Artikelen: 0
Berichten: 473
Lid geworden op: za 23 jan 2010, 13:42

Re: Macro met vba

Laten we eens je eerste code analyseren:

Do While geslacht = "m" Or "v"

Die "v" op het einde staat daar maar zo op zijn eentje en dat klopt niet! Wat moet met die "v" gebeuren?

Vergelijken met "geslacht" natuurlijk, dus wordt het "geslacht = "v"

De volledige opdracht wordt dus: Do While geslacht = "m" Or geslacht = "v"

Zelfde opmerking voor die If een beetje verder op ;)

En verder...

Tel eens het aantal If's, Else'n en End If's je zal zien dat er iets niet klopt ](*,)

Dan nog dit...

Een vergelijking "If geslacht = "V"" is case sensitive!!!!

Dus als je problemen wilt voorkomen zou je beter de ingave van de gebruiker naar hoofdletters zetten en dan vergelijken met M of V.

Nu vraag je om "m" of "v" in te geven en je vergelijkt met hoofd- en kleine letters door elkaar ;)

Herschrijf dus eerst die eerste code en dan zien we wel voor de rest 8-)

Dan nog even dit

Mag ik vragen een beetje "good practice" in te voeren :eusa_whistle:

Dus geen Dim naam as String maar wel Dim strNaam as string

Dus geen Dim geslacht as String maar wel Dim strGeslacht as string

Waarom?

Wel als je aan langere code toe bent zal je onmiddelijk zien om welk type variabel het gaat maar ook, en vooral, door die eerste drie letters te typen en dan "Ctrl" & Spacebar in te drukken krijg je een lijst van alles die begint met str ;) Spaart een massa typwerk ;)

Terug naar “Informatica en programmeren”