Bonjour à tous,
Je vous explique mon problème. Je dispose d'un tableau pour gérer les absences.
J'ai une liste de validation sur la feuille "planning" en colonne F qui me permets de choisir un motif d'absence pour chaque agent (nom de l'agent en colonne E).
Entre autre motif il y a les "journées enfants malade" dont le quota est fixé à 6.
Dès lors que la personne a dépassé ce quota, je voudrais que la" journée enfant malade" ne puisse plus être saisie (ou mieux qu'elle soit grisée).
Le cumul de ces "journées" se trouve sur une autre feuille ("Gestion Absences") en colonne T avec une ligne pour chaque agent.
Sur ma feuille planning, je saisi le nom de l'agent (colonne E) et le motif de l'absence (colonne F). Si cet agent n'a plus droit à ces journée j'ai une msgbox d'alerte qui me le dit.
Voici mon bout de code :
Option Explicit
Private Sub Worksheet_Change(ByVal Target As Range)
If InStr(1, Sheets("Gestion Absences").Range("T6"), "0", vbTextCompare) <> 0 Then
If Target.Count > 1 Then Exit Sub
If Target = "Enfant malade" Then
Target.Offset(0, 1) = MsgBox("Journées enfant malade épuisées", vbCritical)
End If
End If
End Sub
J'ai plusieurs problèmes :
- je ne sais pas comment indiquer que le total d'absences "enfant malade" se trouve en colonne T (la colonne entière et non simplement la colonne T6).
- comment faire pour qu'à la suite de l'alerte, la cellule F se vide et ne reste pas sur "Enfant malade".
J'espère être assez clair et vous remercie d'avance pour vos lumières.