0
votes

I have a small puzzle. Im using cells "K6" and "L6" as imputs (for scaning the barcode). When I select cell "K6" and scan the barcode the cell "O6" is becoming from value "0" to value "1" (by formula "=IF(K6>0,1,0)").

Im using cell "O6" (when is grater then "0") as a triger for "Sub (ByVal target As Range)" This Sub call marco "Nasklad" which copy and paste "K6" value to sheet2 (IN_OUT) column "A" first blank. After it call macro "Clear" which select sheet1 (Sklad) and clear cell "K6".

Whole process working fine, I scan a barcode, code is copied to another sheet and I can scan another code and so on.

Sub worksheet_change(ByVal target As Range)
Set target = Range("O6")
If target.Value > 0 Then
 Call Nasklad
End If
End Sub

Sub Nasklad()
    Sheets("Sklad").Select
    Range("K6").Select
    Application.CutCopyMode = False
    Selection.Copy
    Sheets("IN_OUT").Select
    ActiveSheet.Range("A1").End(xlDown).Offset(1, 0).Select
    Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _
        :=False, Transpose:=False
    Call clear
End Sub

Sub clear()
    Sheets("Sklad").Select
    Range("K6").Select
    Selection.ClearContents
End Sub

Now the catch, when I tried duplicate serie of commands for cell "K6" to work with cell "L6", then nothing happedn.

It looks like "Sub worksheet_change2(ByVal target As Range)" is not working. When I imput something to "L6" value in "P6" become "1" (by formula "=IF(L6>0,1,0)" and this time trigger dont run the Sub and I dont know why.

Sub worksheet_change2(ByVal target As Range)
Set target = Range("P6")
If target.Value = 0 Then
 Call Vysklad
End If
End Sub

Sub Vysklad()
    Sheets("Sklad").Select
    Range("L6").Select
    Application.CutCopyMode = False
    Selection.Copy
    Sheets("IN_OUT").Select
    ActiveSheet.Range("B1").End(xlDown).Offset(1, 0).Select
    Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _
        :=False, Transpose:=False
    Call clear2
End Sub

Sub clear2()
    Sheets("Sklad").Select
    Range("L6").Select
    Selection.ClearContents
End Sub

Did I miss something?

Thanks for helping

1
You can't change the Worksheet_Change part... so you can only have one Worksheet_Change handler. You have to combine.BigBen
Amend your first Worksheet_Change event to account for both cellsurdearboy

1 Answers

0
votes

Thank you @BigBen and @urdearboy, this help me and I've changed the Sub worksheet_change(ByVal target As Range) to

Sub worksheet_change(ByVal target As Range)
Set target = Range("O6")
Set target2 = Range("P6")
If target.Value > 0 Then
 Call Nasklad
End If
If target2.Value > 0 Then
 Call Vysklad
End If
End Sub