Verrouillage de cellules à date déterminée

Bonjour à tous et à chacun

J’ai un fichier (ci-joint) avec une colonne indiquant les dates. En face de chaque journée, il y a des cellules à remplir.

Lorsque la journée est terminée (sur la base de l’horloge interne de l’ordinateur), je souhaite que toutes les cellules correspondantes à cette journée soient automatiquement verrouillées.

Quelle VBA écrire pour que cela soit possible ?

Le fichier fonctionne verrouillé. La date du 1er jour de la colonne est modifiable

Je remercie d’avance celles et ceux qui voudront bien m’aider.

Cordialement

Patrick75

PS : J'ai suivi les travaux de rénovation du forum.. Merci à tous celles et ceux qui permettent qu'il existe. Je n'ai pas trouvé où je pouvais rechercher les thèmes de question proches de la mienne. Il se peut donc que ma question ait été déjà traitée et je vous prie de m'en excuser.

16exemple-pm.xlsx (11.30 Ko)

Bonjour,

Pas besoin de VBA

22exemple-pm.xlsx (11.18 Ko)

Patrice33740,

Merci d'avoir répondu à ma question

Tu as donc utilisé la validation de données. Je n'y ai pas pensé.

La formule "=$D$8>=AUJOURDHUI()" est claire.

Par contre, à titre d'exemple, en indiquant la date d'hier, jeudi 8 février, en haut de la colonne des dates, j'ai constaté qu'il n'était, certes, plus possible aujourd'hui d'écrire dans les cellules de la date du 8/02 mais, hélas, il est reste possible de les effacer.

Choisir "Personnalisé" dans la fenêtre "autoriser" rend la saisie impossible comme vient le rappeler le message d'alerte que tu as créé.

Mais les cellules de la date du 8/02 ne sont pas verrouillées comme je le souhaitais.

Est-il possible d'y parvenir autrement ?

Cordialement

Patrick75

Bonjour,

Une proposition à étudier.

Cdlt.

19exemple-pm.xlsm (23.92 Ko)

Jean-Eric,

Cette proposition me convient tout à fait puisqu'il n'est plus possible de modifier les cellules correspondant à une journée J une fois que nous sommes à J+1.

J'ai regardé le code VBA. Je n'y connais rien mais je suis au moins capable la plupart du temps de transposer le code dans une autre application en modifiant les cellules concernées . Je suis incapable de toucher au code lui-même !

Bref, dans le code que tu proposes, je vois les cellules sur lequel on agit !

Si ce n'est pas abuser de ton temps, je voudrais juste comprendre ce que veulent dire ces deux lignes :

dt = IIf(Target.Row Mod 2, Me.Cells(Target.Row - 1, 4), Me.Cells(Target.Row, 4))

If dt <> Date Then

Je te remercie encore de ton aide

cordialement,

patrick75

Re,

Target.Row Mod 2 renvoie 0 si le numéro de ligne de la cellule modifiée est pair. 1 dans le cas contraire (donc impair ) .

Je te propose un peu de lecture pour la suite :

Opérateur Mod :

https://msdn.microsoft.com/fr-fr/VBA/Language-Reference-VBA/articles/mod-operator

Fonction IIf :

https://msdn.microsoft.com/fr-fr/VBA/Language-Reference-VBA/articles/iif-function

A te relire.

Cdlt.

Merci Jean-Eric d'avoir pris le temps de m'expliquer.

Bon, j'ai regardé les deux pages proposées par les liens... j'ai des choses à apprendre s'il m'est encore possible de le faire... mais j'aime néanmoins avoir une petite idée de la signification des lignes de code !

Merci encore pour ta solution qui répond à la question posée.

Merci également à Patrice33740 qui m'a répondu.

Bien cordialement,

Patrick75

Rechercher des sujets similaires à "verrouillage date determinee"