Appliquer deux actions si vrai

Bonjour et meilleurs voeux à toutes et tous,
Mon problème me semble simple et pourtant je ne trouve pas de réponse :
Dans calc, comment écrire la fonction SI() pour que 2 actions soient appliquées si une condition est vraie.

Exemple SI la valeur d'une cellule-1 (C435) est supérieure à la valeur d'une cellule-2 (J435) comment faire pour qu'une cellule-3 ET la cellule-2 prennent la valeur de la cellule-1 ? Comment et où écrire la fonction SI() ?

Merci pour vos réponses.

Je ne suis pas sûre de bien comprendre, mais il y a un truc qui cloche dans l'énoncé :

1/ si la Cellule 1 > Cellule 2 alors Cellule 3 = Cellule 1, c'est logique
2/ si la Cellule 1 > Cellule 2 alors Cellule 3 = Cellule 1 ET Cellule 2 = Cellule 1, ça pose un problème de référence en boucle qui ne peut pas se calculer, en tous cas ça ne me paraît pas du tout logique.

En fait il faudrait une cellule intermédiaire, genre Cellule 2bis qui sert de base de calcul, la Cellule 2 servant à afficher la valeur (ou l'inverse, peu importe).

Bonjour,
Il y a en effet un problème logique dans votre demande. En effet dans l'expression "si A>B alors C=A et B=A" vous ne pouvez pas faire l'affectation B=A car le test A>B devient faux. Le serpent se mord la queue !
Bon courage.

ML

-----Message d'origine-----

Bonjour,

Je ne pense pas que cela soit possible.
A priori, le SI d'un tableur est comme un opérateur ternaire de C ou de Python, pas comme une structure IF THEN ELSE : on ne peut avoir qu'une instruction pour chaque bloc
Disons que ça me semble contraire à la logique des formules mais pas contraire à la logique d'un langage de programmation.
... Donc, créer une fonction personnalisée par macro ??

Bon courage
Et meilleurs vœux à tous...

----- Mail original -----

Bonjour à toutes et bonne année de fructueux échanges sur nos listes

-----Message d'origine-----
De : cfourcroy@free.fr [mailto:cfourcroy@free.fr]
Envoyé : lundi 4 janvier 2016 13:08

Je ne pense pas que cela soit possible.
A priori, le SI d'un tableur est comme un opérateur ternaire de C ou de
Python, pas comme une structure IF THEN ELSE : on ne peut avoir qu'une
instruction pour chaque bloc
Disons que ça me semble contraire à la logique des formules mais pas
contraire à la logique d'un langage de programmation.
... Donc, créer une fonction personnalisée par macro ??

Et en plus du problème de circularité, il reste la question des données des
cellules -2 et -3. Sont-elles entrées manuellement ? Le résultat d'un calcul
?
Difficile de faire cohabiter une entrée manuelle et le résultat d'un test
dans une même cellule ...

Le problème n'est donc pas simple, soluble probablement avec macro à
condition de bien le définir.

Cordialement,
Michel

Un grand merci à Ysabeau et à toutes celles et ceux qui se sont penchés sur mon problème.
Grâce à vous j'ai trouvé une solution mais j'ai aussi appris à utiliser de nouvelles fonctions.
Si je peux à mon tour vous rendre service en anglais, à vous ou à vos proches, je le ferai bénévolement et avec grand plaisir.
Voyez :

http://www.jjhochart.net/APPRENDRE/Cours_St_Pol/Presentation_St_Pol.php

Jean-Jacques Hochart

Super !

Peut-on avoir une idée de la solution retenue ?

Toutes mes excuses de ne pas avoir pensé à vous présenter la solution retenue :

Je coche donc la colonne E chaque jour où je pratique une activité sportive,

Dans la colonne D (nbre total de jours avec activité sportive pour les 365 derniers jours) cellule D454 du 3 janvier 2016 la formule est =NBVAL(E89:E453)

Dans C454 figure le pourcentage de jours avec activité sportive =(D454/365)*100
Et dans F454 (le record) =SI(C454>MAX(F89:F453);C454;"")

Apparemment cela fonctionne bien... Mais je soumets tout cela à votre analyse d'experts.
Encore merci !

Jean-Jacques Hochart
Enseignant-chercheur retraité
Maître de conférences des Universités
06 74 70 60 47

Où que vous soyez, je vous propose bénévolement mon aide :
Formation personnalisée gratuite anglais tous niveaux
http://www.jjhochart.net/APPRENDRE/Cours_St_Pol/Presentation_St_Pol.php

Si ça fonctionne tant mieux :slight_smile:

Sinon une suggestion pour rendre la feuille plus facile à mettre à jour.

Dans la colonne D (nbre total de jours avec activité sportive pour les
365 derniers jours) cellule D454 du 3 janvier 2016 la formule est
=NBVAL(E89:E453)

Dans C454 figure le pourcentage de jours avec activité sportive
=(D454/365)*100
Et dans F454 (le record) =SI(C454>MAX(F89:F453);C454;"")

À la place de E89:E453, de F89:F453, de C454, bref à la place de toutes ces références, je créerais des plages nommées (Insertion/Nom) que j'utiliserais dans les formules.

1/ Ça permet de mettre à jour la plage sans modifier la formule (Insertion/Nom/Gérer) et donc moins de risque de tout bousiller ;

2/ de mieux savoir de quoi il s'agit (donner des noms clairs) ;

3/ une plus grande lisibilité de la formule ;

4/ les plages sont des références absolues c'est donc très pratique pour les calculs qui y font référence.

Et ce d'autant plus ce tableau est amené à bouger au fil de l'eau.