Option Explicit
Dim nblig As Integer
Dim Ts As ListObject

'voir vidéo: Mostar --> https://www.youtube.com/watch?v=0U9qB5CU2t4
'D:\Disque E\Mes amis\- Roland\excercices- excell\-  - You Tube\Mostar\Ajout-modification formulaire.xlsm

Private Sub UserForm_Initialize()
  
Me.Caption = "Gestion des restos " & "***" & StrConv(Format(Now, "dddd dd mmmm yyyy"), vbProperCase)
Set Ts = Range("Liste_Restos").ListObject
nblig = Ts.ListRows.Count

Lbl_Fin.Caption = nblig
Lbl_Debut.Caption = 1

My_text (Lbl_Debut.Caption)

Bnt_Precedent.Enabled = False 'activer bouton precedent
Bnt_Suivant.Enabled = True   'desactiver bouton suivant
End Sub

Private Function My_text(lig As Integer)

With Ts
    CBox_Type = .DataBodyRange(lig, 1)
    Txt_Ets.Text = .DataBodyRange(lig, 2).Text
    Txt_Lundi = .DataBodyRange(lig, 3).Text
    Txt_Mardi = .DataBodyRange(lig, 4).Text
    Txt_Mercredi = .DataBodyRange(lig, 5).Text
    Txt_Jeudi = .DataBodyRange(lig, 6).Text
    Txt_Vendredi = .DataBodyRange(lig, 7).Text
    Txt_Samedi = .DataBodyRange(lig, 8).Text
    Txt_Dimanche = .DataBodyRange(lig, 9).Text
        
    CBox_Fermetures = .DataBodyRange(lig, 10)
    
    Txt_Adresse = .DataBodyRange(lig, 11).Text
    Txt_Commune = .DataBodyRange(lig, 12).Text
    Txt_Postal = .DataBodyRange(lig, 13).Text
        
    CBox_Pays = .DataBodyRange(lig, 14).Text
    
    Txt_Phone = .DataBodyRange(lig, 15).Text

End With
End Function

Private Sub Bnt_Premier_Click()

Lbl_Fin.Caption = nblig
Lbl_Debut.Caption = 1

My_text (Lbl_Debut.Caption)

Bnt_Precedent.Enabled = False 'desactiver bouton precedent
Bnt_Suivant.Enabled = True   'activer bouton suivant

MsgBox "Premier enregistrement du tableau", vbInformation, "1er Enregistrement"
End Sub

Private Sub Bnt_Precedent_Click()
Dim ID As Integer

ID = Lbl_Debut.Caption - 1

Call My_text(ID)

Lbl_Fin.Caption = nblig
Lbl_Debut.Caption = ID

If ID = 1 Then Bnt_Precedent.Enabled = False              'desactiver bouton precedent
If ID < Ts.ListRows.Count Then Bnt_Suivant.Enabled = True 'activer bouton suivant

End Sub

Private Sub Bnt_Suivant_Click()
Dim ID As Integer

ID = Lbl_Debut.Caption + 1

My_text (ID)

Lbl_Debut.Caption = ID

If ID > 1 Then Bnt_Precedent.Enabled = True                'activer bouton precedent
If ID = Ts.ListRows.Count Then Bnt_Suivant.Enabled = False 'desactiver bouton suivant

End Sub

Private Sub Bnt_Dernier_Click()
Dim ID As Integer

ID = nblig
My_text (ID)
Lbl_Fin.Caption = nblig
Lbl_Debut.Caption = nblig

Bnt_Precedent.Enabled = True 'activer bouton precedent
Bnt_Suivant.Enabled = False  'desactiver bouton suivant

MsgBox "Dernier enregistrement du tableau", , "Dernier Enregistrement"
End Sub

Private Sub Bnt_Ajouter_Click()
Dim i As Integer

