Macro met vba
-
- Berichten: 34
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
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
-
- Berichten: 473
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
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
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
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