Pondération multiple de cellules

Dans le cadre de la réalisation d'un bon de commande automatisé, je suis à la recherche de la meilleure solution VBA pour réaliser l'opération suivante :

Soit une série de 10 cellules non consécutive (ex : M2, M4, M7, M8...) dont le contenu est rempli en fonction d'une liste déroulante.

Le total de ces cellules est masqué, et donne lieu à une valeur fixe appelé ici TOTAL (valeur de contrôle)

Je souhaite que l'utilisateur puisse changer l'une des valeurs M2, M4... mais que la valeur en cellule TOTAL reste la même.

Vers quelle fonction ou méthode me tourner pour que, dès la modification de l'une des valeur à la hausse ou à la baisse, la différence pour retomber sur ma valeur TOTAL soit ventilé de façon homogène sur les autres valeur.

EX : M2 + M4 + M7 + M8 = 100

25 + 25 + 25 + 25 = 100

modification de M2 de 25 à 40

EX : M2 + M4 + M7 + M8 = 100

40 + 20 + 20 + 20 = 100

Merci par avance pour vos exemples de codes ou pistes de travail.

Bonjour Soupull,

Une solution avec le code suivant :

Dim flag As Boolean

Private Sub Worksheet_Change(ByVal Target As Range)
    If Not Application.Intersect(Target, [M2,M4,M7,M8]) Is Nothing And Target.Count = 1 And flag = False Then
        For Each cel In [M2,M4,M7,M8]
            If cel.Row <> Target.Row Then
                flag = True: cel.Value = (100 - Target.Value) / 3
            End If
        Next cel
        flag = False
    End If
End Sub
29soupull.zip (8.80 Ko)

Merci vba-new.

Cela ne produit pas tout à fait le résultat escompté, mais je vais décortiqué ce code pour en comprendre le mécanisme et tenter de l'adapter à mon résultat souhaité.

Je reviendrais avec un classeur d'exemple si je ne m'en sort pas.

Merci.

Coucou

Petite idée de départ, mais données bien maigres pour pouvoir répondre du premier coup à tes attentes

Ici petit fichier gérant dix données (0 à 200 par tranche de 10), total au choix (multiple de 10 évidemment)

44idee.zip (11.13 Ko)

A plus

Rechercher des sujets similaires à "ponderation multiple"