Bonjour à tous,
Utilisant assez rarement VBA et étant quelque peu bloqué, je me permets de faire appel à votre aide !
Mon problème est le suivant :
Admettons que j'ai une base de données avec 4 colonnes :
- En colonne A, j'ai des noms
- En colonne B, j'ai des dates, qui correspondent à la date à laquelle j'ai entré la donnée dans la base
- En colonne C, j'ai également des dates, mais qui correspondent à une date d'échéance
- En colonne D, j'ai des montants de bonus
Sur une autre feuille, j'ai une macro qui m'affiche les données pour la personne que j'aurai choisi. Pour cette personne, à une certaine date, j'ai un montant de bonus à lui retirer. J'aimerai donc qu'une macro puisse aller retirer les différents montants nécessaires (jusqu'à ce que le montant à retirer soit égale à 0) en partant des dates d'échéances les plus proches. S'il y a plusieurs fois la même date d'échéance, la macro ira retirer d'abord sur celle dont la date d'entrée est la plus ancienne.
Vous trouverez en pièce jointe un exemple. Dans la partie gauche, les données que j'ai récupéré pour la personne AAA et les différents montants qu'il a pu accumuler. Dans la cellule bleu le montant total à retirer et dans la partie droite, en jaune, ce que j'aimerai que la macro fasse.
J'avais pensé à faire une macro (avec un tant que, un pour et un si) qui va comparer les différentes dates à la date d'aujourd'hui due chaque ligne pour trouver l'échéance la plus proche pour faire une première soustraction et ainsi de suite. Sauf que la macro telle que je l'imagine prendrait à chaque fois l'ensemble des données récupérées et risque donc de ne retirer que de considérer à chaque fois la même échéance. Par exemple dans le fichier exemple que j'ai joint, l'échéance la plus proche est la ligne 5 avec date d'entrée 16/03/2016 et échéance au 31/03/2017 et j'aurai donc 15 lignes de générer... (14 lignes avec -30 et une ligne avec -20).
Est-ce qu'il existerait un moyen avec VBA de ne plus considérer une ligne de données si la ligne a déjà été utilisée ?
Je ne sais pas trop si mes explications sont claires, je reste donc disponible pour essayer d'apporter certains points d'éclaircissements si nécessaires !
Merci et bonne journée à tous !![]()
Partager