If Message probleem

Status
Niet open voor verdere reacties.

Civil

Nieuwe gebruiker
Lid geworden
31 mei 2017
Berichten
3
Hallo allemaal,

Voor mijn stage ben ik bezig met het optimaliseren van een Excel-based urenregistratie, nu loop ik met een macro tegen een probleem aan. In kolom F moeten ordernummers worden ingevuld als het soort activiteit in kolom V running is. Vaak worden de ordernummers in F niet ingevuld terwijl er wel een "Running" activiteit wordt ingevuld in V. Mijn idee was om via een macro duidelijk te maken aan de gene die het bestand invult dat hij/zij het ordernummer vergeten is in te vullen.

Nu heb ik een stuk VBA-code van internet geplukt en deze gewijzigd:

Private Sub Worksheet_Change(ByVal Target As Range)

Dim TargetRowColumnFValue As Range
Dim TargetRowColumnVValue As Range
Dim CurrentWorkSheet As Worksheet

Set CurrentWorkSheet = ThisWorkbook.ActiveSheet
Set TargetRowColumnFValue = CurrentWorkSheet.Cells(Target.Row, "F")
Set TargetRowColumnVValue = CurrentWorkSheet.Cells(Target.Row, "V")

If Not TargetRowColumnFValue = Empty Then

If TargetRowColumnVValue = "Running" Then MsgBox "Ordernummer invullen!"

End If

End Sub

Alleen bij het selecteren van een activiteit maakt hij geen verschil tussen Running, Indirect ect. maar geeft bij iedere soort activiteit het bericht "Ordernummer invullen".

Weet iemand van jullie wat ik hier fout heb gedaan?

Alvast bedankt!
 
Voor wat je stelt is dit voldoende:
Code:
Private Sub Worksheet_Change(ByVal Target As Range)
    If Cells(Target.Row, "F") = "Running" Then MsgBox "Ordernummer invullen!"
End Sub

Mij is niet duidelijk of dat kolom F of V moet zijn maar kan je zelf wel aanpassen natuurlijk.
 
Laatst bewerkt:
Dankjewel voor de snelle reactie! Maar dat is niet precies wat ik bedoelde.
Het bericht moet alleen maar verschijnen als er een "Running" activiteit uit de treklijst wordt gekozen terwijl er nog geen ordernummer is ingevuld in kolom F. Als er wel al een ordernummer is ingevuld hoeft het bericht niet weergegeven te worden.

Capture12.PNG
 
Dat pas je die IF conditie toch zo aan dat hij ook controleert of de cel in kolom F wel is gevuld?
Dat is ismpel.

Code:
Private Sub Worksheet_Change(ByVal Target As Range)
    If Cells(Target.Row, "F") = "" And Cells(Target.Row, "V") = "Running" Then MsgBox "Ordernummer invullen!"
End Sub
 
Laatst bewerkt:
Dankjewel dit werkt perfect. VBA is geheel nieuw voor mij.
Is het ook mogelijk om in het bericht dat wordt weergegeven het ordernummer in te voeren dat hoort bij die betreffende activiteit?
Zonder dat het bericht weg geklikt kan worden voordat het is ingevuld.
 
Op z'n simpelst kan dat zo:
Code:
Private Sub Worksheet_Change(ByVal Target As Range)
    While Cells(Target.Row, "F") = "" And Cells(Target.Row, "V") = "Running"
        Cells(Target.Row, "F") = InputBox("", "Vul het ordernummer in")
    Wend
End Sub

Als je het echt netjes wilt doen kan je er een userform voor maken.
 
Status
Niet open voor verdere reacties.
Terug
Bovenaan Onderaan