Option Explicit '============================================================================== ' Paste this into the SHEET MODULE for "Scan" ' (Alt+F11 > left-hand tree > double-click the sheet named Scan) '============================================================================== Private Sub Worksheet_Change(ByVal Target As Range) On Error GoTo CleanUp If Target.Cells.Count > 1 Then Exit Sub ' ---- asset barcode arrived ------------------------------------------- If Not Application.Intersect(Target, Me.Range(CELL_ASSET)) Is Nothing Then Dim raw As String raw = CStr(Me.Range(CELL_ASSET).Value) Application.EnableEvents = False Me.Range(CELL_ASSET).ClearContents ProcessScan raw Me.Range(CELL_ASSET).Select Application.EnableEvents = True Exit Sub End If ' ---- badge barcode arrived ------------------------------------------- If Not Application.Intersect(Target, Me.Range(CELL_EMP)) Is Nothing Then Application.EnableEvents = False Me.Range(CELL_EMP).Value = NormalizeID(CStr(Me.Range(CELL_EMP).Value)) Me.Calculate If Len(NormalizeID(CStr(Me.Range(CELL_EMP).Value))) = 0 Then Banner "READY - SCAN A BADGE", "", "GREY" ElseIf InStr(1, CStr(Me.Range("C6").Value), "NOT FOUND") > 0 Then Banner "BADGE NOT RECOGNISED", "This ID is not in the Employees sheet.", "RED" Else Banner "READY - SCAN AN ASSET", CStr(Me.Range("C6").Value) & _ " ยท " & CStr(Me.Range("C7").Value) & " shift", "GREY" End If Me.Range(CELL_ASSET).Select Application.EnableEvents = True Exit Sub End If Exit Sub CleanUp: Application.EnableEvents = True End Sub