
Private Sub UserForm_Initialize()
With Comp.ListObjects("TListcomp").ListColumns(1)
    CBCompany.List = .DataBodyRange.Value
    CbCompR.List = .DataBodyRange.Value '.RowSource = "Comp!Listcomp"
End With
LblError = " Veuillez remplir tout les champs "
    
End Sub

Private Sub Button_cancel_Click()
 Unload Me
End Sub

Private Sub CbClear_Click()
    Txt_Nom.Value = ""
    Txt_Prenom.Value = ""
    CBCompany = ""
    TxtNameOTher.Value = ""
    TXT_NID = ""
    Me.Txt_Nom.SetFocus
End Sub

Private Sub BtWorker_Click()
Dim lig As Integer
       
If Len(Me.CBCompany) = 0 Then
    Me.LblError = "Choice Company"
    Me.CBCompany.SetFocus
ElseIf Len(Me.Txt_Nom) = 0 Then
    Me.LblError = "Enter a last name"
    Me.Txt_Nom.SetFocus
ElseIf Len(Me.Txt_Prenom) = 0 Then
    Me.LblError = "Enter a Name"
    Me.Txt_Prenom.SetFocus
ElseIf Len(Me.TXT_NID) = 0 Then
    Me.LblError = "Enter ID number"
Else

    With Comp.ListObjects("T" & CBCompany.Value)
        If .ListRows.Count = 0 Then
            .ListRows.Add: lig = 1
        Else: .ListRows.Add: lig = .ListRows.Count
        End If
        .DataBodyRange.Item(lig, 1) = WorksheetFunction.Max(.ListColumns(1).DataBodyRange.Value) + 1
        If CBCompany.Value = "OTHERS" Then
            .DataBodyRange.Item(lig, 2) = TxtNameOTher
        Else
            .DataBodyRange.Item(lig, 2) = Txt_Nom & Txt_Prenom
        End If
        .DataBodyRange.Item(lig, 3) = Txt_Nom
        .DataBodyRange.Item(lig, 4) = Txt_Prenom
        .DataBodyRange.Item(lig, 5) = TXT_NID
    End With
    With Comp.ListObjects("TWorkerid")
        .DataBodyRange.Item(lig, 1) = WorksheetFunction.Max(.ListColumns(1).DataBodyRange.Value) + 1
        .DataBodyRange.Item(lig, 2) = Txt_Prenom
        .DataBodyRange.Item(lig, 3) = TXT_NID
    End With
End If
End Sub

Private Sub BtnClose_Click()
    Unload Me
End Sub
Private Sub BtnClear_Click()
    CbCompR = ""
    CbWorkerR = ""
End Sub

Private Sub BtnDel_Click()
    
If Len(CbCompR.Value) = 0 Then
    Me.LblError1 = "Select Company"
    Me.CbCompR.SetFocus
ElseIf Len(CbWorkerR.Value) = 0 Then
    Me.LblError1 = "Select Worker"
    Me.CbWorkerR.SetFocus
Else

    Dim Valid As Byte
    Valid = MsgBox("Are you sure to delete this Worker " & CbWorkerR.Value & " ?", vbCritical + vbYesNo + vbDefaultButton2, "Verification")
    If (Valid = 7) Then
        CbCompR = ""
        CbWorkerR = ""
        Exit Sub
    Else
    
        Dim lo As Integer
    
        With ThisWorkbook.Sheets("Comp").ListObjects("T" & CBCompany.Value)
            lo = .Range.Find(CbWorkerR.Value, , xlValues, xlWhole).Row '- .HeaderRowRange.Row
            .ListRows(lo - .HeaderRowRange.Row).Range.Delete
        End With
        MsgBox "The guard " & CbGuardR.Value & "has been deleted"
    
    End If
End If
Call BtnClose_Click
End Sub

Private Sub CbCompR_Change()
    affichage_NameIn
End Sub

Private Sub affichage_NameIn()
Dim Mc As Range

With ThisWorkbook.Sheets("Comp")
    Set Mc = .ListObjects("TListcomp").DataBodyRange.Find(CbCompR.Value)
    If Not Mc Is Nothing Then CbWorkerR.List = .ListObjects("T" & CbCompR).ListColumns(2).DataBodyRange.Value
End With
End Sub