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

Verschijnen msg box nadat cel gevuld word met "Ja" d.m.v. een validatie

Status
Niet open voor verdere reacties.

Gerwinvdb

Gebruiker
Lid geworden
26 mrt 2012
Berichten
23
Hallo,

Ik krijg een foutmelding "fout 13 tijdens uitvoering: Typen komen niet met elkaar overeen" op de volgende code.

Ik wil graag dat wanneer in kolom U voor "Ja" wordt gekozen (d.m.v. dropdown/validatie) er een messagebox verschijnt met daarin een melding inclusief OK button.

De volgende code heb ik gefabriceerd maar ik blijf er foutmeldingen op krijgen.

Sub AOV_NL_Medicijn()

If Sheets("AOV NL").Range("U:U").Value = "Ja" Then
MsgBox "Medicijn artikel", ("Als het artikel een medicijn betreft dan is een handtekening van hoofd kwaliteitsdienst vereist"), vkOKonly, vbCritical, "Medicijn artikel?"

End If
End Sub

Wie kan me hierbij helpen?

Alvast bedankt.

Groet,
 
Kolom U bestaat uit meerdere cellen, dus ="Ja" is niet helemaal logisch. Daarnaast moet je nu steeds zelf de macro activeren.
Gebruik daarom een event-macro; zoiets als:
Code:
Private Sub Worksheet_Change(ByVal Target As Range)
If Target.Column = 21 And Target.Count = 1 Then
    If Target.Value = "Ja" Then
        MsgBox "Medicijn artikel, (Als het artikel een medicijn betreft dan is een handtekening van hoofd kwaliteitsdienst vereist)", vbCritical, "Medicijn artikel?"
    End If
End If
End Sub

Zie bijlage; kolom U is reeds voorzien van validatie.
 

Bijlagen

Code werkt, maar is voor mij niet duidelijk

Beste conseclusie,

Bedankt voor de hulp. De code werkt!!

Ik snap alleen het bovenste gedeelte van de code niet:
Private Sub Worksheet_Change(ByVal Target As Range)
If Target.Column = 21 And Target.Count = 1 Then
If Target.Value = "Ja" Then

Zou je dit nog nader kunnen toelichten.

Groet,
 
Zeker...
Private Sub Worksheet_Change(ByVal Target As Range)
: dit is het change-event. Deze hangt niet in een aparte module, maar aan het tabblad waarop het betrekking heeft. Deze macro wordt automatisch geactiveerd zodra één of meerdere velden wijzigen in dat tabblad.

"Target" zijn de cel(len) die wijzigen. De macro hoeft alleen te draaien indien één cel in de U-kolom wijzigt. Target.Column = 21 (=U-kolom) en Target.Count = 1 zorgen daarvoor. Target.Value is simpelweg de waarde van de cel die je wijzigt.
 
Status
Niet open voor verdere reacties.
Terug
Bovenaan Onderaan