Ceci est une page optimisée pour les mobiles. Cliquez sur ce texte pour afficher la vraie page.

XL 2016 Code VBA pour clef de répartition

Lili264

XLDnaute Nouveau
Bonjour,

Je ne sais pas si le sujet a déjà été créé, je m'en excuse d'avance.
je souhaite crée un code pour modifier des prix unitaires. je m'explique.

Je fais ce que j'appelle un débours qui va me donner un montant total à répartir en fonction de plusieurs lignes de prix (le nombre peut varier).
Chaque ligne de prix est associé à une quantité.
Actuellement je modifie le prix unitaire manuellement jusqu'à ce que mon montant de répartition soit égal au montant à répartir (montant de mon débours)
Ce que j'aimerai c'est de pouvoir mettre ce que j'appelle une clef de répartition et que mon prix unitaire s'ajuste en fonction de cette clef pour que mon total répartit soit = au montant à répartir.

J'ai essayé des conditions mais le problème c'est que la totalité des clefs de répartition doivent être prise en compte pour chaque ligne et je ne vois pas comment le coder.

je voulais faire = si(X=Y, (Clef de répartion); (X>Y, Clef augmente) (X<Y Clef diminue))

Je ne sais pas si c'est compréhensible et surtout possible de faire cela sur excel.

Merci pour vos réponses
 

Pièces jointes

  • essais.xlsx
    8.8 KB · Affichages: 7

Wayki

XLDnaute Impliqué
Bonjour,
Il nous manque des détails de "paramètre".
Il faut bien un prix de base sur lequel se baser avant ajustement.
Est ce que tous les prix doivent varier ?
Doivent-ils varier équitablement ?
Je pense que c'est faisable en VBA, je ne trouve pas de logique par formule.
A +
 

Lili264

XLDnaute Nouveau
Bonjour,

Merci pour ta réponse

En gros je mets un prix unitaire de base pour chaque prix (que j'estime, colonne clef de répartition) et j'ai un montant total à atteindre déjà calculé C4.
J'aimerai que ma colonne prix unitaire s'ajuste en fonction du prix estimé pour chaque ligne les prix varie tous.
il doit varier en gardant la proportion entre eux oui.
J'ai pensé à un code qui utilise une condition vrai et fausse et en cas de faux une incrémentation de 0 à X sachant que je pars des décimale mais je ne sais pas si c'est possible de faire varier en prenant en compte les totaux finaux et faire varier chaque ligne de prix.

Par exemple :
Fauchage je met 23 euros du m²
Mise en décharge 16 euros de la tonnes et grâce à un système d'incrémentation les prix unitaire augmente ou baisse afin que le montant des deux prix égal celui que je dois atteindre.

J'ai commencer à faire un code :

Private Sub Répartition()
'
'Répartition global
'
If C4 = C5 Then

Range("D9:G25").Copy Range("E9:E25")

(première partie c'est bon mais c'est plus la rédaction de la deuxième phase ElseIf et else, avec une copie et une incrémentation avec boucle)

ElseIf C4 < C5 Then
‘ copier la colonne D dans E avec E incrémenter de 0.1 jusqu’à obtenir C4 = C5
Do Until C4 = C5
[ Range ("E9 :E25") = Range("D9 25") + 0,1 ]
Loop

Else C4 > C5
Do Until C4 = C5
[ Range ("E9 :E25") = Range("D9 25") - 0,1 ]
Loop

End If

End Sub
 

Discussions similaires

Réponses
6
Affichages
575
Les cookies sont requis pour utiliser ce site. Vous devez les accepter pour continuer à utiliser le site. En savoir plus…