Imposer saisie date, autoriser un débordement

Bonjour à toutes et tous,

Je ne sais pas si mon titre est clair, je voudrai, sans macro, à l'aide d'une validité :

1) Contrôler si l'utilisateur saisie une date dans un créneau ; si c'est hors créneau, un simple avertissement, mais la saisie reste autorisée.

J'y arrive via la validité, en autorisant "Date", Données "Comprise entre", en renseignant une date de début et une date de fin, puis en réglant l'alerte d'erreur sur "Avertissement"

Mais...

2) Si l'utilisateur saisie un texte, je veux interdire la saisie.

Actuellement, l'utilisateur qui saisie le texte "toto" a juste droit à l'avertissement, qu'il peut donc ignorer.

Est-il possible d'avertir pour le premier cas, et d'interdire pour le second ?

Merci d'avance

Bonjour

Est-il possible d'avertir pour le premier cas, et d'interdire pour le second ?

A mon avis, sans VBA, c'est soit l'avertissement, soit l'interdiction pour les deux cas.

sur l'exemple suivant, tu peux interdire pour les 2 cas.

Cordialement

62belug.xls (14.00 Ko)

Bonjour Amadéus,

Je te présente toute mes excuses, car je n’ai pas été assez précis

Je voulais imposer une saisie date car c’est une date de début, ailleurs il y a une date de fin et un calcul de différence pour connaitre le délai.

Du coup, j’ai opté pour une autre solution :

  • Si il y a une date de fin supérieure ou égale à la date de début et inférieure ou égale à aujourd’hui, les cellules C4:E4 se colorent en vert.
  • En cas de saisie texte pour date début, C4 se colore en rouge.
  • D4 n’autorise que des dates

Ce fonctionnement me convient (en fait, c’est pour éviter des saisies avec double slash du type "01//04/16" et autres erreurs de frappe).

Maintenant que tu as toutes les contraintes, tu as plus astucieux ?

Ci joint le fichier modifié.

Merci

52belug.xls (18.50 Ko)

Bonjour,

tu ne veux pas écrire en clair tes contraintes sur début, fin et délai ?

Parce que là tu fais un méli-mélo avec une référence circulaire sur les validations (A dépend de B qui dépend de C qui dépend de A...), avec en plus une date qui doit être <=59 qui n'est pas une date.

Bref, ça n'a aucun sens

eric

Bonsoir,

Il faut que tu définisses par rapport à AUJOURDHUI() le créneau de ta date de début : AUJOURDHUI()-quelque chose...

eriiic a écrit :

tu fais un méli-mélo avec une référence circulaire sur les validations (A dépend de B qui dépend de C qui dépend de A...)

Je n'ai pas l'impression de faire du meli-melo avec la validation, j'en fais suffisamment avec les MFC

La finalité est d'avoir :

  1. Une date en C4
  2. Une seconde date en D4
  3. Et je peux donc calculer un délai en jours en E4

Pour la validation, dans mon dernier fichier joint :

  • En C4, je veux imposer la saisie d'une date, qui est la date de saisie de la demande.
    Cette date peut être en dehors des bornes définies en D1:E1
    dans ce cas, je veux pouvoir avertir que c'est en dehors de bornes, et autoriser la saisie

...sauf que cette autorisation permet de saisir n'importe quoi, comme du texte que je ne veux pas

  • Lorsque l'on saisie la seconde date en D4, qui corresponds au traitement de la demande, je veux là aussi imposer une date.

      Contraintes de la date en D4 : [list]elle ne peut pas être inférieure à C4 (on ne peut pas traiter une demande en amont)
      elle ne peut pas être supérieure à aujourd'hui (on ne peut pas anticiper le traitement d'une demande)
    (cette validité est correcte)
  • Lorsque les 2 dates sont saisies en C4 et D4, je calcule le délai de la réalisation de la demande en E4, avec une simple soustraction.
      Dans le fichier joint, ça donne donc 59, mais c'est juste à titre indicatif, ce n'est pas que je veuille à tout prix obtenir ce chiffre

    Le vrai problème est que l'avertissement en C4 pour le dépassement de date, permet la saisie de texte, et que cette saisie de texte perturbe alors la soustraction finale[/list]

    Dans l'idéal, quand je demande à un tableur une date entre 2 bornes avec avertissement, j'aimerai qu'il avertisse (sic), mais contrôle quand même que c'est une date ; pour contourner ce problème, j'ai donc imaginé le principe d'une MFC sur C4, afin d'autoriser la saisie de date en dehors des bornes avec avertissement, puis colorer les cellules s'il ne s'agit pas de date.

    Espérant avoir été plus clair

  • Bon, j’ai trouvé une autre solution :

    • En C4, j’avertis si l’on est en dehors des bornes (ce qui permet une saisie texte non voulue )
    • En D4, j’interdis la saisie si :
      C4 est du texte
    • D4 est inférieure à C4
    • D4 est supérieur à aujourd’hui

    Ça donne ce fichier joint :

    46belug2.xls (19.50 Ko)

    Merci à tous pour vos réponses rapides et constructives

    Bonjour,

    Je n'avais pas fait attention que les bornes était ligne 1, d'où la référence circulaire que je trouvais.

    Difficile de faire plus sans vba. Perso j'aurais plutôt fait le choix d'un blocage si texte (+ ou date > E1 si ça doit être) et MFC si date <D1 pour mieux sécuriser.

    Tu peux éventuellement empêcher l'affichage du texte pour faire plus propre avec le format jj-mmm;;; le #VALEUR! alertant.

    eric

    eriiic a écrit :

    j'aurais plutôt fait le choix d'un blocage si texte

    Je pense que tu as raison, ce qui m’embête est que j’ai déjà quelques conditions de MFC dans le fichier réel, je vais comment j’adapte.

    La 2e date étant délimitée par la 1re date et aujourd'hui, la 1re date ne peut être délimitée que par une date antérieure (plus ou moins arbitraire, et également aujourd'hui (qui n'est logiquement pas le même aujourd'hui que celui de la 2e date...)

    Même avec un blocage strict sur des conditions de date, il n'y a qu'un blocage relatif dans la mesure où l'on peut revenir après coup une fois que la valeur d'aujourd'hui a changé (elle change tous les jours).

    Seule une procédure VBA permettrait de diversifier les conditions de choix et d'empêcher leur modification ultérieure.

    Cordialement.

    MFerrand a écrit :

    qui n'est logiquement pas le même aujourd'hui que celui de la 2e date

    ...et encore, il existe la possibilité de traiter une demande le jour même

    Si je m’engage sur cette voie, il va falloir ensuite verrouiller la/les ligne(s) qui ont une date de fin, définir un mot de passe, coder le mot de passe dans la macro ou le mettre dans une bibliothèque à part, etc...,

    Je te remercie beaucoup pour cette réponse, mais je vais rester sur mes acquis, je n’ai pas envie de mettre en place une macro dont je ne pourrai assurer la maintenance vu mes modestes capacités .

    Rechercher des sujets similaires à "imposer saisie date autoriser debordement"