Valeur d'une cellule en fonction de la valeur de deux autres

Bonjour,

Je cherche à faire la chose suivante, je ne sais pas si c'est possible :

-quand la valeur de la cellule D2 OU de la cellule E2 augmente de 1 ET QUE la valeur de K2 augmente de 3 ou plus, augmenter la valeur de Q2 de 1,

-quand la valeur de la cellule D2 OU de la cellule E2 augmentent de 1 MAIS QUE la valeur de L2 ne change pas, augmenter la valeur de R2 de 1.

Merci pour vos réponses.

Tezca.

Bonjour,

Toute la question est : comment sait-on qu'une valeur augmente, diminue ou reste stable ?

J'entre manuellement les valeurs de D2, E2, K2 et L2. Jusqu'à présent j'entrais aussi manuellement les valeurs de Q2 et R2 mais je voudrais que ce soit automatique si possible.

Les valeurs de D2 et E2 ne peuvent que rester stable ou augmenter, mais si elles augmentent ce ne peut être que de 1.

La valeur de K2 peut rester stable ou augmenter de n'importe quel nombre, mais si elle augmente de 3 ou plus, la valeur de Q2 augmente de 1 (mais uniquement si D2 ou E2 ont augmenté, sachant qu'elle ne peuvent augmenter en même temps, c'est l'une ou l'autre).

La valeur de L2 peut rester stable ou augmenter de n'importe quel nombre, mais si elle reste stable la valeur de R2 augmente de 1 (mais uniquement si D2 ou E2 on augmenté).

Si D2 ou E2 augmentent, K2 augmente forcément, L2 peut aussi augmenter mais ce n'est pas obligatoire.

En aucun cas les valeurs des cellules (D2, E2, K2, L2, Q2 et R2) ne peuvent diminuer.

J'espère avoir été un peu plus clair.

Tu vas comprendre le problème ! On peut en effet détecter si une cellule modifiée a vu sa valeur augmenter... mais tu fais varier tes cellules manuellement, donc une à la fois !

Ainsi D2 augmente ! L2 n'a pas bougé ! condition vérifiée, on augmente R2.

E2 augmente, même topo ! on augmentera R2.

L2 varie, c'est indifférent, on ne le regarde que si D2 ou E2 augmente, et quand l'un ou l'autre augmente, L2 ne bougera pas simultanément !

D2 augmente ! K2 ne bouge pas ! condition non vérifiée !

E2 augmente ! K2 ne bouge pas ! condition non vérifiée !

K2 augmente... ! D2 ne bouge pas ! E2 ne bouge pas ! condition non vérifiée !

Là la condition ne sera jamais vérifiée ! On n'augmentera jamais Q2.

Cordialement.

Merci de ta réponse. Je pense comprendre le problème. Malgré tout, pour contourner le problème, serait il possible de procéder comme suit :

Quand j'augmente D2 ou E2, augmenter Q2 et R2 de 1. (Ça je sais faire)

La où je bloque, c'est pour K2 et L2. En Q2, existe t'il une formule pouvant faire ceci : "Si K2 augmente de moins de 3, valeur diminue de 1" (pour annuler l'augmentation due au changement de valeur de D2 ou E2).

Pour R2 la formule serait "si L2 augmente de n'importe quelle valeur, valeur diminue de 1" (la aussi pour annuler l'augmentation due au changement de valeur de D2 ou E2).

En fait il faudrait pouvoir faire en sorte de mettre 2 formules dans Q2 et R2. C'est possible?

Merci.

1) Aucune formule ne remonte le temps !

2) Aucune formule ne cohabite avec une autre !

Toute formule calcule à partir de données disponibles simultanément.

Pour le type de calcul que j'ai évoqué, qui ne passe pas par formule, on récupère la valeur antérieure suite à changement, mais comme un changement n'affecte qu'une valeur, les conditions reposant sur plusieurs changements simultanés seront toujours vraies ou toujours fausses, vu qu'il ne se produit pas des changements simultanés, mais un seul à la fois !

Il faut donc remettre la méthode en chantier. Et définir des règles du jeu qui puissent fonctionner...

Je me doutais que ce n'était pas possible, je vais réfléchir à une autre solution.

Merci pour ton aide!

Est il possible de faire juste ceci : Quand la valeur d'une cellule (par exemple A1) augmente de 3 ou plus, la valeur de B1 augmente de 1?

Oui, mais ta question ne se limitait pas à ça...

Private Sub Worksheet_Change(ByVal Target As Range)
    Dim Vanc%, V%
    If Target.Address = "$A$1" Then
        V = Target
        Application.EnableEvents = False
        Application.ScreenUpdating = False
        Application.Undo
        Vanc = Me.Range("A1")
        If V - Vanc >= 3 Then Me.Range("B1") = Me.Range("B1") + 1
        Me.Range("A1") = V
        Application.EnableEvents = True
    End If
End Sub

Evènementielle dans le module de la feuille concernée.

Merci, mais mes connaissances en excel étant assez limitées, ou dois je inscrire ce code ? Et je ne comprends pas ce que signifie "Événementielle dans le module de la feuille concernée".

Accès rapide : clic droit sur l'onglet de la feuille > Visualiser le code

Cela te conduit dans l'éditeur VBA directement dans le module concerné. C'est là qu'il faut placer cette procédure.

Merci beaucoup ça marche! Exactement ce que je voulais! Juste une chose, comment puis je transposer ce code à plusieurs lignes? j'a essayé de modifier la plage de cellules dans l'éditeur vba mais ça ne marche pas...

Merci encore!

Rechercher des sujets similaires à "valeur fonction deux"