XL 2019 VBA consolidation de plusieurs tableaux

Lion54

XLDnaute Nouveau
Bonsoir à tous,

Je commence dans la programation VBA. J'aurais besoin de votre aide svp si qqun veut bien m aiser.
J'ai un fichier Excel avec plusieurs onglets qui contiennent chacun un tableau au format identique. J'aurais donc besoin de programmer de manière automatique via Macro les étapes suivants:
1) Copier le tableau qui se trouve dans tous les onglets verts et les coller dans l'onglet intitulé 'Reporting' l'un à la suite de l'autre, l'entete doit etre repris qu'une seule fois sur la première ligne de l'onglet 'reporting'. Le but étant de créer un seul tableau qui sera utilisé par la suite pour faire un tableau croisé dynamique.
2) Supprimer les onglets D à F de J à P
3) mettre en forme de manière esthétique

j'ai mis le fichier en PJ.

Pouvez svp m'aider

En vous remerciant
 

Pièces jointes

  • test.xlsx
    82 KB · Affichages: 8
Solution
Re ;),

Une v2 avec vos trois demandes.

Dans le code, il y a maintenant une constante qui contient les noms des feuilles à exclure de la consolidation.
  • c'est à vous de définir cette constante et de la maintenir à jour
  • les noms des onglets sont séparés par un point-virgule
  • vous pouvez y laisser trainer des noms de feuilles non présentes dans le classeur
  • le nom de cette constante est : OngletsExclus
Voici le début du code montrant la constante à adapter :
VB:
'onglets à exclure pour le tableau final
'les noms des onglets sont séparés par des "point-virgule" sans espace
'ne pas oublier les onglets "reporting", "quaterly report" et"Annual report"

Const OngletsExclus = "reporting;quaterly report;Annual...

mapomme

XLDnaute Barbatruc
Supporter XLD
Re,
De quels onglets parle-t'on ?
Ne s'agirait-il pas plutôt des colonnes ?
J'ai considéré qu'il s'agissait des colonnes...

  • le code est dans module1
  • Il est commenté (me demander des explications si les commentaires sont insuffisants)
  • il faut exécuter la procédure UnSeulTableau() au sein de module1
  • on peut directement lancer cette procédure à partir de n'importe quelle feuille en tapant la combinaison des trois touches Ctrl+Maj+u

Concernant l'esthétique, à vous de dire ce que vous souhaitez...
 

Pièces jointes

  • Lion54- Un seul tableau- v1.xlsm
    91.7 KB · Affichages: 18

Lion54

XLDnaute Nouveau
Bonsoir ma pomme,

Oups, désolé pour la petite erreur mais vous aviez compris. :)
Je vous remercie pour votre retour rapide. C'est exactement ce que je veux. C'est top! :)
Néanmoins, j'aurais souhaité ajouter des autres onglets qu'ils ne seront pas pris en compte dans la consolidation. Comme par exemple, un sommaire, une introduction, une procedure etc.
Comment peut on dire a la macro de sélectionner uniquement les onglet en vert?
Autres demandes svp, dans l'onglet reporting:
1. faire un filtre sur la colonne F intitulée 'quaterly Yes No', selectionner le critere 'quaterly', copier les données dans un nouvel onglet qu'on appelera 'quaterly report'
2. faire un autre filtre sur la meme colonne , selectionner le critere '0', copier les données dans un nouvel onglet qu'on appelera 'Annual report'.

En vous remerciant grandement.
 

mapomme

XLDnaute Barbatruc
Supporter XLD
Re ;),

Une v2 avec vos trois demandes.

Dans le code, il y a maintenant une constante qui contient les noms des feuilles à exclure de la consolidation.
  • c'est à vous de définir cette constante et de la maintenir à jour
  • les noms des onglets sont séparés par un point-virgule
  • vous pouvez y laisser trainer des noms de feuilles non présentes dans le classeur
  • le nom de cette constante est : OngletsExclus
Voici le début du code montrant la constante à adapter :
VB:
'onglets à exclure pour le tableau final
'les noms des onglets sont séparés par des "point-virgule" sans espace
'ne pas oublier les onglets "reporting", "quaterly report" et"Annual report"

Const OngletsExclus = "reporting;quaterly report;Annual report;summary;introduction;procedure"


La création des deux feuilles "quaterly report" et "Annual report" a été rajouté au code.


Et toujours pour lancer la macro:
  • à partir du module1 -> procédure UnSeulTableau()
  • depuis une feuille de calcul par la combinaison des 3 touches Ctrl+Maj+u
 

Pièces jointes

  • Lion54- Un seul tableau- v2.xlsm
    101.6 KB · Affichages: 26
Dernière édition:

mapomme

XLDnaute Barbatruc
Supporter XLD
Re,

Je n'utilise pratiquement jamais la couleur comme un critère.
L’œil (du moins le mien) distingue mal les couleurs proches.
On peut très bien croire avoir apposé la même couleur à plusieurs cellules alors qu'en réalité ce sont des couleurs proches mais malgré tout différentes.
Dans le fichier joint, les 5 couleurs de fond sont différentes mais l’œil ne fait pas de différence.
Travailler sur l'égalité de couleurs selon notre perception aboutit souvent à des résultats faux au niveau VBA.
 

Pièces jointes

  • Lion54- Même couleur ou pas- v1.xlsm
    17.3 KB · Affichages: 6

Lion54

XLDnaute Nouveau
Bonjour mapomme,

J espere que tu vas bien. Depuis ce matin je me prends la tête sur la macro. En effet j'ai juste supprimé les onglet procedure et summary dans la macro et et le fichier excel mais la macro bug.
Egalement, lorsque je lance la macro, des fenetres s ouvrent automatiquement. Je pense que c'est lié au vlookup.
Peux tu stp m aider?
 

Pièces jointes

  • Lion54- Un seul tableau- v2 (3).xlsm
    173.1 KB · Affichages: 11

mapomme

XLDnaute Barbatruc
Supporter XLD
Egalement, lorsque je lance la macro, des fenetres s ouvrent automatiquement
Je pense que c'est parce que vous avez des formules qui font référence à d'autres classeurs externes. Au collage dans "Reporting", Excel recherche ces valeurs dans les fichiers externes et demande leur sélection pour les ouvrir.

Dans l'onglet "Reporting" avez-vous vraiment besoin des formules (j'en doute) ou bien seules les valeurs résultats des formules vous intéressent ?
 

Lion54

XLDnaute Nouveau
Bonsoir,
Merci pour votre retour.
Comment se fait il qu a chaque fois que j ajoute un onglet dans la programation et dans le fichier Excel, le fichier plante.
A titre d exemple : Const OngletsExclus = "reporting;scorecard;quaterly report;Annual report;introduction".
Y a t il une autre manipulation a faire?
 

Discussions similaires

Réponses
4
Affichages
156