XL 2016 Modifier la valeur d'une cellule en fonction de la valeur d'autres cellules

Tezca

XLDnaute Nouveau
Bonjour,

Je souhaite faire une macro qui puisse modifier la valeur d'une cellule en fonction de la valeur d'autres cellules. Ce que je veux faire est un peu compliqué donc je vais essayer d'être le plus clair possible :

J'entre manuellement des valeurs dans les cellules D2 E2 K2 et L2, (d'abord D2 ou E2 puis K2 et/ou L2), et je voudrais qu'en fonction de ces valeurs celles en Q2 et R2 augmentent de 1 également, ou ne changent pas selon les cas.

Les valeurs de D2 et E2 augmentent de 1 en 1. Celles de K2 et L2 peuvent augmenter de n'importe quelle valeur.

Voici donc ce que je voudrais :

Quand la valeur de D2 ou de E2 augmente de 1, celles de Q2 et R2 augmentent également de 1. Si K2 augmente de moins de 3 (donc de 1 ou 2) Q2 diminue de 1, si K2 augmente de 3 ou plus Q2 ne change pas. Si L2 augmente de n'importe quelle valeur, R2 diminue de 1, si L2 n'augmente pas R2 ne change pas.

Si je saisis une autre cellule que D2 ou E2, puis ensuite K2 et/ou L2, Q2 et R2 ne changent pas.

Ici je ne parle que de la ligne 2 mais je voudrais que la macro s'applique aux lignes 2 à 21.

En espérant avoir été clair, merci à ceux qui pourront m'aider.
 

Tezca

XLDnaute Nouveau
Voila un fichier avec des cas de figure possibles (colonnes D à I et K et L) et les résultats attendus (colonnes Q et R). Le tableau du dessous est un exemple de suite possible de celui du dessus (Il existe une infinité d'autres possibilités car il s'agit de résultats sportifs, j'ai pris des exemples assez simple pour que ce soit plus facile à comprendre). Il faut lire ligne par ligne (la ligne 18 est la suite de la ligne 1, la ligne 19 la suite de la ligne 2, etc). Les cases vides correspondent à la valeur 0.
 

Pièces jointes

  • Exemple.xlsx
    18.7 KB · Affichages: 46

Tezca

XLDnaute Nouveau
J'ai parlé un peu vite, dans les lignes 1 à 10 il y a tous les cas de figure possibles "de base" :
Ligne 1 : D1 augmente de 1 (donc Q1 et R1 augmentent de 1), K1 augmente de 3 et L1 n'augmente pas → Q1 et R1 ne changent pas.
Ligne 2 : E2 augmente de 1 (donc Q2 et R2 aussi), K2 augmente de 3 et L2 n'augmente pas → Q2 et R2 ne changent pas.
Ligne 3 : D3 augmente de 1 (donc Q3 et R3 aussi), K3 augmente de 3 et L3 augmente de 1 → R3 diminue de 1 (et revient à zéro).
Ligne 4 : E4 augmente de 1 (donc Q4 et R4 aussi), K4 augmente de 3 et L4 augmente de 1 → R4 diminue de 1 (et revient à zéro).
Ligne 5 : D5 augmente de 1 (donc Q5 et R5 aussi), K5 augmente de 2 et L5 n'augmente pas → Q5 diminue de 1 (et revient à zéro).
Et ainsi de suite
 

piga25

XLDnaute Barbatruc
Bonjour,

Quels sont les cellules ou vous entrez les données manuellement,
est-ce de D à I et de K et L ou seulement de D à I

Autrement y a t'il une règle qui permet de comprendre le fonctionnement d'un tableau?
 
Dernière édition:

Tezca

XLDnaute Nouveau
J'entre manuellement D a I et K et L.

La règle est justement la macro que je souhaite faire, la voici :

Quand la valeur de D2 ou de E2 augmente de 1, celles de Q2 et R2 augmentent également de 1. Si K2 augmente de moins de 3 (donc de 1 ou 2) Q2 diminue de 1, si K2 augmente de 3 ou plus Q2 ne change pas. Si L2 augmente de n'importe quelle valeur, R2 diminue de 1, si L2 n'augmente pas R2 ne change pas.

Si je saisis une autre cellule que D2 ou E2, puis ensuite K2 et/ou L2, Q2 et R2 ne changent pas.
 

piga25

XLDnaute Barbatruc
Bonjour,

Cette solution là semble mieux correspondre
Les colonnes AD à AI sont masquées.
En décomposant les formules dans ces colonnes la compréhension n'est que meilleurs
 

Pièces jointes

  • Exemple (24).xlsx
    23.6 KB · Affichages: 39

Tezca

XLDnaute Nouveau
Bonjour,

En effet la 2e solution est mieux. C'est presque parfait, mais il y a quelques petites choses qui ne vont pas...
Quand j'augmente D2 ou E2 de 1, Q1 et R1 n'augmentent pas, or elles devraient aussi augmenter de 1.
Quand je mets toutes les cellules à 0, il y a des 1 dans la colonne R, normalement elle devrait aussi être à 0.
Quand par exemple je mets un 1 en D1 puis un 3 en K1, il y a bien un 1 en R1 et en Q1. Jusque la c'est bon. Mais quand je mets un 1 en E1 puis que je raugmente K1 de 3 (ce qui fait donc 6), il y a un 2 en Q1 (ce qui est juste) et il devrait y avoir aussi un 2 en R1, mais elle reste à 1.

A part ça, tout est ok. En réalité il n'y a que la colonne R qui pose problème. Vos formules n'obéissent pas parfaitement à la règle mais si ça peut aboutir au résultat que je veux ça me va. Pour l'instant ce n'est pas tout à fait le cas. Si vous n'arrivez pas à obtenir ce que je veux, ne vous en faites pas je me dérouillerai.

Merci beaucoup! :) :)
 

