Sub SupprimerModifierCongé()
If ActiveCell.ListObject Is Nothing Then
MsgBox "Cliquez sur la ligne à modifier/supprimer"
Exit Sub
End If
Supprimer = MsgBox("Souhaitez vous Supprimer la ligne (OUI) ou Modifier la ligne(NON)", vbYesNo) = vbYes
With Sheets("Congés").ListObjects("t_Congés") 'avec la table strucuturée "t_Congés" de la feuille "Congés"
LigToSup = ActiveCell.Row - .Range.Row
TypeCongés = .DataBodyRange(LigToSup, 4) 'on récupère le type de congés
Nom = .DataBodyRange(LigToSup, 1) 'on récupère le nom
deb = .DataBodyRange(LigToSup, 2) 'la date de début de congés
fin = .DataBodyRange(LigToSup, 3) ' date de fin de congés
If Supprimer Then
.ListRows(LigToSup).Delete
End If
End With
For quand = deb To fin 'pour chaque jour de congés
onglet = Format(Month(quand), "00") 'on récupère l'onglet sur lequel enregistrer le jour
If TYPEJOUR(CDate(quand)) = 0 Then '
With Sheets(onglet) 'avec l'onglet
Set ColJour = .Rows(12).Find(Format(Day(quand), "00"), LookIn:=xlValues) 'on cherche la colonne du jour
Set LigneNom = .Columns(1).Find(Nom, lookat:=xlWhole) 'on cherche la ligne du nom
If ColJour Is Nothing Or LigneNom Is Nothing Then
MsgBox "Erreur demande sur ligne " & i
Else
.Cells(LigneNom.Row, ColJour.Column).Offset(0, 0) = "" 'on efface le congé
End If
End With
End If
Next quand
If Not Supprimer Then ddeConge 'comme il s'agit d'une modif, on relance la macro pour enregistrer les nouveaux congés
End Sub