• Privacywetgeving
    Het is bij Helpmij.nl niet toegestaan om persoonsgegevens in een voorbeeld te plaatsen. Alle voorbeelden die persoonsgegevens bevatten zullen zonder opgaaf van reden verwijderd worden. In de vraag zal specifiek vermeld moeten worden dat het om fictieve namen gaat.

if then en else

Status
Niet open voor verdere reacties.

W Bloemendal

Gebruiker
Lid geworden
28 jan 2001
Berichten
503
Hallo

Ik heb een macro gemaakt met een if en then instructie
met nog op het laatst een else instructie.

Nu moet er nog er tussen komen staan:
Y = InputBox("geef Machine nr", "Machine")
If Y = 1 Then Machnr = "Machine1"
If Y = 2 Then Machnr = "Machine2"
If Y = 3 Then Machnr = "Machine3"
If Y = 4 Then Machnr = "Machine4"

Else
MsgBox "Geen goede Machine nr", vbExclamation
end if
Als ik voor Y een anderer waarde krijg dan 1,2 3 of 4 dan wil ik een melding krijgendat er een verkeerde invoer is als ik dit met else probeer krijg ik de melding

Compileerfout Else zonder if


Wim
 
Kan je de else niet weglaten, en na de keuzes gewoon de foutmelding laten verschijnen? Als je voor een juiste machine kiest slaat het programma die stap over, anders komt hij er vanzelf terecht.
 
Ik krijg een fout melding else zonder if
als ik de else na if Y= weglaat krijg ik de fout melding niet maar
als je bijvoorbeeld 1 ingeeft krijg je toch de msg Box melding

wim
 
Het probleem bij jou is dat je een hoop if's gebruikt zonder ze af te sluiten. Je zult hier genestelde if's moeten gebruiken.

Y = InputBox("geef Machine nr", "Machine")
If Y = 1 Then Machnr = "Machine1" Else
If Y = 2 Then Machnr = "Machine2" Else
If Y = 3 Then Machnr = "Machine3" Else
If Y = 4 Then Machnr = "Machine4" Else
MsgBox "Geen goede Machine nr", vbExclamation
end if
end if
end if
end if

Ik denk dat dit zou moeten werken.

Mvg.
 
Of je kan het ook proberen met een Select Case.

Y = InputBox("geef Machine nr", "Machine")
Select Case Y

Case "1"
Machnr = "Machine 1"

Case "2"
Machnr = "Machine 2"

Case "3"
Machnr = "Machine 3"

Case "4"
Machnr = "Machine 4"

Case Else
MsgBox "Geen goede Machine nr", vbExclamation

End Select

Dit zou ook moeten werken.

Mvg.
 
Vermits je hier telkens dezelfde variabel test, werk je inderdaad best met de Select Case-instructie.

Als je telkens een andere variabele moet testen kan je gebruik maken van ElseIf. De macro zou dan iest als volgt worden:
Code:
  Y = InputBox("geef Machine nr", "Machine")
  If Y = 1 Then
    Machnr = "Machine1"
  ElseIf Y = 2 Then
    Machnr = "Machine2"
  ElseIf Y = 3 Then
    Machnr = "Machine3"
  ElseIf Y = 4 Then
    Machnr = "Machine4"
  Else
    MsgBox "Geen goede Machine nr", vbExclamation
  End If
Maar als ik het een nader bekijk, zou volgende code ook moeten voldoen:
Code:
  If y = 1 Or y = 2 Or y = 3 Or y = 4 Then
    machnr = "Machine" & y
  Else
    MsgBox "Geen goede Machine nr", vbExclamation
  End If
 
Status
Niet open voor verdere reacties.
Terug
Bovenaan Onderaan