J'aimerai pouvoir retouver les coordonn=E9es 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=E9rieur gauche, pas trop de Pb si c'est mon programme
qui cr=E9 le TCD,
pour les autres , ce sont des positions variables eelon les
actualisations.
Cette action est irreversible, confirmez la suppression du commentaire ?
Signaler le commentaire
Veuillez sélectionner un problème
Nudité
Violence
Harcèlement
Fraude
Vente illégale
Discours haineux
Terrorisme
Autre
MichDenis
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" a écrit dans le message de news:
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
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" <jean-paul.bataille@neufcegetel.fr> a écrit dans le message de news:
08ec43e5-49f6-4509-8b1a-5dd33e236873@a1g2000hsb.googlegroups.com...
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.
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" a écrit dans le message de news:
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.