XL 2019 VBA consolidation de plusieurs tableaux

Boostez vos compétences Excel avec notre communauté !

Rejoignez Excel Downloads, le rendez-vous des passionnés où l'entraide fait la force. Apprenez, échangez, progressez – et tout ça gratuitement ! 👉 Inscrivez-vous maintenant !

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

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...
J'ai trouvé 🙂.
J ai juste renommé sheets 1 par reporting 2 et ca fonctionne.
Peux tu stp me dire à quelle niveau dois je qjouter le commentaire : ".Cells(ligneCible, "a").PasteSpecial xlPasteFormats"?

J ai fait comme suit mais ca ne fonctionne pas.
Set plage = F.Range("a" & premLig & ":u" & derLig) 'plage à copier
'première ligne vide de la feuille "Reporting" (dernière ligne +1)
ligneCible = .Cells(.Rows.Count, "a").End(xlUp).Row + 1
If Combien = 1 Then ligneCible = 1 'si première copie, on collera vers la ligne 1
plage.Copy .Cells(ligneCible, "a").PasteSpecial xlPasteFormats 'la copie
End If

Merci encore pour ton aide
 
- Navigue sans publicité
- Accède à Cléa, notre assistante IA experte Excel... et pas que...
- Profite de fonctionnalités exclusives
Ton soutien permet à Excel Downloads de rester 100% gratuit et de continuer à rassembler les passionnés d'Excel.
Je deviens Supporter XLD

Discussions similaires

Réponses
1
Affichages
540
Retour