Date automatique futur

Fermé
badoche - 9 avril 2015 à 16:34
Vaucluse Messages postés 26496 Date d'inscription lundi 23 juillet 2007 Statut Contributeur Dernière intervention 1 avril 2022 - 16 avril 2015 à 14:22
Bonjour,
j'ai inscrit dans a1 la date du jour, je souhaiterais que dans b1 elle mette automatiquement la date de 6 mois plus tard.

Et encore mieux, je souhaiterais par la suite avoir une liste de a2 à a10 où, si la date est plus vieille que dans 6 mois, j'obtienne un message d'erreur.

Je sais pas trop si c'est possible sans macro?

Merci d'avance pour votre aide

Badoche

3 réponses

Chris 94 Messages postés 50978 Date d'inscription mardi 8 janvier 2008 Statut Modérateur Dernière intervention 17 février 2023 7 341
9 avril 2015 à 16:35
Bonjour,

De quoi parles-tu ? Excel et macro ? Usage de VB ou VBA ?
0
En fait, dans Excel je chercherais une formule pour ajouter 6 mois à une date
0
Chris 94 Messages postés 50978 Date d'inscription mardi 8 janvier 2008 Statut Modérateur Dernière intervention 17 février 2023 7 341 > badoche
9 avril 2015 à 17:04
Je redirige ton sujet vers le forum ad hoc :-)
0
Vaucluse Messages postés 26496 Date d'inscription lundi 23 juillet 2007 Statut Contributeur Dernière intervention 1 avril 2022 6 418
Modifié par Vaucluse le 9/04/2015 à 17:14
Bonjour
pour décaler la date de A1 de 6 mois, en B1
=DATE(ANNEE(A1);MOIS(A1)+6;JOUR(A1))

pour signaler que cette date est dépassée, je n'ai pas compris où vous voulez mettre le résultat, mais la formule est:
=SI(ET(B1>0;AUJOURDHUI()>B1);"dépassé";"OK")

ou bien sur directement depuis A1

=SI(ET(A1>0;AUJOURDHUI()>DATE(ANNEE(A1);MOIS(A1)+6;JOUR(A1)));"dépassé";"OK")


mais si vous mettez la date du jour en A1, vous ne dépasserez jamais la date +6, évidemment?

pour info: la date du jour en A1 peut se placer avec la formule:
=AUJOURDHUI()

crdlmnt



Errare humanum est, perseverare diabolicum
0
Merci pour votre aide, j'ai finalement réussi à mettre la date six mois plus tard avec cette formule =MOIS.DECALER(A1;6).
Par contre, pour vérifier le dépassement je cherche encore.

Je vais tenter de mieux m'exprimer :

j'ai une date de début en a1 et une date de fin en b1.
Et entre ces deux dates, il ne doit pas y avoir plus de 6 mois d'écart. Sauf qu'elles seront saisies manuellement et j'aurais besoin qu'un message s'affiche en c1 pour dire que ce n'est pas valide.
0
Vaucluse Messages postés 26496 Date d'inscription lundi 23 juillet 2007 Statut Contributeur Dernière intervention 1 avril 2022 6 418
10 avril 2015 à 11:11
Essayez avec:

=SI(DATEDIF(A1;B1;"m")&","&DATEDIF(A1;B1;"md"))*1>6;"erreur";"")

mais vous pouvez interdire l'entrée d'une date supérieure de + de 6 mois en B1 via la validation d'Excel
saisir B1 (ou tout le champ B si besoin)
Données/ validation/ personnalisé
entrez la formule:
=(DATEDIF($A1;$B1;"m")&","&DATEDIF($A1;$B1;"md"))*1<=6
en cliquant sur les onglets options der la fenêtre de validation, vous pouvez écrire un message qui s'affichera en cas d'erreur

crdlmnt
0
Je n'arrives à rien, je ne comprends pas comme cette formule fonctionne, désolée
0
Vaucluse Messages postés 26496 Date d'inscription lundi 23 juillet 2007 Statut Contributeur Dernière intervention 1 avril 2022 6 418
16 avril 2015 à 14:22
DATEDIF(A1;B1;"m") renvoie le nombre de mois complets entre A1 et B1
DATEDIF(A1;B1;"md") renvoie le nombre de jours au delà des mois complets calculés
le &","& permet de concaténer les deux valeurs pour créer un nombre décimal
le *1 permet de numériser ce résultat, car l'assemblage ressort en format texte sans valeur numérique

et vous comprendrez peut être mieux cette formule sans la condition SI en écrivant:
=DATEDIF(A1;B1;"m")&","&DATEDIF(A1;B1;"md"))*1

elle vous donne un nombre décimal composé du nombre de mois complet entre les deux dates plus le nombre de jours qui pourraient dépasser de cet nombre de mois.

avec la condition, si ce résultat est supérieur à 6 le résultat sera "erreur"
Ce calcul permet de situer le débordement des 6 mois en incluant un éventuel nombre de jours entre le 6° et el 7° mois.

Notez toutefois que si vous voulez afficher "erreur" même si l'écart est de 6
exactement, DATEDIF(A1;B1;"m")=>6 suffit

crdlmnt
0