Macro ou script vba pour traiter un tableau

ingel

XLDnaute Nouveau
Bonsoir;
Je veux automatiser le traitement d'un fichier Excel en mettant en place une macro ou un script VBA qui me permet d'alimenter des onglets (pays) à partir d'un onglet (rapport) qui contient l'ensemble des pays.
Je m'explique :
Ma feuille rapport contient les colonnes suivantes :
Pays; Code; Population
Ma feuille Pays contient les colonnes suivantes
Code; Somme
Ce que je dois faire est; à partir de l'onglet (rapport) je dois alimenter l'onglet de chaque pays en faisant la somme de la population pour chaque code (voir ma PJ)
J’ai réussis à le faire pour un seul onglet en enregistrant une macro, mais je n’ai pas pu le faire pour tout les onglets et surtout que le nombre de cellule varie d'un pays a un autre.
Je vous serai très reconnaissant si vous pourrai m'aider.
Merci.

EDIT : le fichier initial contient beaucoup plus de pays que le fichier joint, c'est juste pour illustrer mon besoin.
 

Pièces jointes

  • TEST.xlsx
    15.6 KB · Affichages: 55
  • TEST.xlsx
    15.6 KB · Affichages: 58
  • TEST.xlsx
    15.6 KB · Affichages: 63

Annette

XLDnaute Occasionnel
Re : Macro ou script vba pour traiter un tableau

Bonsoir Ingel, bonsoir le forum,

Par macro, je ne vois pas trop, en revanche avec une SOMMEPROD ...:cool:

Cordialement
 

Pièces jointes

  • TEST1.xlsm
    16.2 KB · Affichages: 47
  • TEST1.xlsm
    16.2 KB · Affichages: 48
  • TEST1.xlsm
    16.2 KB · Affichages: 47

ingel

XLDnaute Nouveau
Re : Macro ou script vba pour traiter un tableau

Bonsoir Ingel, bonsoir le forum,

Par macro, je ne vois pas trop, en revanche avec une SOMMEPROD ...:cool:

Cordialement
Bonsoir annette,
c'est pas tout a fait ce que je recherche puisque sommeprod fait le produit de deux colonnes differentes et d'en faire la somme.
Ce que je veut faire c'est le somme de population pour chaque code et pour chaque pays.

j'ai mis un exemple dans l'onglet france pour bien comprendre le principe.
au fait c'est une sorte de TCD mais reparti sur plusieurs onglets( pays)
 

FROLLINDE

XLDnaute Occasionnel
Re : Macro ou script vba pour traiter un tableau

Bonsoir,

Je ne pense pas qu'il soit nécessaire d'utiliser une macro, mais plutot un tableau croisé dynamique. Voir onglet TCD

Puis ramener dans chaque Onglet de Pays les valeurs du TCD avec une rechercheH.

Voir fichier Test
 

Pièces jointes

  • TEST.xlsx
    22.8 KB · Affichages: 47
  • TEST.xlsx
    22.8 KB · Affichages: 52
  • TEST.xlsx
    22.8 KB · Affichages: 50

ingel

XLDnaute Nouveau
Re : Macro ou script vba pour traiter un tableau

Bonsoir frollinde,
J'ai pensé a cela aussi, sauf qu'il faut que les code soient aligné de la meme maniere que dans le TCD, dans le cas contraire les données seront faussées dans les onglets pays
 

ingel

XLDnaute Nouveau
Re : Macro ou script vba pour traiter un tableau

Sauf erreur de ma part le résultat par SOMMEPROD du fichier TEST1 correspond en tous points à votre exemple onglet France du fichier TEST...

Cordialement
cela me semble juste effectivement, je me suis pas rendu compte, espérons que cela pourra m'aider
je vous remercie pour votre aide.
vais tester la solution sur le fichier réel et vous dirai si sa marche ou pas
 

ingel

XLDnaute Nouveau
Re : Macro ou script vba pour traiter un tableau

