Hi Guys
I try updating stock in INV sheet based on based on entering QTY in column E for ENTER sheet after match B:D with A:C for INV sheet , then should update QTY in column D for INV sheet with multiple cases :
if the cell M2 in ENTERING sheet =PURCHASE or = RET1 and change QTY ,then should update QTY in INV sheet by sum QTY between two sheets
If the cell M2 in ENTERING sheet =SAELES or = RET2 and change QTY ,then should update QTY in INV sheet by subtract QTY between two sheets .
the code doesn't seem to be work
Private Sub Worksheet_Change(ByVal Target As Range)
Dim X, lr As Long: With Sheets("INV"): lr = .Cells(.Rows.Count, 1).End(xlUp).Row: End With
If Not Intersect(Target, Range("E20:E34")) Is Nothing Then
If Target.Cells.Count > 1 Then Exit Sub
Application.EnableEvents = False
X = Evaluate("=Match(""" & Target.Offset(, -3) & """ & """ & Target.Offset(, -2) & """ & """ & Target.Offset(, -1) & """,'INV'!A1:A" & lr & "&'INV'!B1:B" & lr & "&'INV'!C1:C" & lr & ",0)")
If Not IsError(X) Then
With Sheets("INV")
If Sheets("ENTER").Range("M2") = "SALES" Then
.Range("D" & X) = .Range("D" & X) - Target.Value
MsgBox .Range("D" & X).Value
ElseIf Sheets("ENTER").Range("M2") = "PURCHSE" Then
.Range("D" & X) = .Range("D" & X) + Target.Value
MsgBox .Range("D" & X).Value
ElseIf Sheets("ENTER").Range("M2") = "RET1" Then
.Range("D" & X) = .Range("D" & X) + Target.Value
MsgBox .Range("D" & X).Value
ElseIf Sheets("ENTER").Range("M2") = "RET2" Then
.Range("D" & X) = .Range("D" & X) - Target.Value
MsgBox .Range("D" & X).Value
End If
End With
Else
MsgBox "ITEM DOES NOT EXIST", vbInformation, ""
End If
Application.EnableEvents = True
End If
End Sub
I look forward to help me