Validation au 15 ou au dernier jour du mois

Jiheme

XLDnaute Accro
Bonjour le Forum

Je voudrais limiter la saisie d'une plage de cellule au 15 ou au dernier jour de n'importe quel mois de n'importe quelle année.

J'ai bien la solution de faire une liste de ces dates, mais si l'une ou l'un d'entre vous a une solution plus simple et "permanente" je suis preneur.

Merci
A+
 

Pierrot93

XLDnaute Barbatruc
Re : Validation au 15 ou au dernier jour du mois

Bonjour à tous,

une solution vba, enfin si j'ai bien compris, code à placer dans le module de la feuille concernée :
Code:
Option Explicit
Private Sub Worksheet_Change(ByVal Target As Range)
If Target.Address <> "$A$1" Then Exit Sub
Application.EnableEvents = False
If Not IsDate(Target) Then Target = "": GoTo fin
If Day(Target) <> 15 And (Day(Target) <> Day(DateSerial(Year(Target), Month(Target) + 1, 0))) Then Target = ""
fin:
Application.EnableEvents = True
End Sub

bonne journée
@+
 

Jiheme

XLDnaute Accro
Re : Validation au 15 ou au dernier jour du mois

Bonjour JHA, Pierrot re à tous

JHA : je n'ai pas de colonne date et je ne peux en rajouter, je souhaite que l'on ne puisse saisir dans la colonne en question qu'une date au 15 ou au dernier jour d'un mois genre 15/06/2012.

Pierrot : j'ai ce message d'erreur sûrement car j'ai déjà une macro Worksheet_Change

"Nom ambigu détecté : Worksheet_Change"

Merci
A+
 

mapomme

XLDnaute Barbatruc
Supporter XLD
Re : Validation au 15 ou au dernier jour du mois

Bonjour à tous,

Je fignolais donc en retard mais mêmes solutions que déjà publiées.

En validation, je n'arrive pas à interdire la suppression des données, y a t il un truc?

NB: pour tester aujourd'hui, on peut modifier la constante de la macro.
 

Pièces jointes

  • Validation date 15 fin de mois v1.xlsm
    16.9 KB · Affichages: 48

Jiheme

XLDnaute Accro
Re : Validation au 15 ou au dernier jour du mois

Bonjour Modeste

Ta solution fonctionne pour le 15 mais pas pour le dernier jour du mois.

Mais elle m'a mis sur la voie et j'ai trouvé :
=OU(JOUR($V10)=15;JOUR(V10)=JOUR(FIN.MOIS(V10;0)))

Je vous la livre si cela peut servir à quelqu'un d'autre...

Pour ma culture personnelle, j'aimerais bien savoir si ce que je soupçonne au sujet de Worksheet_change esst exact et qu'elle peut être la solution pour en avoir plusieurs sur une même feuille.

Merci
A+

Edit : Merci mapomme, mais le problème risque d'être le même qu'avec la macro de Pierrot
 
Dernière édition:

mapomme

XLDnaute Barbatruc
Supporter XLD
Re : Validation au 15 ou au dernier jour du mois

Bonjour,

Dans l'unique procédure Worksheet_change, on peut gérer par une série de conditions les différentes zones à traiter et les traitements particuliers à chaque zone.

EDIT: Que se passe t il si le 15 ou la fin de mois est un jour non travaillé ? Pas de saisie de rattrapage ? :confused:
 
Dernière édition:

Jiheme

XLDnaute Accro
Re : Validation au 15 ou au dernier jour du mois

Re à tous

Merci mapomme de cette explication, je vais aller chercher des exemple pour tacher de comprendre.

Pour la date, on s'en fiche c'est une date d'échéance, même si le client la respecte, le banquier paiera au premier jour ouvrable suivant. Ce qui entre nous soit dit sera déjà un exploit.

A+
 

Jiheme

XLDnaute Accro
Re : Validation au 15 ou au dernier jour du mois

Bonjour Pierrejean, re à tous

Merci beaucoup, comme je le disais plus haut, je vais m'entrainer à faire plusieurs macro Whorksheet_change sur la même feuille avant de pouvoir utiliser vos codes.

Il n'est pas impossible d'ailleurs que j'ai encore besoin de vous avant d'y arriver car en général j'ai des problèmes avec Target...

A+
 

Modeste

XLDnaute Barbatruc
Re : Validation au 15 ou au dernier jour du mois

Re-bonjour (il y a du monde pour un dimanche ensoleillé :D)

Je n'aime pas donner l'impression d'insister, mais la solution que j'avais proposée avait été testée ... et je l'ai re-testée depuis le message de Jiheme ... et dans les deux cas elle fonctionne (sur ma machine, en tout cas). Y aurait-il une raison pour que ce ne soit pas le cas sur une autre machine?? ... ou alors ce sont des "cas particuliers" que je n'ai pas testés??
 

Discussions similaires