X=x+1 !!!!

Résolu
kristen-joc Messages postés 5 Statut Membre -  
kristen-joc Messages postés 5 Statut Membre -
Bonjour a tous
Je suis nouveau sur commentcamarche
Et à voir les compétences de certaines personnes, je pense que je vais pouvoir résoudre un problème que j'ai mis de coté depuis " quelques années".
Il y a TRES TRES LONGTEMPS ( lol) je programmais pour le plaisir en basic (Amstrad 464 et 6128 pour ceux qui s'en souviennent) et il y avait une fonction (pas très mathématique) que j'employais souvent qui était sous la forme x=x+1 pour incrémenter une variable d'une certaine valeur et qui pouvait boucler indéfiniment.
Je n'ai jamais trouvé sur EXCEL la façon d' arriver au même résultat sur la valeur d'une cellule sans retrouver le message d'erreur : reférences circulaires non résolues.
( Exemple : championat de Foot > Nbre de points actuels = nbre de pts avant + nbre de pts du match joué ) sachant que la nouvelle valeur remplace définitivement l'ancienne et servira pour le calcul suivant
Est ce que ma question parait "sote grenue" , ou peut être que je dois ressortir mon vieux micro du grenier !
Merci d'avance,
A voir également:

12 réponses

ilan27 Messages postés 395 Statut Membre 36
 
Bonjour Kristen-joc, si j'ai bien compris ton problème (dis moi sinon), je te propose cette réponse:
Supposons que la case "nb de pts actuels" est la case A1, celle du "nb de pts avant" est la B1 et celle "du match joué" la C1.
Il suffit alors d'insérer dans la case A1 la fonction (l'ecrire comme si tu ecrivais n'importe quoi d'autre): =B1+C1
C'est tout. La case A1 va alors être reliée à B1 et C1 sans que tu t'en rendes compte. C'est bon?
0
eriiic Messages postés 25847 Date d'inscription   Statut Contributeur Dernière intervention   7 282
 
Bonjour,

Pour compléter la réponse de ilan27 il faut savoir que excel (comme tous les tableur) supporte dans une cellule soit une valeur fixe, soit une formule.
Et chaque changement sur la feuille est calculé immédiatement

si tu lui dis A1 = A2+ A1 il ne peut résoudre. Ce qui est logique car si tu mets A2=1, A1 monterai (et ça va très vite) à la valeur maxi qu'il est capable d'afficher et il fait bien de te prévenir car tu avoueras que ça serait d'un interet pas evident.
Les references circulaires peuvent impliquer plusieurs cellules en cascade.
Dans certains cas tu peux autoriser les references circulaires (par exemple si le résultat devient de plus en plus précis selon le nombre de boucles) et dans ce cas tu lui indiques dans les options le nombre d'itération maxi. Mais c'est extremement rare d'en avoir besoin.

Sur ce type de pb tu n'as pas le choix que d'inscrire chaque résultat sur sa ligne et d'afficher la somme dans une cellule.
Ou sinon de copier et faire un "collage special" valeur, mais tu perd ta formule et dans ton cas aucun interet aussi.

