Fonction SI imbriquée ?

r1kre

XLDnaute Nouveau
Bonjour à toutes et tous, bonjour le forum,

je suis sur un tableur où j'utilise les fonctions suivantes :

A1 Validité
A2 05/01/2007
A3 31/12/2006
A4 31/12/2006
A5 01/07/2006

B1 Nbre de jours avant expiration [=SI(ESTNUM(Ai);DATEDIF(AUJOURDHUI();Ai;'d');'')]
B2 192
B3 187
B4 187
B5 4

C1 Renouveler [=SI(Bi<15;'Renouveler';'')]
C2 ''
C3 ''
C4 ''
C5 Renouveler

Ce que je voudrais pouvoir faire, c'est quand mon date espire, exemple :
A6 25/06/2006,
une formule me dise par exemple B6 -2 jours
et en C6 Dépassé

J'ai pensé à une fonction SI imbriquée, mais je n'en suis pas sûr....

Je vous remercie d'avance
Amicalement Erwan
 
H

Harry

Guest
Il faut que tu rentre la date d'aujourd'hui
exemple: D1=AUJOURDHUI()

colone A tu rentres les dates
colone B = (ANNEE(Ax)-ANNEE($D$1))*360+(MOIS(Ax)-MOIS($D$1))*30+JOUR(Ax)-JOUR($D$1)

colone C = SI(Bx<0;'Dépassé';SI(Bx<y;'renouveller';'')

x représente ton numéro de ligne
y représente ta durée à partir de laquelle il te faut renouveller ton produit


Seul défaut de ma méthode, elle est valide à 3 jours prés car j'ai fixé par défaut la durée des mois à 30 jours

Dis moi ce que ca donne !!!
 

Monique

Nous a quitté
Repose en paix
Bonjour,

Une idée, comme ça.

En B3 :
=SI(ESTNUM(A3);SI(A3>AUJOURDHUI();DATEDIF(AUJOURDHUI();A3;'d');A3-AUJOURDHUI());'')

En C3 :
=SI(B3<0;'Dépassé';SI(B3<15;'Renouveler';''))

Format nombre personnalisé en B:B :
[Rouge][=-1]- 0' jour';[Rouge][<0]- 0' jours';Standard
de façon à avoir 'jour' ou 'jours' quand le délai est dépassé et en rouge
 
H

Harry

Guest
Tu l'as dans quelle version DATEDIF ?
parce que moi sur 2003 pro je l'ai pas

sinon on peut aussi utiliser JOURS360(date_début;date_fin;méthode).

Toutefois le problème sera le même que pour ma précédente proposition car l'on se basera sur une année de 360 jours
 
E

Erwan

Guest
Merci à Harry et à Claude38

J'ai adapté vos formules et ça fonctionne.

J'ai utilisé :

en B : =SI(Ai>AUJOURDHUI();DATEDIF(AUJOURDHUI();Ai;'d');SI(Ai<AUJOURDHUI();'CAP Dépassé'))

en C : =SI(Bi<15;'Renouveler le CAP';SI(Bi='CAP dépassé';'Renouveler le CAP';''))

La chose étrange, je ne sai^s pas si ça se fait de trop : SI(Bi='CAP dépassé'....), mais bon, tout ce que je demande, c'est que ça marche

Encore un grand merci
Bonne soirée
Amicalement
Erwan
 
H

Harry

Guest
Si ca se fait mais ca ne marche que si ta casse est identique (accents, majuscules, ponctuations, espaces) d'ailleurs tu as dans un cas Dépassé et dépassé dans l'autre. Soit tu mets une majuscule sois tu n'en met pas mais décide toi sinon la formule risque de ne pas marcher.
 

Monique

Nous a quitté
Repose en paix
Re,

DateDif() est inutile.
on peut remplacer
=DATEDIF(AUJOURDHUI();A3;'d')
par
=A3-AUJOURDHUI()

Suite
Le message de 19h06
En B3 :
=SI(ESTNUM(A3);A3-AUJOURDHUI();'')

et non :
=SI(ESTNUM(A3);SI(A3>AUJOURDHUI();DATEDIF(AUJOURDHUI();A3;'d');A3-AUJOURDHUI());'')

Message édité par: monique, à: 27/06/2006 19:54
 
E

Erwan

Guest
Monique,
ta formule est optimisée, et correspond à ce que je cherchais (en mieux ;-) )

La seule chose que je ne comprenne pas, c'est :

Format nombre personnalisé en B:B :
[Rouge][=-1]- 0' jour';[Rouge][<0]- 0' jours';Standard de façon à avoir 'jour' ou 'jours' quand le délai est dépassé et en rouge

Peux-tu me donner de plus ample infos S'il te plait?

Merci
Erwan (qui peu a peu, commence à apprendre, et comprendre des choses à excel)
 

Monique

Nous a quitté
Repose en paix
Re,

Barre de menu - Format - Cellule
Onglet 'Nombre'
A gauche, dans 'Catégorie', tu choisis 'Personnalisé'
Puis à droite, dans 'Type', tu tapes :
[Rouge][=-1]- 0' jour';[Rouge][<0]- 0' jours';Standard

C'est un format à 3 conditions
Cond 1 : si la valeur de la cellule = - 1, police rouge, format 0 suivi de 'jour' au singulier
Cond 2 : si la valeur de la cellule < 0, police rouge, format 0 suivi de 'jours' au pluriel
Cond 3 : sinon, format standard

Message édité par: monique, à: 27/06/2006 20:21
 

Statistiques des forums

Discussions
312 207
Messages
2 086 244
Membres
103 162
dernier inscrit
fcfg