Je crois qu'une solution par macro s'impose à moins qu'un membre du forum ait autre chose à proposer par formule ... pour ma part je passe la main.

Cordialement

j'ai pensé a cela aussi, mais je vous avoue que je ne sais plus comment m y prendre surtout que je veut automatiser le traitement.
puis le vrai fichier contient a peut prés 60 pays
 

mapomme

XLDnaute Barbatruc
Supporter XLD
Re : Macro ou script vba pour traiter un tableau

Bonsoir ingel, le forum,

Un essai en VBA dans le fichier joint. Le code est dans module1.

  • si la feuille correspondant à un pays n'existe pas, alors la feuille de ce pays est créée
  • si la feuille correspondant à un pays existe déjà, alors la feuille de ce pays est mise à jour

Les feuilles des pays sont créées ou mises à jour :
  • à l'ouverture du classeur (code dans le module de ThisWorkbook)
  • à chaque modification du tableau de la feuille "rapport" (code dans le module de Feuil1)
  • quand on clique sur le bouton "GO"
Le code principal est dans Module1.

nota: la macro ajoute une feuille pour un nouveau pays ajouté dans le tableau, mais ne supprime pas la feuille d'un pays qui aurait disparu du tableau de la feuille "rapport" (on ne peut pas savoir si une feuille existante avec un nom quelconque fait partie ou pas d'une liste de pays qui n'existent pas dans le tableau !)

Edit : v1a avec test #60 000 lignes
 

Pièces jointes

  • ingel-Test -v1.xlsm
    28.8 KB · Affichages: 59
  • ingel-Test -v1a.xlsm
    30.6 KB · Affichages: 67
Dernière édition:

ingel

XLDnaute Nouveau
Re : Macro ou script vba pour traiter un tableau

Bonsoir ingel, le forum,

Un essai en VBA dans le fichier joint. Le code est dans module1.

  • si la feuille correspondant à un pays n'existe pas, alors la feuille de ce pays est créée
  • si la feuille correspondant à un pays existe déjà, alors la feuille de ce pays est mise à jour

Les feuilles des pays sont créées ou mises à jour :
  • à l'ouverture du classeur (code dans le module de ThisWorkbook)
  • à chaque modification du tableau de la feuille "rapport" (code dans le module de Feuil1)
  • quand on clique sur le bouton "GO"
Le code principal est dans Module1.

nota: la macro ajoute une feuille pour un nouveau pays ajouté dans le tableau, mais ne supprime pas la feuille d'un pays qui aurait disparu du tableau de la feuille "rapport" (on ne peut pas savoir si une feuille existante avec un nom quelconque fait partie ou pas d'une liste de pays qui n'existent pas dans le tableau !)

Edit : v1a avec test #60 000 lignes

Bonsoir,

c'est exactement ce que je cherche, merci beaucoup mapomme !
cependant j'ai une question, admettons que les codes sont deja figé dans les onglets "pays" ya que la somme de la population qui se met a jour, comment faire ?

Merciiiiiiiiiiiiiiiiii
 

mapomme

XLDnaute Barbatruc
Supporter XLD
Re : Macro ou script vba pour traiter un tableau

Bonsoir ingel,

(...) cependant j'ai une question, admettons que les codes sont deja figé dans les onglets "pays" ya que la somme de la population qui se met a jour, comment faire ? (...)

Quelques questions :

  • Si un pays n'existe pas, le crée-t-on ?
  • si oui, d'après quel modèle (notamment pour la liste des codes figés) ?
  • si un code n'existe pas pour un pays, doit on l'ajouter à la liste des codes du pays ?
  • si un code n'existe plus pour un pays, doit on supprimer ce code dans la feuille du pays ou le mettre à zéro ou autre chose ?
 

Discussions similaires

Statistiques des forums

Discussions
312 304
Messages
2 087 062
Membres
103 449
dernier inscrit
pulco41