• 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.

End If code VBA

Status
Niet open voor verdere reacties.

Marky76

Gebruiker
Lid geworden
26 okt 2002
Berichten
424
Als ik onderstaande code type dan krijg ik geen foutmelding.
Maar als ik Dagdeel ="morgen" achter "If Time < 0.5 Then" zet dan geeft hij wel de
compileer fout, hoe komt dit.

Public Sub VoorwaardeElseIf()
Dim Dagdeel As String
If Time < 0.5 Then
'belangrijk is dat je dagdeel niet na Then zet, want dan krijg je foutmelding ivm End If
Dagdeel = "morgen"
ElseIf Time >= 0.5 And Time < 0.75 Then
Dagdeel = "middag"
Else: Dagdeel = "avond"
End If
MsgBox "Goede" & Dagdeel & ", " & Application.UserName
End Sub


groeten,
 
Marky76,


Je kunt achter Then rechtstreeks iets neerzetten,
Dan hoef je daarna End If niet te gebruiken.
dus zo:

Code:
If Time < 0.5 Then Dagdeel = "morgen"

Als je dit bij jou code doet dan krijg je de melding Else zonder IF.

Dit komt dus omdat er dan geen If Then boven de Else If staat.
De If Then die er wel staat is dus 1 zin samen met Dagdeel = "morgen"

Wil je het dus zo toch doen moet je weer een If Then ervoor zetten (Dus niets rechtstreeks erachter typen")

Snappie??


Koosl
 
Mark,

nog een kleine opmerking,

Je hebt in je code het volgende staan:

Code:
Else[B][COLOR="Red"]:[/COLOR][/B] Dagdeel = "avond"

De dubbele punt komt er achter te staan omdat je dit rechtstreeks achter Else zet.
Nu wordt dit als een label gezien.
Code:
Else 
    Dagdeel = "avond"

Zo is het gebruik wel goed.


labels worden gebruikt om naar toe te springen. bv: om fouten af te vangen.
bv:

Code:
    On Error GoTo [B]fout[/B]    Cells.Find(What:=ans, After:=ActiveCell, LookIn:=xlValues, LookAt _
        :=xlPart, SearchOrder:=xlByRows, SearchDirection:=xlNext, MatchCase:= _
            False).Activate
    Exit Sub
[B]fout:[/B]
    MsgBox ans & " is niet gevonden", vbOKOnly + vbExclamation, "zoeken"
End Sub


Treedt er een fout op? Spring dan naar het fout label en ga daar weer verder.


Koosl
 
nog een kleine opmerking,

Je hebt in je code het volgende staan:

Code:
Else[B][COLOR="Red"]:[/COLOR][/B] Dagdeel = "avond"

De dubbele punt komt er achter te staan omdat je dit rechtstreeks achter Else zet.
Nu wordt dit als een label gezien.
Code:
Else 
    Dagdeel = "avond"

Zo is het gebruik wel goed.

Volgens mij zijn beide equivalent, het is te zeggen, ik heb nooit het tegendeel gezien. Maar ik kan er naast zitten.
 
Wigi,

Volgens mij zijn beide equivalent, het is te zeggen, ik heb nooit het tegendeel gezien. Maar ik kan er naast zitten.

Ik moet je alweer gelijk geven. Niet van dat ernaast zitten, maar dat andere! :p

Ik had vanalles geprobeerd om de code om zeep te helpen, en ik kwam er niet achter.
Tenslotte zette ik de code in deze volgorde:
Code:
End If
Else: Dagdeel = "avond"

toen kreeg ik de compileerfout Else zonder IF.

Weer wat geleerd... ;)

Koosl
 
Beste,

Nu begrijp ik waarom. Dat het op die manier kon, daarover stond niets in mijn boek, dus nu snapiesnapie.

Groeten, Mark.
 
Status
Niet open voor verdere reacties.
Terug
Bovenaan Onderaan