XL 2016 protection de cellules en fonction d'une date

Saintes7010

XLDnaute Nouveau
Bonjour à tous,
J'ai besoin d'aide pour réaliser un fichier. Il s'agit d'un planning de congé. Chaque personne peut poser ces congés "CA" jusqu'à la date butoir (=réglage!A8, dans mon fichier). Après ce la devient des "C". J'aimerai protéger les cellules "CA" et pas les autres contre toutes suppressions à la date butoir mais que les autres cellules restent libres. (cfr ex dans l'onglet Janvier).
Et ça je ne sais pas faire avec mes connaissances actuelles d'Excel.
Alors un grand merci d'avance pour votre aide.
 

Pièces jointes

  • Calendrier des congés v1.11.xlsx
    308.2 KB · Affichages: 33

job75

XLDnaute Barbatruc
Bonjour Saintes7010,

Testez le fichier joint avec ce code dans ThisWorkbook :
Code:
Option Compare Text 'la casse est ignorée

Private Sub Workbook_SheetChange(ByVal Sh As Object, ByVal Target As Range)
If Not IsDate("1/" & Sh.Name) Then Exit Sub
Dim butoir As Date, c As Range, x As Variant, bloque As Boolean
butoir = Sheets("réglage").[A8]
Application.EnableEvents = False 'désactive les évènements
For Each c In Target
    x = Sh.Cells(5, Target.Column)
    If c = "CA" And IsDate(x) And x > butoir Then bloque = True: Exit For
Next
Application.Undo
If Not bloque And Application.CountIf(Target, "CA") = 0 Then Application.Undo
Application.EnableEvents = True 'réactive les évènements
End Sub
Il empêche d'entrer des "CA" après la date butoir et de supprimer ceux qui ont été entrés.

Nota : j'ai corrigé la liste "code" dans la feuille "réglage".

A+
 

Pièces jointes

  • Calendrier des congés(1).xlsm
    324.4 KB · Affichages: 31

Saintes7010

XLDnaute Nouveau
Bonjour à tous,
J'ai besoin d'aide pour réaliser un fichier. Il s'agit d'un planning de congé. Chaque personne peut poser ces congés "CA" jusqu'à la date butoir (=réglage!A8, dans mon fichier). Après ce la devient des "C". J'aimerai protéger les cellules "CA" et pas les autres contre toutes suppressions à la date butoir mais que les autres cellules restent libres. (cfr ex dans l'onglet Janvier).
Et ça je ne sais pas faire avec mes connaissances actuelles d'Excel.
Alors un grand merci d'avance pour votre aide.

Merci beaucoup Job 75,
Mais c'est pas tout à fait cela que je voudrais. A la date butoir : les "CA" sont protégés mais je ne peux plus en poser (sur des autres cellules), ils sont remplacer par des "C".et en changeant cette date butoir ( qui sera protéger par un mot de passe ) je pourrais les effacer.
Je ne sais pas si je me suis bien fait comprendre.
Merci pour votre aide.
 

Saintes7010

XLDnaute Nouveau
Bonjour Job75,
Merci beaucoup pour l'attention que tu me donnes.
Mais chez moi, cela ne fonctionne pas tout à fait correctement , comme je le voudrais.
:"Cela empêche qu'on les efface."
Oui , mais quand je change la date butoir (date butoir > date du jour), cela les empêche des les effacer aussi.
Je voudrais : jusqu'à la date butoir (=réglage!A8, dans mon fichier) : que les "CA" soient protégés et qu' ils soient empêcher d'être effacer mais que je ne puisse plus en poser (sur les autres cellules). (donc dans la liste déroulante, qu'on ne puisse plus choisir "CA" mais "C à la place) (donc après cette date butoir cela devient des "C". qui restent non protégés, les autres cellules restent libres.).
Mais si on change cette date butoir qu'on puisse tout faire comme avant.
Merci pour votre aide.
 

job75

XLDnaute Barbatruc
Bonjour Saintes7010, le forum,

Pour ce qui est de la liste de validation je ne vois pas d'autre solution que d'avoir "CA" et "C" dans la liste.

Maintenant voyez ce fichier (2) où j'ai ajouté cette macro :
Code:
Private Sub Workbook_SheetBeforeRightClick(ByVal Sh As Object, ByVal Target As Range, Cancel As Boolean)
If Not IsDate("1/" & Sh.Name) Or Target(1) <> "CA" Then Exit Sub
Dim x As Variant
Cancel = True
x = Sh.Cells(5, Target.Column)
If Not IsDate(x) Or x <= Sheets("réglage").[A8] Then Exit Sub
Application.EnableEvents = False 'désactive les évènements
Target(1) = ""
Application.EnableEvents = True 'réactive les évènements
End Sub
Faites passer la date butoir en réglage !A8 du 15/09/2018 au 10/09/2018.

Dans la feuille "Septembre" le clic droit sur P8 ou Q8 permet d'effacer les "CA".

A+
 

Pièces jointes

  • Calendrier des congés(2).xlsm
    346.6 KB · Affichages: 27

Saintes7010

XLDnaute Nouveau
reBonjour Job75,
Merci beaucoup
C'est presque ça, tu as fait un très bon travail.
Mais je voudrais qu'on puisse changer jusqu'à cette date butoir. c'est à dire si la date butoir est le 16/9/18 qu'on puisse tout changer, effacer (avant et après la date) et que cela s'arrête à cette date butoir.
A+
 

Discussions similaires

Statistiques des forums

Discussions
312 338
Messages
2 087 398
Membres
103 536
dernier inscrit
komivi