Par contre en vba (qui est un basic tel que tu utilisais avant (enfin avec bcp d'évolutions quand même hein !!! ;-) ) tu peux incrémenter une variable x=x+1. Là c'est toi qui maitrise et qui incrémente quand tu en as besoin, et pourquoi pas ensuite coller le résultat dans une cellule.

eric
0
Vaucluse Messages postés 27336 Date d'inscription   Statut Contributeur Dernière intervention   6 450
 
Allez, Eriiic, je vous fait une blague.
On y arrive avec deux cellules seulement si les nombres concernés en entrée ne dépassent pas deux chiffres. Essayez,c'est amusant et instructif.
Soit inscrire en A1
Le nombre intial _ Le nombre a ajouter(bien séparer par underscore)
Dans la cellule A2 inscrire = DROITE(A1;2)+GAUCHE (A1;2)et vous obtiendrez le résultat recherché.
Ceci ne marche pas avec plus de deux chiffres de chaque coté, et je n'ai pas 'explication
Bien cordialement
0
kristen-joc Messages postés 5 Statut Membre
 
Bonjour
Merci d'avoir pris un peu de temps pour me répondre. Ton raisonnement est bon pour un match. c'est la formule classique
Pour moi le problème commence quand je veux rajouter le résultat du 2ème , 3ème ... etc match.
(je garde toujours l'exemple du tableau récapitulatif de résultat de foot parce que c'est parlant)

-> La valeur de la cellule "nb de pts actuel" devient alors "nb de pts avant" a laquelle tu rajoutes la nouvelle valeur du match joué et ainsi de suite.

EXEMPLE
1ère journée match gagné : 3 pts résultat 0 + 3 = 3 pts
2ème journée match nul : 1 pts résultat 3 + 1 = 4 pts
3ème journée match perdu : 0 pts résultat 4 + 0 = 4 pts
4ème journée match gagné : 3 pts résultat 4 + 3 = 7 pts >La valeur de la cellule augmente

En résumé , c'est un peu le principe d'un chronomètre mais c'est peut être pas faisable !!!!!!!!

PS : c pas la peine d'y perdre trop de temps, c pas vital !
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
ilan27 Messages postés 395 Statut Membre 36
 
Je vois ce que tu veux dire; en fait tu veux pouvoir garder le résultat de la case 'total actuel', et faire une cellule avec le nombre de points à ajouter à cette case, c ca? Pour l'instant je ne pense pas que ce soit possible, parce que comme l'a suggéré eriic, les modifications dans le cas de cases liées sont permanentes. Je te propose quelquechose du genre:

jour 1 jour2 jour3... etc...
0 0 0

Puis ta case "total" est la somme de toutes ces cases.
Quand tu modifie le jour 1, ça augmente etc...
puis ça te permet d'avoir une trace de tous les résultats.
0
kristen-joc Messages postés 5 Statut Membre
 
Bonsoir,

Excusez , j'avais pas vu les autres réponses

Eriiiic arrive à la même conclusion que moi : 1 résultat par ligne

(n'empêche que je le regrette mon 464 , y avait pas besoin de 16 millions de cellules pour faire un programme qui fonctionne !!!!!)

Merci . Cordialement
0
eriiic Messages postés 25847 Date d'inscription   Statut Contributeur Dernière intervention   7 282
 
Re vaucluse,

elle marche pas ta blague !!! ;-)
enfin ce n'est pas que le total ne s'inscrit pas mais il n'y a pas d'auto-référence.
en A2 tu fais référence à A1, mais en A1 pas de référence à A2 donc pas de référence circulaire.

et pour éclaircir le mystère tu peux le faire à 3 nombres
A1 A2
123_456 =GAUCHE(A4;3)+DROITE(A4;3)
En fait en A1 l'insertion d'un caractère fait que tu as affaire à une chaine, dont tu extrais la partie gauche et la partie droite, et comme tu fais une somme (+) excel tente (et réussi car aucun caractere parasite dans les 2 chaines erxtraites) de convertir les 2 chaines en nombre pour délivrer le résultat.
Bon, c'était pour le fun et on n'est pas totalement hors sujet puisque le theme de départ était les references circulaires ;-)
cdt eric
0
Vaucluse Messages postés 27336 Date d'inscription   Statut Contributeur Dernière intervention   6 450
 
Eriiic, c'était simplement histoire de dire (avec un sourire)que l'on a pas toujours besoin de trois cellules, mais de deux!Ceci ne change rien au problème de Kristen qui semble avoir du mal à se faire à Excel, mais qui trouvera surement une solution en VBA équivalente à son cher Asmstrad que j'ai aussi connu à la même époque.A rappeler à son attention que mon option réduirait à molins de 11 millions le nombre de cellules dont il semble avoir besoin plutot que 16, ça laisse de la marge!

Pour en revenir à la formule, il est effectivement interressant de constater qu'elle marche quelque soit le nombre de chiffre de chaque coté, si on prend la peine de rentrer autant de blanc que le nombre indiqué dans les items, mais comme vous le sous entendez, ça ne sert pas à grand chose, je suis d'accord

Bien cordialement
0
Raymond PENTIER Messages postés 71870 Date d'inscription   Statut Contributeur Dernière intervention   17 402
 
Bonjour, kristen-joc, et bienvenue dans CCM.

Tu fais fort d'entrée de jeu : à peine ta première question dans le Forum posée, tu déclenches une série de réponses de membres (et pas des moindres, puisque Vaucluse et eriiic par exemple sont de la partie) et 8 messages sont échangés en l'espace de 5 h 16 mn !

C'est vrai que de la façon dont ta question est posée, on peut supposer que tu débutes sur Excel ; d'où les explications détaillées de ilan27 et eriiic.

Moi, j'aurais tendance à croire que tu n'es pas si novice que ça ! Et c'est pourquoi je m'autorise à t'indiquer que tu as ta réponse dans l'énoncé même de ta question : x=x+1 était une procédure de programmation, alors qu'Excel propose des fonctions de calcul accessibles aux non-programmateurs.

Tu fais erreur lorsque, dans ton message (6), tu parles de "programme qui fonctionne" : une feuille de calcul Excel n'est absolument pas un programme ! Mais si tu veux t'affronter aux macros et à VisualBasic, tu vas t'amuser ...

Le mode de fonctionnement du logiciel ne lui permet en auncune façon d'opérer avec des références circulaires : tu es contraint d'utiliser plusieurs cellules pour tes calculs, quitte à les masquer si tu ne veux pas que certaines apparaissent à l'écran ou à l'impression.

Ceci dit, tu peux laisser ton antiquité au grenier, sauf pour initier tes enfants ou petits-enfants ...Et à la revoyure !
0
ilan27 Messages postés 395 Statut Membre 36
 
C'est bien ce que je disais, il fallait plusieurs cases; :)
Essaye d'en mettre une pour chaque "match joué" mais dans ton cas, et puis ça laissera une trace des incrémentations qui ont eu lieu.
0
eriiic Messages postés 25847 Date d'inscription   Statut Contributeur Dernière intervention   7 282
 
Mais pas de pb vaucluse, je ne l'ai pas mal pris, ne t'inquiete pas.
Mais c'est vrai que j'étais resté sur les auto-references et toi sur le nombre de cellules minimum...
Comme dit raymond, bienvenue à kristen-joc. Et qu'il prenne du plaisir sur excel, il n'est pas au bout de ses découvertes... :-)
0
kristen-joc Messages postés 5 Statut Membre
 
Merci à tous

Agréablement surpris par la convivialité qui existe sur ce site.

Et surement à une prochaine fois
0