Springen naar inhoud

Macro met vba


  • Log in om te kunnen reageren

#1

marjan

    marjan


  • >25 berichten
  • 34 berichten
  • Gebruiker

Geplaatst op 07 februari 2010 - 18:06

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

Dit forum kan gratis blijven vanwege banners als deze. Door te registeren zal de onderstaande banner overigens verdwijnen.

#2

mcs51mc

    mcs51mc


  • >250 berichten
  • 470 berichten
  • Ervaren gebruiker

Geplaatst op 08 februari 2010 - 12:14

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 ;)





0 gebruiker(s) lezen dit onderwerp

0 leden, 0 bezoekers, 0 anonieme gebruikers

Ook adverteren op onze website? Lees hier meer!

Gesponsorde vacatures

Vacatures