Excel 2000: modifier une valeur (de cellule) depuis une formule

Bijour, j’ai un petit truc qui me tracasse sous Excel 2000

j’ai une cellule à laquelle j’ai donné le nom de valeur NbJour et j’aimerai pouvoir modifier le contenu de cette cellule via une formule se trouvant dans une autre cellule (meme feuille)

en gros un truc style:

[cpp]= SI( test ; NBjour = Nbjour +1 ; 0)[/cpp]

Mais l’exemple ci-dessus ne fonctionne pas … vous pensez bien, sinon je ne poserai pas la question.

y’a t’il un moyen sans avoir à passer par le VBA ?

Marchi :stuck_out_tongue:

:stuck_out_tongue:
Il s’agit bien d’incrementer la même cellule ?
Si oui je crains que cela soit impossible .En effet on a affaire à une reference circulaire (à moins de lier le test
à Nbjour et je ne vois pas comment)
sinon sur une autre cellule j’ai testé:
B1=SI((A1)=“oui”;(A2+1);0)
:slight_smile:

Ce n’est pas une reference circulaire :non:

la formule se trouve dans une cellule et doit modifier le nombre referençant une autre cellule :wink:

en faisant:

on a le resultat dans B1 or j’aimerai que la formule modifie la valeur de A2. Comme quand on incremente une variable toute bete…

J’me dis que hors utilisation du VBA ça n’est pas possible :frowning:

Il faut revoir ton analyse. Excel ne peut pas fonctionner comme cela.
Si par exemple tu veux ajouter 1 à NBjour quand une condition est vraie il faudrait ajouter 1 à NBjour à chaque recalcule de la feuille puisque la condition sera toujours vraie (dans ton exemple il y aura encore ‘Oui’ dans la cellule A1). On peut vite comprendre que ta cellule NBjour ne sera jamais à jour. Pourquoi ne mets-tu pas une formule dans la cellule nommée NBjour ?

Ben si je mets une formule dnas NBjour elle sera longue et fixe

en faisant une formule dans un autre cellule je peux (enfin pourrai) faire autant d’iteration de la formule que je veux simplement en copiant la cellule comportant celle-ci.

euh c’est compliqué là :fou:

Admettons que j’ai un liste de jours patatia patata

moi j’aimerai que selon un test simple (par ex: “jour <> dimanche”) , Nbjour soit incrementé en fonction du nombre de resultat VRAI à ce test sur chaque cellule

De toute evidence j’en demande trop à ce pauvre eXcel :stuck_out_tongue:

Bon un petit coup de VBA va regler ça “rapidement” :stuck_out_tongue:

Salut,
Tu pourrais pas nous donner l’exemple réel de ce que tu veux faire.
Peut-être qu’une formule imbriquée ou matricielle pourrrait permettre un calcul car on peut très bien par formule calculer un nombre de dimanche (ou autre) entre 2 périodes ou sur plusieurs dates…, mais pour pouvoir te répondre avec précison il faudrait comprendre ton besoin exact.
Je n’ai pas compris si NBjour est le résultat d’une formule (et si oui laquelle) ou si c’est une valeur fixe.
@+

:stuck_out_tongue:
Voila ce que j’obtiens en faisant A2=(B1) dans ce que je te proposais


Tout a fait d’accord une petite macro et ce sera réglé
:slight_smile:

pierrejean -> la formule A2=(B1) tu la mets où :??:

13ber -> NbJour est un nombre (ou une cellule) que j’aimerai incrementer en fonction de ce que contient une serie de cellule.

j’vais essayer plus tard de faire un screenshot pour expliquer…mais là :miam:

Pour Nbjour, j’ai bien compris que tu souhaites l’incrémenter en fonction de tests sur d’autres cellules et c’est pour cela que si NBjour est déjà le résultat d’une formule il peut être envisagé d’imbriquer d’autres formules.
Bonne idée la copie d’écran
En attendant bon appétit

Brett
ce n’est pas une formule c’est =(B1) dans la cellule A2 avec =SI((A1)=“oui”;(A2+1);0) dans la cellule B1
On aboutit bien à la definition de la reference circulaire à savoir A= f(A)
dans mon cas
A2=SI((A1)=“oui”;(A2+1);0) qui est de la forme A= f(A)

13ber -> NbJour n’est pas resultat d’une formule. Enfin pas à la base.

Initialement il est = 0

Ensuite une fois le tableau rempli il doit etre incrementé d’autant d’iteration que de cellules remplissant une conditions, à savoir:

[cpp]
JOURSEM(cellule;2)<6
[/cpp]

Donc moi j’aimerai que si ce test est Vrai c’est que Nbjour (qui correspond à une cellule contenant la valeur 0 initialement) soit incrementé de 1.

Je viens d’essayer en faisant un sous-total mais je n’arrive pas à donner le resultat du sous-total à NBjour :??:

Dans la case A5 qui correspond à NbJour j’ai mis: =(B5)

Y dois y avoir un truc tout c#n que je n’arrive pas à voir :stuck_out_tongue:

:stuck_out_tongue:
En A5 mettre =SOMME(B1:B3)
A repeter eventuellement en B5
:slight_smile:

:stuck_out_tongue:
PS: Mes excuses pour m’être étendu sur la reference circulaire ce qui n’était pas très constructif !!
le :non: m’avait un peu chatouillé
:slight_smile:

ça ne foncitonne pas [:syl2002]

bon de toutes façon j’ai fait ce que je voulais faire assez simplement finalement (sans faire intervenir de nom, juste avec un sous-total) :stuck_out_tongue:

mais pour la peine je suis curieux de savoir s’il y a possible de faire une incrementation de cette façon sous Excel:??:

y’a pas d’mal … juste que comme j’applique un modele de pensée plus propre aux langage de programmation (VB, C++ & cie) pour moi ce n’etait pas une reference circulaire.

A = A + 1 n’est pas une reference circulaire en programmation, du fait du caractere sequentiel du traitement.

Avec une pseudo marticielle, ça devrait le faire.
Ex: Tes jours à tester pour savoir si <> samedi et dimanche de A1 à A7.
Ta formule pour obtenir NbeJour en B1 = “=SOMMEPROD((JOURSEM(A1:A7;2)<6)*1)”
@+

Yes !!!

:clap:

ça fonctionne … comme ça je peux faire ce que je veux avec juste une formule au lieu d’utiliser une colonne de calcul + somme intermediaire

:super:

Merci

Attention pour mettre SOMME(B1:B3) en A5 il faut utiliser la souris (commencer a cliquer sur = etc
C’est très surprenant !!
Ensuite on nomme la cellule Nbjour normalement
edit
grillé et bravo à 13 ber

Non bravo à Excel,
On peut faire des “miracles” avec les formules matricielles ou pseudo-matricielles.
@bientôt

je n’ai pas l’habitude d’utiliser ça :stuck_out_tongue:

mais eje tacherai d’y penser à l’avenir :oui:

on n’en apprend tous les jours :slight_smile: