Format de date : Quantième + année en cours

pallah1

XLDnaute Nouveau
Bonjour,

je cherche à en indiquant juste le quantième dans une case à obtenir une date avec l'année en cours (ou une année déterminée). Dans le format de date d'excel, j'ai beaucoup d'option mais visiblement pas celle-ci.

Pour donner un exemple, j'aimerais qu'en écrivant 254 dans une colonne, j'obtienne 10/09/17.
En indiquant le format jj/mm/aa et en écrivant ensuite 254, j'obtiens 10/09/00.

Avez vous une solution pour moi?

Merci d'avance
 

Modeste geedee

XLDnaute Barbatruc
Bonsour®
Bonjour à tous,
Bonjour Victor21;)

Pour cette année, tu peux essayer ce format personnalisé
jj/mm"/17"
mais excel aura pour référence 10/09/1900 et la date ne sera pas juste.

JHA
en effet oupsss !...
:( date erronée pour le quantième 60 des années non bissextile (29/02/17)


Pallah1 à dit:
qu'en écrivant 254 dans une colonne, j'obtienne 10/09/17.
noter également que le quantième 254 pour 2017 est le 11/09/2017 et non le 10/09
 
Dernière édition:

pallah1

XLDnaute Nouveau
et alors attention j'ai une autre question !

Vu qu'on va très vite arriver sur l'année 2018, j'aurais besoin si c'est possible d'une formule (je doute que ce soit possible avec un simple format de date?) qui fasse quelque chose comme :

si quantième supérieur à 200, année = 2017 et si quantième inférieur à 200, année = 2018
 

pallah1

XLDnaute Nouveau
Alors j'avoue, j'ai du mal à comprendre le fichier excel, mais encore une fois je suis vraiment un grand débutant.
Concernant l'explication de dg62, je n'ai pas compris où et sous quelle forme je devais indiquer sa formule si(et(aujourdhui()>A1+200;aujourdhui()<A2+200);...

Mais quoi qu'il en soit merci de votre aide !
 

Dranreb

XLDnaute Barbatruc
Bonjour.
Essayez cette procédure dans le module de la feuille :
VB:
Private Sub Worksheet_Change(ByVal Target As Range)
Dim V As Long, D1 As Date, D2 As Date
If Target.Column <> 1 Then Exit Sub
On Error Resume Next
V = Target.Value: If Err Then Exit Sub
On Error GoTo 0
If V > 367 Then Exit Sub
D1 = DateSerial(Year(Date), 1, V): D2 = DateSerial(Year(Date) + 1, 1, V)
Application.EnableEvents = False
If Abs(D2 - Date) < Abs(D1 - Date) Then Target.Value = D2 Else Target.Value = D1
Application.EnableEvents = True
End Sub
 

dg62

XLDnaute Barbatruc
Bonjour à Tous,
Concernant l'explication de dg62, je n'ai pas compris où et sous quelle forme je devais indiquer sa formule si(et(aujourdhui()>A1+200;aujourdhui()<A2+200);...
cette formule fait référence à votre demande
"si quantième supérieur à 200, année = 2017 et si quantième inférieur à 200, année = 2018"

La formule (fonction SI et ET) permet de déterminer si la date du jour est comprise entre les deux quantièmes. Elle doit simplement être complétée par l'action à exécuter si la condition est vraie.
Cela ne dépend que du contexte de votre application.

@+
 

Dranreb

XLDnaute Barbatruc
Vu qu'on va très vite arriver sur l'année 2018, j'aurais besoin si c'est possible … qui fasse quelque chose comme …
Bon, pour respecter l'esprit de la demande quelle que soit la période de l'année, j'ai opté, dans ma solution poste #11, pour celui des deux quantièmes (de l'année en cours ou de la suivante) le plus proche de la date du jour.
Mais je n'ai pas prévu pour l'instant que ça puisse aussi être un quantième de l'année précédente quand on est en début d'année.
 
Dernière édition:

Discussions similaires

Membres actuellement en ligne

Statistiques des forums

Discussions
314 636
Messages
2 111 464
Membres
111 152
dernier inscrit
KARIMTAPSO