With Ts
    .ListRows.Add: ligne = .ListRows.Count 'ajouter ligne au tableau
    
    .DataBodyRange(ligne, 1) = ligne
    .DataBodyRange(ligne, 1) = CBox_Type.Text

    .DataBodyRange(ligne, 2) = Txt_Ets.Text
    .DataBodyRange(ligne, 3) = Txt_Lundi.Text
    .DataBodyRange(ligne, 4) = Txt_Mardi.Text
    .DataBodyRange(ligne, 5) = Txt_Mercredi.Text
    .DataBodyRange(ligne, 6) = Txt_Jeudi.Text
    .DataBodyRange(ligne, 7) = Txt_Vendredi.Text
    .DataBodyRange(ligne, 8) = Txt_Samedi.Text
    .DataBodyRange(ligne, 9) = Txt_Dimanche.Text
    
    .DataBodyRange(ligne, 10) = CBox_Fermetures

    .DataBodyRange(ligne, 11) = Txt_Adresse.Text
    .DataBodyRange(ligne, 12) = Txt_Commune.Text
    .DataBodyRange(ligne, 13) = Txt_Postal.Text
    
    .DataBodyRange(ligne, 14) = CBox_Pays.Text
    
    .DataBodyRange(ligne, 15) = Txt_Phone.Text
End With

End Sub

Private Sub Bnt_Effacer_Click()

CBox_Type.ListIndex = -1
CBox_Fermetures.ListIndex = -1
CBox_Pays.ListIndex = -1

Txt_Ets.Text = vbNullString
Txt_Lundi.Text = vbNullString
Txt_Mardi.Text = vbNullString
Txt_Mercredi.Text = vbNullString
Txt_Jeudi.Text = vbNullString
Txt_Vendredi.Text = vbNullString
Txt_Samedi.Text = vbNullString
Txt_Dimanche.Text = vbNullString
Txt_Adresse.Text = vbNullString
Txt_Commune.Text = vbNullString
Txt_Postal.Text = vbNullString
Txt_Phone.Text = vbNullString

CBox_Type.SetFocus

End Sub

Private Sub Bnt_Modifier_Click()
Dim ID As Integer
                ' propriété Btn modifier: Enabled = false
If MsgBox("Voulez vous confirmer la modification ?", vbYesNo + vbDefaultButton2 + vbQuestion, "Gestion des resto - Modification") = vbNo Then Exit Sub

ID = Lbl_Debut.Caption

With Ts
    .DataBodyRange(ID, 2) = Txt_Ets.Text
    .DataBodyRange(ID, 3) = Txt_Lundi.Text
    .DataBodyRange(ID, 4) = Txt_Mardi.Text
    .DataBodyRange(ID, 5) = Txt_Mercredi.Text
    .DataBodyRange(ID, 6) = Txt_Jeudi.Text
    .DataBodyRange(ID, 7) = Txt_Vendredi.Text
    .DataBodyRange(ID, 8) = Txt_Samedi.Text
    .DataBodyRange(ID, 9) = Txt_Dimanche.Text
        .DataBodyRange(ID, 10) = CBox_Fermetures.Text
    .DataBodyRange(ID, 11) = Txt_Adresse.Text
    .DataBodyRange(ID, 12) = Txt_Commune.Text
    .DataBodyRange(ID, 13) = Txt_Postal.Text
        .DataBodyRange(ID, 14) = CBox_Pays.Text
    .DataBodyRange(ID, 15) = Txt_Phone.Text
    
End With

'Call Bnt_Effacer_Click

End Sub

Private Sub Bnt_Supprimer_Click()
Dim ID As Integer

ID = Lbl_Debut.Caption

If MsgBox("Voulez-vous confirmer la suppression ?", vbYesNo + vbDefaultButton2, "Gestion des restos") = vbYes Then
    Ts.ListRows(ID).Range.Delete
End If
Call UserForm_Initialize
End Sub

Private Sub Fermer_Click()
Unload Me
End Sub

Private Sub Cmd_Bd_Click()
    Sheets("Liste_Balades").Select
End Sub

Private Sub Cmd_Liste_Click()
    Sheets("Liste resto horiz").Select
End Sub

