XL 2013 Macro pour tableau croisé dynamique avec range dynamique

bool2gom

XLDnaute Junior
Bonjour

Chaque semaine, je télécharge un fichier xls avec des données brutes, dont le nombre de colonnes et lignes varie.
J'ai besoin de créer un TCD sur toute la donnée contenue dans le fichier.

J'ai enregistré un macro sous Excel en faisant CTRL + Shift + droite / CTRL + Shift + Bas, en partant de la cellule A1, pour sélectionner toutes les données.

Le seul problème est que le range de données source change d'une semaine à l'autre, et est hardcodé.

Comment avoir un range 100% dynamique ?
Je mettrais bien un range très large (ex : Report!R1C1:R999999C999999), mais c'est un peu "sale"...

Merci


Sub Macro1()
'
' Macro1 Macro
'

'
Range(Selection, Selection.End(xlToRight)).Select
Range(Selection, Selection.End(xlDown)).Select
Sheets.Add
ActiveWorkbook.PivotCaches.Create(SourceType:=xlDatabase, SourceData:= _
"Report!R1C1:R32C20", Version:=xlPivotTableVersion10).CreatePivotTable _
TableDestination:="Sheet1!R3C1", TableName:="PivotTable1", DefaultVersion _
:=xlPivotTableVersion10
Sheets("Sheet1").Select
Cells(3, 1).Select
End Sub
 

joss56

XLDnaute Accro
Re : Macro pour tableau croisé dynamique avec range dynamique

Bonjour

Comme ça peut être :

lig= ActiveSheet.Cells.SpecialCells(xlCellTypeLastCell).Row
col = ActiveSheet.Cells.SpecialCells(xlCellTypeLastCell).Column
Range("A1", Cells(lig, col)).Select

Jocelyn
 

Efgé

XLDnaute Barbatruc
Re : Macro pour tableau croisé dynamique avec range dynamique

Bonjour bool2gom, joss56

Une proposition:
remplace "Report!R1C1:R32C20" par
Code:
"Report!" & Sheets("Report").UsedRange.Address(ReferenceStyle:=xlR1C1)

Cordialement
 

Discussions similaires

Réponses
1
Affichages
518
Réponses
2
Affichages
935

Membres actuellement en ligne

Aucun membre en ligne actuellement.

Statistiques des forums

Discussions
312 206
Messages
2 086 219
Membres
103 158
dernier inscrit
laufin