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 ?
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)
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
Bon un petit coup de VBA va regler ça “rapidement”
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.
@+
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)
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)”
@+
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