Option Explicit

Dim message As String

Private Sub AJOUT_Click()
   'Recherche si agent n'éxiste pas dans liste
   trouve = False
   cpt = facc.Range("debacces").Row + 1
   Do While facc.Cells(cpt, facc.Range("debacces").Column).Value <> ""
    If facc.Cells(cpt, facc.Range("debacces").Column).Value = UCase(gesagt.nni.Value) Then
       trouve = True
      ' Exit For
    End If
    cpt = cpt + 1
   Loop
   
    If trouve = False Then
      'test si tous les champs renseignés
      If gesagt.nni.Value <> "" Then
         If gesagt.nom.Value <> "" Then
            If gesagt.prenom.Value <> "" Then
               If gesagt.listfonc.Value <> "" Then
                cpt = facc.Range("debacces").Row + 1
                Do While facc.Cells(cpt, facc.Range("debacces").Column).Value <> ""
                 cpt = cpt + 1
                Loop
                facc.Cells(cpt, facc.Range("debacces").Column).Value = UCase(gesagt.nni.Value)
                facc.Cells(cpt, facc.Range("debacces").Column + 1).Value = UCase(gesagt.nom.Value)
                facc.Cells(cpt, facc.Range("debacces").Column + 2).Value = UCase(gesagt.prenom.Value)
                facc.Cells(cpt, facc.Range("debacces").Column + 3).Value = gesagt.listfonc.Value
                       
                  'tri agent
                  facc.Activate
                  facc.Range(Cells(facc.Range("debacces").Row, facc.Range("debacces").Column), Cells(cpt, facc.Range("debacces").Column + 3)).Sort _
                     Key1:=facc.Range("TriNom"), Order1:=xlAscending, _
                     Key2:=facc.Range("TriPrenom"), Order2:=xlAscending, _
                     Header:=xlGuess, OrderCustom:=1, MatchCase:=False, Orientation:=xlTopToBottom
                  
                  'chargement liste agent
                  gesagt.liste.Clear
                  cpt = facc.Range("debacces").Row + 1
                  cptli = 0
                  Do While facc.Cells(cpt, facc.Range("debacces").Column).Value <> ""
                   gesagt.liste.AddItem ("x")
                   gesagt.liste.List(cptli, 0) = facc.Cells(cpt, facc.Range("debacces").Column).Value
                   gesagt.liste.List(cptli, 1) = facc.Cells(cpt, facc.Range("debacces").Column + 1).Value
                   gesagt.liste.List(cptli, 2) = facc.Cells(cpt, facc.Range("debacces").Column + 2).Value
                   gesagt.liste.List(cptli, 3) = facc.Cells(cpt, facc.Range("debacces").Column + 3).Value
                   cptli = cptli + 1
                  cpt = cpt + 1
                  Loop
                  gesagt.nni.Value = ""
                  gesagt.nom.Value = ""
                  gesagt.prenom.Value = ""
                  gesagt.listfonc.ListIndex = -1
                  gesagt.Repaint
                  
               Else
                  message = MsgBox("Vous n'avez pas sélectionné un PROFIL !")
               End If
            Else
               message = MsgBox("Vous n'avez pas saisi le PRENOM !")
            End If
         Else
            message = MsgBox("Vous n'avez pas saisi le NOM !")
         End If
      Else
         message = MsgBox("Vous n'avez pas saisi le NNI !")
      End If
   Else
      message = MsgBox("L'agent " & gesagt.nom.Value & " " & gesagt.prenom.Value & " existe déjà !")
   End If
End Sub

Private Sub boutgestprofil_Click()
 gesprofil.Show
End Sub

Private Sub Label3_Click()

End Sub

Private Sub listbrhm_Click()
   'Recherche si agent n'éxiste pas dans liste
   trouve = False
   cpt = facc.Range("debacces").Row + 1
   Do While facc.Cells(cpt, facc.Range("debacces").Column).Value <> ""
    If facc.Cells(cpt, facc.Range("debacces").Column).Value = gesagt.listbrhm.List(gesagt.listbrhm.ListIndex, 3) Then
         trouve = True
         'Exit For
      End If
    cpt = cpt + 1
   Loop
   If trouve = False Then
      'Chargement valeur dans champs gesagt
      changer = False
      gesagt.nom.Value = gesagt.listbrhm.List(gesagt.listbrhm.ListIndex, 0)
      changer = True
      gesagt.prenom.Value = gesagt.listbrhm.List(gesagt.listbrhm.ListIndex, 1)
      gesagt.nni.Value = fagt.Cells(gesagt.listbrhm.List(gesagt.listbrhm.ListIndex, 2), fpar.Range("nniagt").Value).Value
   Else
      message = MsgBox("L'agent " & gesagt.listbrhm.List(gesagt.listbrhm.ListIndex, 0) & " " & gesagt.listbrhm.List(gesagt.listbrhm.ListIndex, 1) & " existe déjà !")
   End If
     
End Sub

Private Sub liste_Click()
   If gesagt.liste.ListIndex >= 0 Then
      gesagt.SUPPRIMER.Visible = True
   Else
      gesagt.SUPPRIMER.Visible = False
   End If
   gesagt.Repaint
End Sub

Private Sub nom_Change()
   If changer = True And ouvagt = True Then
      gesagt.nni.Value = ""
      gesagt.prenom.Value = ""
      gesagt.listfonc.ListIndex = -1
      fagt.Activate
      If fpar.Range("typagt").Value <> "" Then
       Selection.AutoFilter Field:=fpar.Range("typagt").Value, Criteria1:="1"
      End If
      Selection.AutoFilter Field:=fpar.Range("nomagt").Value, Criteria1:="=" & gesagt.nom.Value & "*", Operator:=xlAnd
      
      'chargement listbrhm
      
      gesagt.listbrhm.Clear
      cpt = 2
      cptli = 0
      Do While fagt.Cells(cpt, fpar.Range("nomagt").Value).Value <> ""
         If fagt.Rows(cpt & ":" & cpt).EntireRow.Hidden = False Then
            gesagt.listbrhm.AddItem ("x")
            gesagt.listbrhm.List(cptli, 0) = fagt.Cells(cpt, fpar.Range("nomagt").Value).Value
            gesagt.listbrhm.List(cptli, 1) = fagt.Cells(cpt, fpar.Range("prenomagt").Value).Value
            gesagt.listbrhm.List(cptli, 2) = cpt
            gesagt.listbrhm.List(cptli, 3) = fagt.Cells(cpt, fpar.Range("nniagt").Value).Value
           cptli = cptli + 1
         End If
         cpt = cpt + 1
      Loop
      gesagt.Repaint
   End If
End Sub

Private Sub prenom_Change()

End Sub

Private Sub quitter_Click()

 Wpar.Save
 
 fermefichier
 'SetWindowPos FindWindowA("ThunderDFrame", Me.Caption), -2, 0, 0, 0, 0, 3
 SetWindowPos numfen, -2, 0, 0, 0, 0, 3
 gesagt.Hide
 Unload gesagt
 ' Application.Visible = True
   
End Sub
Private Sub SUPPRIMER_Click()
  If gesagt.liste.ListIndex >= 0 Then
    If gesagt.liste.ListCount = 1 Then
     'Test si dernier Agent
     MsgBox ("Vous ne pouvez pas supprimer le dernier agent de la liste !!!")
    Else
     'Test si il reste un administrateur
      trouve = False
      cpt = facc.Range("debacces").Row + 1
      Do While facc.Cells(cpt, facc.Range("debacces").Column).Value <> ""
       If facc.Cells(cpt, facc.Range("debacces").Column + 3).Value = "ADMINISTRATEUR" And cpt <> facc.Range("debacces").Row + 1 + gesagt.liste.ListIndex Then
        trouve = True
        Exit Do
       End If
      cpt = cpt + 1
      Loop
      If trouve = False Then
       MsgBox ("Vous ne pouvez pas supprimer le dernier ADMINISTRATEUR du fichier !!!")
      Else
      
       message = MsgBox("Voulez vous vraiment supprimer l'agent " & _
         gesagt.liste.List(gesagt.liste.ListIndex, 1) & _
         " " & gesagt.liste.List(gesagt.liste.ListIndex, 2) & " ?", 4)
       If message = 6 Then
         'Suppression ligne agent
          cpt = facc.Range("debacces").Row + 1
          Do While facc.Cells(cpt, facc.Range("debacces").Column).Value <> ""
           If facc.Cells(cpt, facc.Range("debacces").Column).Value = gesagt.liste.List(gesagt.liste.ListIndex, 0) Then
            facc.Cells(cpt, facc.Range("debacces").Column).Delete Shift:=xlUp
            facc.Cells(cpt, facc.Range("debacces").Column + 1).Delete Shift:=xlUp
            facc.Cells(cpt, facc.Range("debacces").Column + 2).Delete Shift:=xlUp
            facc.Cells(cpt, facc.Range("debacces").Column + 3).Delete Shift:=xlUp
           End If
          cpt = cpt + 1
          Loop
          
          'chargement liste agent
           gesagt.liste.Clear
           cpt = facc.Range("debacces").Row + 1
           cptli = 0
            Do While facc.Cells(cpt, facc.Range("debacces").Column).Value <> ""
             gesagt.liste.AddItem ("x")
             gesagt.liste.List(cptli, 0) = facc.Cells(cpt, facc.Range("debacces").Column).Value
             gesagt.liste.List(cptli, 1) = facc.Cells(cpt, facc.Range("debacces").Column + 1).Value
             gesagt.liste.List(cptli, 2) = facc.Cells(cpt, facc.Range("debacces").Column + 2).Value
             gesagt.liste.List(cptli, 3) = facc.Cells(cpt, facc.Range("debacces").Column + 3).Value
             cptli = cptli + 1
             cpt = cpt + 1
            Loop
          
          gesagt.SUPPRIMER.Visible = False
          gesagt.Repaint
       End If
      End If
    End If
   Else
      message = MsgBox("Vous n'avez pas sélectionné un agent a supprimer !!!")
   End If
End Sub
Private Sub UserForm_Initialize()
 numfen = FindWindowA("ThunderDFrame", Me.Caption)
 SetWindowPos numfen, -1, 0, 0, 0, 0, 3
End Sub
Private Sub UserForm_QueryClose(Cancel As Integer, CloseMode As Integer)
   If CloseMode = 0 Then
      Cancel = 1
      quitter_Click
   End If
End Sub