Macro et tableaux dynamiques

  • Initiateur de la discussion Initiateur de la discussion mahad
  • Date de début Date de début

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 !

M

mahad

Guest
Bonjour tout le monde,

Je cherche a créer un tableau dynamique avec un macro. En lisant un peu les anciennes discussions j'ai réussi cependant un problème persiste pour moi. En effet, mon tableau de départ n'a pas de taille prédéfinie au niveau de la longueur des colonnes. Quand je reste dans la taille definie lors de la création de la macro cela fonctionne ais si des données sont ajoutées, évidement, il ne prend pa en compte les nouvelles données puisque la macro s'arrete a la ligne C3. (VOIR LE BOUT DE CODE EN GRAS)
Voici le code associé a la macro:

ActiveCell.Cells.Select
ActiveWorkbook.PivotCaches.Add(SourceType:=xlDatabase, SourceData:= _
"Feuil1!A1:C3").CreatePivotTable TableDestination:="", TableName:= _
"Tableau croisé dynamique1"
ActiveSheet.PivotTableWizard TableDestination:=ActiveSheet.Cells(3, 1)
ActiveSheet.Cells(3, 1).Select
With ActiveSheet.PivotTables("Tableau croisé dynamique1")
.ColumnGrand = False
.SmallGrid = False
End With
ActiveSheet.PivotTables("Tableau croisé dynamique1").AddFields RowFields:= _
"Ventes", ColumnFields:="Clients"
ActiveSheet.PivotTables("Tableau croisé dynamique1").PivotFields("Montants"). _
Orientation = xlDataField

Comment puis je faire pour que la macro prenne en compte toutes les cellules qui contiennent une info???

Merci d'avance!

Marine
 
Re : Macro et tableaux dynamiques

Salut Mahad,

Comment puis je faire pour que la macro prenne en compte toutes les cellules qui contiennent une info???

Tu peux essayer ce code 😉
Code:
Dim DerCol As Integer, DerLig As Long, CelAdr As String
ActiveCell.Cells.Select
' Récupérer la dernière colonne remplie et la dernière ligne
DerCol = Sheets("Feuil1").Cells(1, Columns.Count).End(xlToLeft).Column
DerLig = Sheets("Feuil1").Range("A" & Rows.Count).End(xlUp).Row
CelAdr = Cells(DerLig, DerCol).Address
' Créer le Tableau Croisé Dynamique à partir de cette adresse
ActiveWorkbook.PivotCaches.Add(SourceType:=xlDatabase, SourceData:= _
  "Feuil1!A1:" & CelAdr).CreatePivotTable TableDestination:="", TableName:= _
  "Tableau croisé dynamique1"
'
ActiveSheet.PivotTableWizard TableDestination:=ActiveSheet.Cells(3, 1)
ActiveSheet.Cells(3, 1).Select
With ActiveSheet.PivotTables("Tableau croisé dynamique1")
.ColumnGrand = False
.SmallGrid = False
End With
ActiveSheet.PivotTables("Tableau croisé dynamique1").AddFields RowFields:= _
"Ventes", ColumnFields:="Clients"
ActiveSheet.PivotTables("Tableau croisé dynamique1").PivotFields("Montants"). _
Orientation = xlDataField

A+
 
- 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
Assurez vous de marquer un message comme solution pour une meilleure transparence.

Discussions similaires

D
  • Question Question
Réponses
1
Affichages
760
M
Réponses
2
Affichages
3 K
V
Réponses
69
Affichages
9 K
V
Réponses
4
Affichages
1 K
J
Réponses
4
Affichages
2 K
jmten92
J
Réponses
7
Affichages
1 K
F
Réponses
15
Affichages
5 K
FlorianQ
F
P
Réponses
6
Affichages
1 K
P
H
Réponses
9
Affichages
994
H
Retour