Tezca

XLDnaute Nouveau
Oui c'est bien ça! De D2 à H21 (dans mon vrai tableau pas dans l'exemple), les cellules augmentent de 1 en 1. Au début elles sont toutes à 0, puis 1 puis 2 puis 3 etc. Je n'ai qu'un seul tableau, je ne fais pas de nouveau tableau à chaque augmentation.
Dans mon exemple j'avais fait deux tableaux pour que vous puissiez voir l'évolution, mais je fais tout dans un seul tableau.
 

piga25

XLDnaute Barbatruc
Bonjour,

Voir si les modifs sont bonnes
Les colonnes AD à AI et les lignes 1 à 16 sont masquées.
Pour les colonnes masquées, c'est pour une facilité de rédactions des formules
Pour les lignes masquées, c'est pour garder en mémoire le tableau avant modification.
Le bouton "Nouvelle saisie" permet de copier le tableau avant modification de celui-ci dans le tableau masqué.
Suis-je assez clair.
 

Pièces jointes

  • Exemple (24) (1).xlsm
    28.2 KB · Affichages: 39

Tezca

XLDnaute Nouveau
Bonjour,

On y est presque mais ce n'est pas encore tout à fait ça... Par exemple, quand je mets un 1 en D18 puis un 2 en K18 et un 1 en L18, Q18 et R18 sont à zéro. Jusque la c'est bon. Ensuite si je mets un 1 en E18 et que j'augmente K18 de 3 (ce qui fait 5) et que je ne touche pas à L18, il y a un 2 en Q18 et 0 en R18, alors que ça devrait être 1 et 1.

Autre exemple, quand je mets un 1 en D18, puis 3 en K18 et rien en L18, Q18 et R18 sont à 1. Ca c'est bon. Mais si je renouvelle l'opération (1 en E18, encore 3 en K18 (donc 6) et rien en L18), Q18 est à 2 et R18 à 1 alors que ça devrait être 2 également.

J'avoue ne pas très bien avoir compris l'utilité des lignes masquées et du bouton nouvelle saisie (pour les colonnes c'est ok).

Je sais que ce que je demande est assez compliqué, si ça vous parait trop difficile à faire je me débrouillerai ne vous en faites pas.

Merci beaucoup.
 

piga25

XLDnaute Barbatruc
Bonjour,

Bonjour,

On y est presque mais ce n'est pas encore tout à fait ça... Par exemple, quand je mets un 1 en D18 puis un 2 en K18 et un 1 en L18, Q18 et R18 sont à zéro. Jusque la c'est bon. Ensuite si je mets un 1 en E18 et que j'augmente K18 de 3 (ce qui fait 5) et que je ne touche pas à L18, il y a un 2 en Q18 et 0 en R18, alors que ça devrait être 1 et 1.

Il faut bien comprendre que le tableur EXCEL n'est pas votre cerveau.

Vous dite : quand je mets un 1 en D18 puis un 2 en K18 et un 1 en L18, Q18 et R18 sont à zéro. Jusque la c'est bon , Normal vous lui demander juste de répondre à un test avec des données uniques.

Puis : Ensuite
Et c'est là qu'il faut dire à EXCEL que vous voulez ajouter des valeurs et cela par rapport aux valeurs déjà existantes. D'ou l'utilité des lignes masquées et du bouton "NOUVELLE SAISIE"
Si vous ne dite pas a EXCEL enregistrer les anciennes valeurs comment voulez vous qu'il puisse savoir que vous avez ajouter des 1, des 3 ou d'autres valeurs. Il lui faut bien un point de comparaison.

Donc après avoir cliqué sur le bouton "NOUVELLE SAISIE" et seulement après cela vous pourrez modifier :
un 1 en E18 et que j'augmente K18 de 3 (ce qui fait 5) et que je ne touche pas à L18,

Oh miracle on a bien : 1 et 1.

Il faut faut absolument rester cartésien et ne jamais oublier d'étape.

Autre petite précision, il n'est pas possible de revenir en arrière, donc vraiment faire attention lorsque l'on veut cliquer sur le bouton.
 

Discussions similaires

Réponses
9
Affichages
438
Réponses
7
Affichages
495

Statistiques des forums

Discussions
314 653
Messages
2 111 584
Membres
111 208
dernier inscrit
estalavista