VBa & TCD adresse ou position

Le
Le Nordiste
Bonjour,


J'aimerai pouvoir retouver les coordonnées d'un TCD en VBa :

Comment connaitre l'adresse ou la position d"un TCD?
Comment connaitre la ligne des totaux du TCD?
Comment connaitre la colonne des totaux du TCD ?

Pour le coin supérieur gauche, pas trop de Pb si c'est mon programme
qui cré le TCD,
pour les autres , ce sont des positions variables eelon les
actualisations.


Remerciements anticipés
Vidéos High-Tech et Jeu Vidéo
Téléchargements
Vos réponses
Gagnez chaque mois un abonnement Premium avec GNT : Inscrivez-vous !
Trier par : date / pertinence
MichDenis
Le #6999871
l'adresse de l'étendue du tdc à l'exclusion du (des)champ page
'---------------------------------
Dim Tdc As PivotTable
Set Tdc = Feuil1.PivotTables(1)
MsgBox Tdc.TableRange1.Address
'---------------------------------

Pour l'intégralité de la plage Tdc incluant le champ page :
MsgBox Tdc.TableRange2.Address

Tu peux définir ces plages aussi du tdc lorsqu'elles existent !

Msgbox Tdc.DataBodyRange.Address ' Plage des data seulement du tdc
Msgbox Tdc.RowRange.Address
Msgbox Tdc.ColumnRange.Address
Msgbox Tdc.DataLabelRange.Address
Msgbox Tdc.PageRange.Select

Pour savoir ce qu'elle représente, tu exécutes ces lignes pas à pas
c'est plus simple qu'une description écrite...
Tdc.RowRange.Select
Tdc.ColumnRange.Select
Tdc.DataLabelRange.Select
Tdc.PageRange.Select


P.S- Attention si certaines lignes de code sont coupées par le service
de messagerie.

Voici un exemple comment formater toutes les lignes des sous-totaux
de niveau 1 dans un tdc :
'------------------------------------------------
Sub Sous_total_pivottable()

Dim i As Integer
Dim Pt As PivotTable
Dim Adr As String, Nf As String

'Mémorise la feuille active
Nf = ActiveSheet.Name
Application.ScreenUpdating = False

With Feuil1 'CodeName de la feuille où est le tdc
.Activate
'tu peux remplacer le 1 par son nom
Set Pt = .PivotTables(1)
End With

With Pt
'si un champ seulement -> pas de sous-totaux
If .RowFields.Count > 1 Then
'Une boucle sur tous les champs
For i = .RowFields.Count - 1 To 1 Step -1
'test s'il y a un champ de sous-totaux niveau 1
If .RowFields(i).Subtotals(1) = True Then
'voir PivotSelect dans l'aide d'excel
.PivotSelect "'" & .RowFields(i).Name & "'[All;Total]", xlDataAndLabel, True
If .RowFields(i).Position = 1 Then
With Selection
'Pour obtenir l'adresse de toutes les lignes de sous-totaux
Adr = .Parent.Name & "!" & .Address
'Pour formatar en gras toutes les lignes de sous-totaux
.Font.Bold = True
'pour mettre la couleur toutes les lignes de sous-totaux
.Interior.ColorIndex = 44
End With
Else
Selection.Interior.ColorIndex = 6
End If
'Sélection cellule coin supérieur gauche du tdc
.TableRange1(1, 1).Offset(1, 1).Select
End If
Next i
End If
End With
'Active la feuille avant l'exécution de cette macro
Sheets(Nf).Activate
MsgBox "L'adresse des plages des sous-totaux, niveau 1 : " & Adr
End Sub
'------------------------------------------------

Voici un exemple comment formater la ligne du Grand Total dans
un TDC
'----------------------------------------
Sub Grand_total_pivottable()

Dim Pt As PivotTable, Adr As String
Dim Nf As String, Rg As Range
Nf = ActiveSheet.Name
Application.ScreenUpdating = False
With Feuil1 'codename de la feuille où est le tdc
.Activate
Set Pt = .PivotTables(1)
End With
With Pt
.PivotSelect ("Total Grand Total"), xlDataAndLabel, True
Set Rg = .TableRange1
End With
With Range(Selection.Address).Offset(, -Rg.Columns.Count + 1). _
Resize(, Rg.Columns.Count)
Adr = .Parent.Name & "!" & .Address
.Interior.ColorIndex = 5
End With
Rg(1, 1).Select
Sheets(Nf).Activate
MsgBox "L'adresse de la plage du grand sous-total est : " & Adr

End Sub
'----------------------------------------



"Le Nordiste"
Bonjour,


J'aimerai pouvoir retouver les coordonnées d'un TCD en VBa :

Comment connaitre l'adresse ou la position d"un TCD?
Comment connaitre la ligne des totaux du TCD?
Comment connaitre la colonne des totaux du TCD ?

Pour le coin supérieur gauche, pas trop de Pb si c'est mon programme
qui cré le TCD,
pour les autres , ce sont des positions variables eelon les
actualisations.


Remerciements anticipés
Publicité
Poster une réponse
Anonyme