if and then else functie in VBA

Status
Niet open voor verdere reacties.

blijfvandatknop

Gebruiker
Lid geworden
8 nov 2007
Berichten
19
Is er iemand die mij hierbij kan adviseren.
Ik heb een functie in VBa die 2 waardes moet controleren en op basis daarvan een melding moet geven.
Dit heb ik in VBA gedaan omdat het een nogal grote IF functie is.
De onderstaande code werkt niet naar behoren. Iemand een tip?
Code:
If Range("k36").Value = 2 And Range("k19").Value = 2 Then
 MsgBox "Combination of categories is NOT allowed"
    If Range("k36").Value = 2 And Range("k19").Value = 3 Then
 MsgBox "Combination of categories is NOT allowed"
        If Range("k36").Value = 2 And Range("k19").Value = 4 Then
 MsgBox "Combination of categories is NOT allowed"
            If Range("k36").Value = 2 And Range("k19").Value = 5 Then
 MsgBox "Combination of categories is NOT allowed"
                If Range("k36").Value = 2 And Range("k19").Value = 6 Then
 MsgBox "Combination of categories is NOT allowed"
                    If Range("k36").Value = 2 And Range("k19").Value = 8 Then
 MsgBox "Combination of categories is NOT allowed"
                        If Range("k36").Value = 2 And Range("k19").Value = 9 Then
 MsgBox "Combination of categories is NOT allowed"
                            If Range("k36").Value = 3 And Range("k19").Value = 10 Then
 MsgBox "Combination of categories is NOT allowed"
                                If Range("k36").Value = 3 And Range("k19").Value = 12 Then
 MsgBox "Combination of categories is NOT allowed"
                                    If Range("k36").Value = 3 And Range("k19").Value = 13 Then
 MsgBox "Combination of categories is NOT allowed"
                                    End If
                                End If
                            End If
                        End If
                    End If
                End If
            End If
        End If
    End If
End If
'En zo verder
 
Een tip geven voor een code die niet naar behoren werkt, is gissen in de ruimte als er niet vermeld wordt wat er niet werkt en wat er dan fout gaat. Het is een reeks van combinaties die niet zijn toegestaan en die zou je in 1 keer in de Else van je code kunnen afwerken. Bijvoorbeeld:

Code:
If...And...Then
..msgBox "A" 
ElseIf...And...Then
..msgBox "B" 
ElseIf...And...Then
..msgBox "C"
Else
..MsgBox "Combination of categories is NOT allowed"
End If

Maar nogmaals, dit is gissen. Als het probleem helder wordt weergegeven is de oplossing wellicht heel anders.
 
Laatst bewerkt:
Dom,dom van mij.

Als je lang aan het zoeken bent zie je soms de oplossing niet meer.
:rolleyes:
Zo simpel, had wel de Elseif moeten invoegen.
Mijn dank is groot

Code:
If Range("k36").Value = 2 And Range("k19").Value = 2 Then
 MsgBox "Combination of categories is NOT allowed"
    elseIf Range("k36").Value = 2 And Range("k19").Value = 3 Then
 MsgBox "Combination of categories is NOT allowed"
'enzovoorts
 
Naast dat het inderdaad geen nut heeft om die hele handel te nesten zou ik het zo doen, dan ben je meteen helemaal klaar:
Code:
Select Case Range("K36").Value
    Case 2
        Select Case Range("K19").Value
            Case 2, 3, 4, 5, 6, 8, 9
                MsgBox "Combination of categories is NOT allowed"
        End Select

    Case 3
        Select Case Range("K19").Value
            Case 10, 12, 13
                MsgBox "Combination of categories is NOT allowed"
        End Select
End Select
 
@Edmoor: dank voor de tip die ga ik gebruiken. Kende deze nog niet op deze manier. Zo leer je altijd weer wat.
:)
 
Graag gedaan.
Daar is Helpmij o.a. voor :)
 
@edm

of?

Code:
Select Case Range("K36") & "_" & Range("K19")
Case "2_2",2_3","2_4","2_5","2_6","2_8","2_9","3_10","3_12","3_13"
  MsgBox "Combination of categories is NOT allowed"
End Select
 
Keurig :thumb:

Er mist overigens nog wel een " teken ;)

Je zou er eigenlijk die eerste If..Then..ElseIf.. End If constructie bij moeten zetten om het navenante verschil te zien :D

Voor TS, dit is dezelfde van snb maar dan gecorrigeerd:
Code:
Select Case Range("K36") & "_" & Range("K19")
    Case "2_2", "2_3", "2_4", "2_5", "2_6", "2_8", "2_9", "3_10", "3_12", "3_13"
        MsgBox "Combination of categories is NOT allowed"
End Select
 
Laatst bewerkt:
Status
Niet open voor verdere reacties.
Terug
Bovenaan Onderaan