ElseIf vastloper

Status
Niet open voor verdere reacties.

jantoedeledoki

Gebruiker
Lid geworden
22 dec 2010
Berichten
36
Hallo,

Ik krijg problemen met onderstaande code, wanneer er aan meer dan één voorwaarde wordt voldaan (=True).
Excel reageert dan niet meer en moet afsluiten. Zolang er maar aan één voorwaarde wordt voldaan, werkt de code prima.
Wie kan mij vertellen waar het fout gaat en vooral hoe los ik dit op.
Ook zou ik graag zien dat als er aan géén voorwaarde wordt voldaan, de waarde om.Value = "H" wordt, echter met de huidige code in het "Comment Block" blijft de code in een loop hangen.

Code:
Private Sub Worksheet_Change(ByVal Target As Range)
Dim ac As Range
Dim om As Range
Dim be As Range
Dim k As Integer



For k = 9 To 22

Set ac = Range("F" & k)
Set om = Range("H" & k)
Set be = Range("N" & k)

If ac.Value = 1 Then
om.Value = "A"
ElseIf ac.Value = 2 Then
om.Value = "B"
ElseIf ac.Value = 3 Then
om.Value = "C"
ElseIf ac.Value = 5 Then
om.Value = "D"
ElseIf ac.Value = 8 Then
om.Value = "E"
ElseIf ac.Value = 9 Then
om.Value = "F"
ElseIf ac.Value = 35 Then
om.Value = "G"
'Else
'om.Value = ""

End If

Next k


End Sub
 
Wijzig het in een Select Case in plaats van al die ElseIf's.
Code:
Select Case ac.Value
    Case 1: om.Value = "A"
    Case 2: om.Value = "B"
    Case 3: om.Value = "C"
    Case 5: om.Value = "D"
    Case 8: om.Value = "E"
    Case 9: om.Value = "F"
    Case 35: om.Value = "G"
    Case Else
        om.Value = "H"
End Select

Zet tevens bovenin de Sub:
Application.EnableEvents = False

en onderin:
Application.EnableEvents = True

Dat laatste is de eigenlijke oorzaak van je probleem.
Let ook op de juiste inspringpunten in plaats van alles recht onder elkaar te zetten.
En moet die routine iedere keer worden uitgevoerd als je welke cel dan ook wijzigt?
 
Laatst bewerkt:
Hartelijk dank!!
Op een kleine spelfout na was het dat laatste inderdaad de oplossing.
 
Spelfout opgelost ;)
 
Status
Niet open voor verdere reacties.
Terug
Bovenaan Onderaan