XL 2013 Fomat d'un tableau croisé dynamique

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 !

Chrystel01

XLDnaute Occasionnel
Bonjour,

Quand je colle un tableau croisé dynamique (collage valeur + format) je perds une partie de son format (zones en rouge ci-dessous)
Connaissez-vous svp un moyen de conserver ce format ?
Je vous remercie par avance

Chrystel

1613335367326.png
 

Pièces jointes

Solution
Bonsoir Christel01, le forum,

c est la cellule étudiée dans le TCD.

c(1, 5) est la 5ème cellule à droite à partir de c.

Une solution plus générale et plus élaborée dans le fichier joint :
VB:
Sub Coller()
Dim col%, c As Range, i%
Application.ScreenUpdating = False
With Sheets("tcd").PivotTables(1).TableRange1
    col = .Columns.Count + 2
    .EntireColumn.Copy .EntireColumn.Cells(1, col) 'pour copier les largeurs des colonnes
    .Columns(col).EntireColumn.Resize(, .Columns.Count).Clear 'RAZ
    For Each c In .Cells
        c(1, col) = c
        c(1, col).Interior.Color = c.DisplayFormat.Interior.Color
        c(1, col).Font.Color = c.DisplayFormat.Font.Color
        c(1, col).Font.Bold = c.DisplayFormat.Font.Bold...
Alors utilisez cette macro avec DisplayFormat :
VB:
Sub Coller()
Dim c As Range, i%
For Each c In [A3:C12] 'plage à adapter
    c(1, 5) = c
    c(1, 5).Interior.Color = c.DisplayFormat.Interior.Color
    c(1, 5).Font.Color = c.DisplayFormat.Font.Color
    c(1, 5).Font.Bold = c.DisplayFormat.Font.Bold
    For i = 7 To 10
        If c.DisplayFormat.Borders(i).LineStyle <> xlNone Then c(1, 5).Borders(i).Weight = c.DisplayFormat.Borders(i).Weight
Next i, c
End Sub
 
Bonsoir Christel01, le forum,

c est la cellule étudiée dans le TCD.

c(1, 5) est la 5ème cellule à droite à partir de c.

Une solution plus générale et plus élaborée dans le fichier joint :
VB:
Sub Coller()
Dim col%, c As Range, i%
Application.ScreenUpdating = False
With Sheets("tcd").PivotTables(1).TableRange1
    col = .Columns.Count + 2
    .EntireColumn.Copy .EntireColumn.Cells(1, col) 'pour copier les largeurs des colonnes
    .Columns(col).EntireColumn.Resize(, .Columns.Count).Clear 'RAZ
    For Each c In .Cells
        c(1, col) = c
        c(1, col).Interior.Color = c.DisplayFormat.Interior.Color
        c(1, col).Font.Color = c.DisplayFormat.Font.Color
        c(1, col).Font.Bold = c.DisplayFormat.Font.Bold
        For i = 7 To 10
            If c.DisplayFormat.Borders(i).LineStyle <> xlNone Then c(1, 5).Borders(i).Weight = c.DisplayFormat.Borders(i).Weight
    Next i, c
End With
End Sub
A+
 

Pièces jointes

- 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

Discussions similaires

Retour