Fonction SI(OU) ne répond pas ... Le sujet est résolu

Y compris Power BI, Power Query et toute autre question en lien avec Excel
j
jpmalb
Membre habitué
Membre habitué
Messages : 129
Appréciation reçue : 1
Inscrit le : 15 décembre 2017
Version d'Excel : 2002

Message par jpmalb » 9 décembre 2018, 14:28

Bonjour
Dans un tableau, une cellule B2 contient cette formule : =SI(OU(ESTVIDE(A2);ESTVIDE(B2));" "=DATEDIF(A2;C2;"y"))
pour que, lorsque la cellule A2 reçoit une date, la cellule B2 affiche le temps écoulé par rapport à C2 qui contient une date fixe.
A la mise en oeuvre, la cellule B2 affiche 0 , et ce, avec ou sans donnée dans A2...
La formule est bonne...pourtant Excel indique "référence circulaire.."
...Votre avis ?
quand je veux faire une recopie incrémentée vers le bas, A, B et C sont incrémentés en même temps... Y a-t-il une astuce pour que C2 ne soit pas modifié ?
Merci
Avatar du membre
ric
Membre impliqué
Membre impliqué
Messages : 2'076
Appréciations reçues : 173
Inscrit le : 29 mai 2018
Version d'Excel : 365 fr

Message par ric » 9 décembre 2018, 14:46

Bonjour,

Je ne suis pas très bon dans les formules ... à tout hasard ...
=SI(A2="";"";DATEDIF(A2;C2;"Y"))



ric
Un bon dépanneur : la touche F8 pour faire un Pas-à-Pas sur le code. :mrgreen:
j
jpmalb
Membre habitué
Membre habitué
Messages : 129
Appréciation reçue : 1
Inscrit le : 15 décembre 2017
Version d'Excel : 2002

Message par jpmalb » 9 décembre 2018, 15:18

merci de ton aide mais ça ne change rien..
M
MFerrand
Fanatique d'Excel
Fanatique d'Excel
Messages : 17'201
Appréciations reçues : 445
Inscrit le : 20 juillet 2015
Version d'Excel : 2010 FR

Message par MFerrand » 9 décembre 2018, 15:25

Bonjour,

Formule en B2 utilisant B2 soit son propre résultat dans le calcul, c'est une référence circulaire...
Le temps écoulé par rapport à C2, autre problème, car A2 doit être inférieur à C2.
Avatar du membre
ric
Membre impliqué
Membre impliqué
Messages : 2'076
Appréciations reçues : 173
Inscrit le : 29 mai 2018
Version d'Excel : 365 fr

Message par ric » 9 décembre 2018, 15:39

Bonjour,
jpmalb a écrit :
9 décembre 2018, 15:18
merci de ton aide mais ça ne change rien..
Entre A1 et C1, il faut que l'année soit différente, car tu as demandé "y" (year) dans la formule.
Ici, ça fonctionne.

A+


ric
Un bon dépanneur : la touche F8 pour faire un Pas-à-Pas sur le code. :mrgreen:
j
jpmalb
Membre habitué
Membre habitué
Messages : 129
Appréciation reçue : 1
Inscrit le : 15 décembre 2017
Version d'Excel : 2002

Message par jpmalb » 9 décembre 2018, 17:57

ric, ...remarque exacte mais déjà prise en compte..

MFerrand, j'ai tenu compte de ta très juste remarque et j'ai modifié en conséquence en passant la formule dans C2, B2 reste vide et comme tu peux le voir, C2 indique Faux … le but recherché est, qu'à l'inscription d'une date en A2, que le délai par rapport à C1 s'inscrive dans B2 sans que l'opérateur n'ait rien d'autre à faire… ne serait-ce pas possible ?
Merci
si(ou).jpg
si(ou).jpg (47.13 Kio) Vu 214 fois
Avatar du membre
dhany
Passionné d'Excel
Passionné d'Excel
Messages : 6'714
Appréciations reçues : 651
Inscrit le : 3 octobre 2017
Version d'Excel : 2007 FR

Message par dhany » 9 décembre 2018, 19:16

Bonsoir jpmalb, le forum,

je te propose ce fichier Excel :
Exo jpmalb.xlsm
(14.12 Kio) Téléchargé 6 fois
en A2, saisis 14/02/2015 ➯ en B2 : 3 (3 ans)

Alt F11 pour voir le code VBA, puis revenir sur Excel

si besoin, tu peux demander une adaptation.
merci de me dire si ça te convient.

dhany
j
jpmalb
Membre habitué
Membre habitué
Messages : 129
Appréciation reçue : 1
Inscrit le : 15 décembre 2017
Version d'Excel : 2002

Message par jpmalb » 9 décembre 2018, 20:40

bsr Dhany
effectivement, c'est le résultat que j'attendais….le résultat s'inscrit en B2... et en C2 aussi… toutefois, il ne se réalise que sur une seule cellule, or, ce je recherche , c'est pouvoir réaliser cette fonction sur une colonne d'une centaine de cellules, ….et peut-être plus au cas où…. d'où l'idée de faire en sorte que chaque cellule de ma colonne C puisse contenir cette fonction sans avoir à passer par VBA...

En tout cas, merci de t'être penché sur mon problème, je conserve ton exemple à toutes fins utiles
Bonne soirée
Avatar du membre
dhany
Passionné d'Excel
Passionné d'Excel
Messages : 6'714
Appréciations reçues : 651
Inscrit le : 3 octobre 2017
Version d'Excel : 2007 FR

Message par dhany » 10 décembre 2018, 01:04

Bonjour jpmalb,
dans ton post d'hier à 17:57, tu a écrit :le but recherché est qu'à l'inscription d'une date en A2, que le délai par rapport à C1 s'inscrive dans B2 sans que l'opérateur n'ait rien d'autre à faire
mon 1er fichier était selon ta phrase ➯ saisie en A2 uniquement ; résultat en B2, donc en colonne B.

(j'avais laissé ta formule en C2 ; c'est pour ça que le résultat était à la fois en B2 et en C2)

nouvelle version :
Exo jpmalb.xlsm
(13.91 Kio) Téléchargé 4 fois
saisis une date en colonne A (sur n'importe quelle ligne) ➯ résultat 1 colonne à droite, donc en colonne B.

(j'ai supprimé ta formule en C2 ; résultats uniquement en colonne B)


dhany
Avatar du membre
dhany
Passionné d'Excel
Passionné d'Excel
Messages : 6'714
Appréciations reçues : 651
Inscrit le : 3 octobre 2017
Version d'Excel : 2007 FR

Message par dhany » 10 décembre 2018, 01:31

ajout : si tu veux les résultats en colonne C plutôt qu'en colonne B, remplace les 2  .Offset(, 1)  par  .Offset(, 2) ;  mais dans ce cas, il faudrait ajouter du code VBA pour ignorer une saisie en A1, car sinon, ça va écraser ta date en C1 (celle avec laquelle faut faire les comparaisons !).

dans ton prochain post, mets clairement l'emplacement voulu pour les résultats : en colonne B ou en colonne C ? à partir de quelle ligne (mais pas la 1) ? à partir de 2 ? autre ? y a-t-il une ligne maxi ? par exemple pas plus que la ligne 30000 ? actuellement, y'a pas de limite donc tu peux même saisir en A1048576 ; le résultat sera en B1048576.

dhany
Répondre Sujet précédentSujet suivant
  • Sujets similaires
    Réponses
    Vues
    Dernier message