Formule "mettre sous forme de tableau"
Bonjour à tous,
Avant tout, merci à vous car je me sers souvent du forum pour résoudre mes problèmes ou trouver des macros qui s'adaptent à mon utilisation. C'est très utilisé dans mon domaine professionnel mais pas dans mon service donc je n'ai jamais été formé à VBA. Je pars donc de 0 et j'essaie pour la première fois de faire une macro à la main car je n'ai pas le choix.
En gros, je veux sélectionner un tableau croisé dynamique (dont la taille varie en fonction de ce que je lui demande, je ne choisis donc pas simplement une plage de données), pour copier ses données et les coller dans une nouvelle feuille. Jusque là j'ai réussi.
Ensuite, je veux que mes données collées dans la nouvelles feuille apparaissent sous forme de tableau. C'est à partir de là que je coince, voici mon code :
Sub Macro1()
'
' Macro1 Macro
'
'
ActiveCell.CurrentRegion.Select ' selection du tableau entier à partir de la cellule active
Selection.Copy ' copié
Sheets.Add After:=ActiveSheet ' ajout d'une nouvelle feuille
Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _
:=False, Transpose:=False
Application.CutCopyMode = False ' Colle ce qu'on avait copié auparavant dans la nouvelle feuille
ActiveCell.CurrentRegion.Select ' selectionne à nouveau les données collées
ActiveSheet.ListObjects.Add(xlSrcRange, Range(""), , xlYes).Name = _
"tab"
Range("tab").Select
ActiveSheet.ListObjects("tab").TableStyle = "TableStyleLight9"
End Subjusque la deuxieme ligne "ActiveCell.CurrentRegion.Select" je pense être bon mais, même si je me suis peut être bêtement planté mais j'aimerais :
que ma selection se mette sous forme de tableau comme quand on clique sur "mettre sous forme de tableau" donc avec les filtres etc.
Pour information, je veux faire un nuage de points avec ce tableau par la suite, mais je devrais le faire à la main car il faut que je respecte quelques mises en forme compliquées.
Quelqu'un saurait-t-il m'aider pour cela s'il vous plait ? Je coince depuis plus d'une heure pour tout vous dire..
Merci beaucoup !
Bonjour, bienvenue,
Intéressant !
Sub tablo()
ActiveCell.CurrentRegion.Select ' selection du tableau entier à partir de la cellule active
' le problème ce sont les en-têtes de colonnes absentes !!
n = 1 ' à ajuster si plusieurs critères de colonnes dans le TCD
Selection.Offset(n, 0).Resize(Selection.Rows.Count - n, Selection.Columns.Count).Copy ' copié
Sheets.Add After:=ActiveSheet ' ajout d'une nouvelle feuille
Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks:=False, Transpose:=False
ActiveSheet.ListObjects.Add(xlSrcRange, Selection, , xlYes).Name = "tab"
ActiveSheet.ListObjects("tab").TableStyle = "TableStyleLight9"
End Sub
Incroyable, merci beaucoup cela fonctionne super bien et c'est totalement différent donc merci beaucoup pour le temps passé dessus !
Il va falloir que je me penche dessus demain ou lundi pour comprendre comment tu as fait et essayer d'ajouter les
en-têtes de colonne comme il faut !
Merci encore !!
N'oublie pas de clore ce fil de discussion en cliquant sur
N'oublie pas aussi qu'il y a une option pour afficher toutes les lignes si tu as plusieurs niveaux de regroupement / de critères dans "lignes".