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

Samenvoegen regels VBA-code

Status
Niet open voor verdere reacties.

Ivanhoes

Gebruiker
Lid geworden
6 jun 2015
Berichten
67
Hoi mensen,

Kan iemand een van twee soorten codes die in onderstaande code staan samenvoegen tot één algemene code?
Dit is de code:

Private Sub Worksheet_Change(ByVal Target As Range)
If Target.Address = "$CK$26" And Cells(26, 62).Value = 4 Then
MsgBox "Deze combinatie van diensten is niet mogelijk", vbOKOnly + vbCritical, "SOORT DIENSTEN"
End If

If Target.Address = "$CK$27" And Cells(27, 62).Value = 4 Then
MsgBox "Deze combinatie van diensten is niet mogelijk", vbOKOnly + vbCritical, "SOORT DIENSTEN"
End If
'Etc...etc...etc t/m regel 62

If Intersect(Target, Range("CF26:CF62")) Is Nothing Then Exit Sub
Y = Target.Row
If Cells(Y, 60) = 1 Then MsgBox Join(Array(Cells(Y, 44), Cells(Y, 45), Cells(Y, 46), Cells(Y, 47), Cells(Y, 48), _
Cells(Y, 49), Cells(Y, 50), Cells(Y, 51), Cells(Y, 52), Cells(Y, 53)), vbLf), vbOKOnly + vbCritical, "ATW-OVERTREDING"

End sub

Ik dacht dat het zo kon, maar dat blijkt dus niet te werken, om een of andere reden:

Private Sub Worksheet_Change(ByVal Target As Range)

If Intersect(Target, Range("CF26:CF62")) Is Nothing Then Exit Sub
Y = Target.Row
If Cells(Y, 60) = 1 Then MsgBox Join(Array(Cells(Y, 44), Cells(Y, 45), Cells(Y, 46), Cells(Y, 47), Cells(Y, 48), _
Cells(Y, 49), Cells(Y, 50), Cells(Y, 51), Cells(Y, 52), Cells(Y, 53)), vbLf), vbOKOnly + vbCritical, "ATW-OVERTREDING"

If Intersect(Target, Range("CK26:CK62")) Is Nothing Then Exit Sub
Y = Target.Row
If Cells(Y, 62) = 4 Then MsgBox "- Deze combinatie van diensten is niet mogelijk", vbOKOnly + vbCritical, "SOORT DIENSTEN"

End sub.

De codes zoals ik dacht dat zou kunnen, werken elk wel afzonderlijk in vba, maar niet in combinatie met elkaar. Ik vermoed dat ik een
of andere wetmatigheid over het hoofd zie.

Alvast bedankt voor de hulp en groetjes,

Ivanhoes.
 
Als de controle plaats moet vinden op iedere regel van 26 t/m 62, maak dan van dit:
Code:
    If Target.Address = "$CK$26" And Cells(26, 62).Value = 4 Then
        MsgBox "Deze combinatie van diensten is niet mogelijk", vbOKOnly + vbCritical, "SOORT DIENSTEN"
    End If

Eens dit:
Code:
    Select Case Target.Row
        Case 26 To 62
            If Cells(Target.Row, 62) = 4 Then
                MsgBox "Deze combinatie van diensten is niet mogelijk", vbOKOnly + vbCritical, "SOORT DIENSTEN"
            End If
    End Select
 
Laatst bewerkt:
Hoi Edmoor,

Bedankt voor je reactie. De code werkt precies zoals zou moeten.
Je hebt goed begrepen dat het inderdaad voor iedere regel moet gelden. Goed gedaan en ik ben er heel blij mee.

Groetjes,

Ivanhoes.
 
Graag gedaan :)
 
Waarom verhinder je niet met validatie dat een 'verkeerde' keuze gemaakt kan worden ?
 
Status
Niet open voor verdere reacties.
Terug
Bovenaan Onderaan