Répartition des dépenses avec Excel et le VBA

Dernière mise à jour le 22/05/2024
Temps de lecture : 5 minutes

Comment faire la répartition des dépenses (qui doit de l'argent à qui) ? Le problème n'est pas si simple à résoudre mais le programme VBA suivant va vous permettre de solutionner ce problème.

Présentation du problème

Le tableau suivant présente les dépenses engagées par les membres d'une association pour l'organisation d'un voyage. Les frais étaient l'essence, le péage, le parking, ... tous les frais qu'il est difficile de diviser. Maintenant, comment faire le calcul de répartition des dépenses après coup ?

Donnees de base a repartir

Insérer les données dans un Tableau

Pour simplifier le code VBA, il est indispensable d'insérer les données dans un Tableau (Insertion > Tableau)

Menu insertion Tableau

Et instantanément vos données sont dans un Tableau coloré. La couleur sert à identifier la limite de vos données (mais la couleur peut être changée).

Insertion des donnees dans un Tableau

Changer le nom du Tableau

L'avantage de travailler avec un Tableau dans un programme VBA, c'est que l'on peu faire référence à son nom très facilement. Ainsi, peu importe sa position (ligne et colonne) dans le classeur, le programme VBA saura toujours trouver les données ?

Dans le programme, nous avons donné le nom tbl_Depense à notre Tableau (Création de Tableau > Nom du Tableau)

Inserer les donnees dans un Tableau et choisir son nom

Comme nous allons le voir dans le code VBA, le fait d'attribuer un nom précis au tableau et aux colonnes, va permettre de "lire" les données plus facilement.

IMPORTANT de conserver le nom du Tableau et aussi DES COLONNES comme le montre le bout de code suivant

'Récupérer les données dans le Tableau (avec le nom des colonnes)
    TbloNoms = Range("tbl_Depense[Nom]")
    TbloPaye = Range("tbl_Depense[Somme payée]")

Code complet

Principe de la logique du code

Tout le principe du calcul est basé sur la moyenne globale.

A partir de la moyenne, il est facile de savoir ceux qui doivent de l'argent (inférieur à la moyenne) et ceux qui doivent recevoir de l'argent (supérieur à la moyenne). A la fin de l'exécution de la macro VBA, nous avons le résultat final suivant

Repartition des depenses apres le traitement VBA

Comment débugger un programme VBA

Si vous avez des difficultés à trouver l'origine de vos erreurs en VBA, ce guide va vous expliquer comment utiliser le débuger.

Contrôle du résultat

Pour savoir qui doit combien, il est très facile de créer une fonction SOMME.SI.ENS pour les personnes qui doivent de l'argent à plusieurs personnes.

Total des sommes a verser pour un individu

Articles liés

Laisser un commentaire

Votre adresse e-mail ne sera pas publiée. Les champs obligatoires sont indiqués avec *

Ce site utilise Akismet pour réduire les indésirables. En savoir plus sur comment les données de vos commentaires sont utilisées.

Microsoft MVP 2024

Newsletter

1 fois par mois :
Astuces et quiz

    Nous ne vous enverrons pas de spam. Vous pouvez vous désabonner à tout moment.

    Répartition des dépenses avec Excel et le VBA

    Reading time: 5 minutes
    Dernière mise à jour le 22/05/2024

    Comment faire la répartition des dépenses (qui doit de l'argent à qui) ? Le problème n'est pas si simple à résoudre mais le programme VBA suivant va vous permettre de solutionner ce problème.

    Présentation du problème

    Le tableau suivant présente les dépenses engagées par les membres d'une association pour l'organisation d'un voyage. Les frais étaient l'essence, le péage, le parking, ... tous les frais qu'il est difficile de diviser. Maintenant, comment faire le calcul de répartition des dépenses après coup ?

    Donnees de base a repartir

    Insérer les données dans un Tableau

    Pour simplifier le code VBA, il est indispensable d'insérer les données dans un Tableau (Insertion > Tableau)

    Menu insertion Tableau

    Et instantanément vos données sont dans un Tableau coloré. La couleur sert à identifier la limite de vos données (mais la couleur peut être changée).

    Insertion des donnees dans un Tableau

    Changer le nom du Tableau

    L'avantage de travailler avec un Tableau dans un programme VBA, c'est que l'on peu faire référence à son nom très facilement. Ainsi, peu importe sa position (ligne et colonne) dans le classeur, le programme VBA saura toujours trouver les données ?

    Dans le programme, nous avons donné le nom tbl_Depense à notre Tableau (Création de Tableau > Nom du Tableau)

    Inserer les donnees dans un Tableau et choisir son nom

    Comme nous allons le voir dans le code VBA, le fait d'attribuer un nom précis au tableau et aux colonnes, va permettre de "lire" les données plus facilement.

    IMPORTANT de conserver le nom du Tableau et aussi DES COLONNES comme le montre le bout de code suivant

    'Récupérer les données dans le Tableau (avec le nom des colonnes)
        TbloNoms = Range("tbl_Depense[Nom]")
        TbloPaye = Range("tbl_Depense[Somme payée]")

    Code complet

    Principe de la logique du code

    Tout le principe du calcul est basé sur la moyenne globale.

    A partir de la moyenne, il est facile de savoir ceux qui doivent de l'argent (inférieur à la moyenne) et ceux qui doivent recevoir de l'argent (supérieur à la moyenne). A la fin de l'exécution de la macro VBA, nous avons le résultat final suivant

    Repartition des depenses apres le traitement VBA

    Comment débugger un programme VBA

    Si vous avez des difficultés à trouver l'origine de vos erreurs en VBA, ce guide va vous expliquer comment utiliser le débuger.

    Contrôle du résultat

    Pour savoir qui doit combien, il est très facile de créer une fonction SOMME.SI.ENS pour les personnes qui doivent de l'argent à plusieurs personnes.

    Total des sommes a verser pour un individu

    Articles liés

    Newsletter

    1 fois par mois :
    Astuces et quiz

      Nous ne vous enverrons pas de spam. Vous pouvez vous désabonner à tout moment.

      Laisser un commentaire

      Votre adresse e-mail ne sera pas publiée. Les champs obligatoires sont indiqués avec *

      Ce site utilise Akismet pour réduire les indésirables. En savoir plus sur comment les données de vos commentaires sont utilisées.