Twitter iPhone pliant OnePlus 11 PS5 Disney+ Orange Livebox Windows 11

VB - problème de TCD

3 réponses
Avatar
jean-francois LEGRAS
Bonjour à vous très chers amis,



J'ai un petit problème curieux :

j'ai le code VB suivant pour un TDB :


Set MonTCD3 = ActiveWorkbook.PivotCaches.Add(SourceType:=xlDatabase,
SourceData:=[hiérarchie!A1:B2]).CreatePivotTable(TableDestination:=Sheets("onglet3").Cells(3,
1), TableName:="Tableau croisé dynamique", DefaultVersion:=xlTable4)

With MonTCD3


.Format xlReport9
.SourceData = [hiérarchie!A1].CurrentRegion.Address(, , xlR1C1, True)
.AddFields ColumnFields:="Données"


With .PivotFields("AGENCE"): .Orientation = xlRowField: .Position = 1:
End With
With .PivotFields("AC"): .Orientation = xlRowField: .Position = 2: End
With
With .PivotFields("N° COMPTE"): .Orientation = xlRowField: .Position =
3: End With

With .PivotFields("total 2006"): .Orientation = xlDataField: .Position =
1: .Function = xlSum: End With
With .PivotFields("total 2007"): .Orientation = xlDataField: .Position =
2: .Function = xlSum: End With
With .PivotFields("IT 2006"): .Orientation = xlDataField: .Position = 3:
.Function = xlSum: End With
With .PivotFields("IT 2007"): .Orientation = xlDataField: .Position = 4:
.Function = xlSum: End With
With .PivotFields("papier 2006"): .Orientation = xlDataField: .Position
= 5: .Function = xlSum: End With
With .PivotFields("papier 2007"): .Orientation = xlDataField: .Position
= 6: .Function = xlSum: End With
With .PivotFields("GOP 2006"): .Orientation = xlDataField: .Position =
7: .Function = xlSum: End With
With .PivotFields("GOP 2007"): .Orientation = xlDataField: .Position =
8: .Function = xlSum: End With
With .PivotFields("mobilier 2006"): .Orientation = xlDataField:
.Position = 9: .Function = xlSum: End With
With .PivotFields("mobilier 2007"): .Orientation = xlDataField:
.Position = 10: .Function = xlSum: End With
With .PivotFields("hygiène 2006"): .Orientation = xlDataField: .Position
= 11: .Function = xlSum: End With
With .PivotFields("hygiène 2007"): .Orientation = xlDataField: .Position
= 12: .Function = xlSum: End With

End With


Et ce code ne marche pas lorsque au moins une cellule de la colonne A ou B
contient plus de 255 caractères (je précise que c'est uniquement quand une
telle cellule se trouve en colonne A ou B ; en colonne C ou suivante, ca
marche parfaitement...). Alors que quand je fais le TDB de façon manuelle,
cela marche bien. Quelqu'un aurait-il la solution (et éventuellement
l'explication) à ce problème ?


Merci beaucoup d'avance !

Slts
Jiffey

3 réponses

Avatar
Daniel.C
Bonjour.
VBA limite les strings à 255 caractères.
Daniel

Bonjour à vous très chers amis,



J'ai un petit problème curieux :

j'ai le code VB suivant pour un TDB :


Set MonTCD3 = ActiveWorkbook.PivotCaches.Add(SourceType:=xlDatabase,
SourceData:=[hiérarchie!A1:B2]).CreatePivotTable(TableDestination:=Sheets("onglet3").Cells(3,
1), TableName:="Tableau croisé dynamique", DefaultVersion:=xlTable4)

With MonTCD3


.Format xlReport9
.SourceData = [hiérarchie!A1].CurrentRegion.Address(, , xlR1C1, True)
.AddFields ColumnFields:="Données"


With .PivotFields("AGENCE"): .Orientation = xlRowField: .Position = 1:
End With
With .PivotFields("AC"): .Orientation = xlRowField: .Position = 2: End
With
With .PivotFields("N° COMPTE"): .Orientation = xlRowField: .Position = 3:
End With

With .PivotFields("total 2006"): .Orientation = xlDataField: .Position =
1: .Function = xlSum: End With
With .PivotFields("total 2007"): .Orientation = xlDataField: .Position =
2: .Function = xlSum: End With
With .PivotFields("IT 2006"): .Orientation = xlDataField: .Position = 3:
.Function = xlSum: End With
With .PivotFields("IT 2007"): .Orientation = xlDataField: .Position = 4:
.Function = xlSum: End With
With .PivotFields("papier 2006"): .Orientation = xlDataField: .Position =
5: .Function = xlSum: End With
With .PivotFields("papier 2007"): .Orientation = xlDataField: .Position =
6: .Function = xlSum: End With
With .PivotFields("GOP 2006"): .Orientation = xlDataField: .Position = 7:
.Function = xlSum: End With
With .PivotFields("GOP 2007"): .Orientation = xlDataField: .Position = 8:
.Function = xlSum: End With
With .PivotFields("mobilier 2006"): .Orientation = xlDataField: .Position
= 9: .Function = xlSum: End With
With .PivotFields("mobilier 2007"): .Orientation = xlDataField: .Position
= 10: .Function = xlSum: End With
With .PivotFields("hygiène 2006"): .Orientation = xlDataField: .Position
= 11: .Function = xlSum: End With
With .PivotFields("hygiène 2007"): .Orientation = xlDataField: .Position
= 12: .Function = xlSum: End With

End With


Et ce code ne marche pas lorsque au moins une cellule de la colonne A ou B
contient plus de 255 caractères (je précise que c'est uniquement quand une
telle cellule se trouve en colonne A ou B ; en colonne C ou suivante, ca
marche parfaitement...). Alors que quand je fais le TDB de façon manuelle,
cela marche bien. Quelqu'un aurait-il la solution (et éventuellement
l'explication) à ce problème ?


Merci beaucoup d'avance !

Slts
Jiffey


Avatar
jean-francois LEGRAS
Merci !

Donc pas de solution ?


"Daniel.C" a écrit dans le message de news:
e$$
Bonjour.
VBA limite les strings à 255 caractères.
Daniel

Bonjour à vous très chers amis,



J'ai un petit problème curieux :

j'ai le code VB suivant pour un TDB :


Set MonTCD3 = ActiveWorkbook.PivotCaches.Add(SourceType:=xlDatabase,
SourceData:=[hiérarchie!A1:B2]).CreatePivotTable(TableDestination:=Sheets("onglet3").Cells(3,
1), TableName:="Tableau croisé dynamique", DefaultVersion:=xlTable4)

With MonTCD3


.Format xlReport9
.SourceData = [hiérarchie!A1].CurrentRegion.Address(, , xlR1C1, True)
.AddFields ColumnFields:="Données"


With .PivotFields("AGENCE"): .Orientation = xlRowField: .Position =
1: End With
With .PivotFields("AC"): .Orientation = xlRowField: .Position = 2:
End With
With .PivotFields("N° COMPTE"): .Orientation = xlRowField: .Position
= 3: End With

With .PivotFields("total 2006"): .Orientation = xlDataField:
.Position = 1: .Function = xlSum: End With
With .PivotFields("total 2007"): .Orientation = xlDataField:
.Position = 2: .Function = xlSum: End With
With .PivotFields("IT 2006"): .Orientation = xlDataField: .Position =
3: .Function = xlSum: End With
With .PivotFields("IT 2007"): .Orientation = xlDataField: .Position =
4: .Function = xlSum: End With
With .PivotFields("papier 2006"): .Orientation = xlDataField:
.Position = 5: .Function = xlSum: End With
With .PivotFields("papier 2007"): .Orientation = xlDataField:
.Position = 6: .Function = xlSum: End With
With .PivotFields("GOP 2006"): .Orientation = xlDataField: .Position
= 7: .Function = xlSum: End With
With .PivotFields("GOP 2007"): .Orientation = xlDataField: .Position
= 8: .Function = xlSum: End With
With .PivotFields("mobilier 2006"): .Orientation = xlDataField:
.Position = 9: .Function = xlSum: End With
With .PivotFields("mobilier 2007"): .Orientation = xlDataField:
.Position = 10: .Function = xlSum: End With
With .PivotFields("hygiène 2006"): .Orientation = xlDataField:
.Position = 11: .Function = xlSum: End With
With .PivotFields("hygiène 2007"): .Orientation = xlDataField:
.Position = 12: .Function = xlSum: End With

End With


Et ce code ne marche pas lorsque au moins une cellule de la colonne A ou
B contient plus de 255 caractères (je précise que c'est uniquement quand
une telle cellule se trouve en colonne A ou B ; en colonne C ou suivante,
ca marche parfaitement...). Alors que quand je fais le TDB de façon
manuelle, cela marche bien. Quelqu'un aurait-il la solution (et
éventuellement l'explication) à ce problème ?


Merci beaucoup d'avance !

Slts
Jiffey






Avatar
Daniel.C
A ma connaissance, non, mais je suis loin d'être un expert TCD.
Daniel

Merci !

Donc pas de solution ?


"Daniel.C" a écrit dans le message de news:
e$$
Bonjour.
VBA limite les strings à 255 caractères.
Daniel

Bonjour à vous très chers amis,



J'ai un petit problème curieux :

j'ai le code VB suivant pour un TDB :


Set MonTCD3 = ActiveWorkbook.PivotCaches.Add(SourceType:=xlDatabase,
SourceData:=[hiérarchie!A1:B2]).CreatePivotTable(TableDestination:=Sheets("onglet3").Cells(3,
1), TableName:="Tableau croisé dynamique", DefaultVersion:=xlTable4)

With MonTCD3


.Format xlReport9
.SourceData = [hiérarchie!A1].CurrentRegion.Address(, , xlR1C1, True)
.AddFields ColumnFields:="Données"


With .PivotFields("AGENCE"): .Orientation = xlRowField: .Position = 1:
End With
With .PivotFields("AC"): .Orientation = xlRowField: .Position = 2: End
With
With .PivotFields("N° COMPTE"): .Orientation = xlRowField: .Position =
3: End With

With .PivotFields("total 2006"): .Orientation = xlDataField: .Position
= 1: .Function = xlSum: End With
With .PivotFields("total 2007"): .Orientation = xlDataField: .Position
= 2: .Function = xlSum: End With
With .PivotFields("IT 2006"): .Orientation = xlDataField: .Position =
3: .Function = xlSum: End With
With .PivotFields("IT 2007"): .Orientation = xlDataField: .Position =
4: .Function = xlSum: End With
With .PivotFields("papier 2006"): .Orientation = xlDataField:
.Position = 5: .Function = xlSum: End With
With .PivotFields("papier 2007"): .Orientation = xlDataField:
.Position = 6: .Function = xlSum: End With
With .PivotFields("GOP 2006"): .Orientation = xlDataField: .Position =
7: .Function = xlSum: End With
With .PivotFields("GOP 2007"): .Orientation = xlDataField: .Position =
8: .Function = xlSum: End With
With .PivotFields("mobilier 2006"): .Orientation = xlDataField:
.Position = 9: .Function = xlSum: End With
With .PivotFields("mobilier 2007"): .Orientation = xlDataField:
.Position = 10: .Function = xlSum: End With
With .PivotFields("hygiène 2006"): .Orientation = xlDataField:
.Position = 11: .Function = xlSum: End With
With .PivotFields("hygiène 2007"): .Orientation = xlDataField:
.Position = 12: .Function = xlSum: End With

End With


Et ce code ne marche pas lorsque au moins une cellule de la colonne A ou B
contient plus de 255 caractères (je précise que c'est uniquement quand une
telle cellule se trouve en colonne A ou B ; en colonne C ou suivante, ca
marche parfaitement...). Alors que quand je fais le TDB de façon manuelle,
cela marche bien. Quelqu'un aurait-il la solution (et éventuellement
l'explication) à ce problème ?


Merci beaucoup d'avance !

Slts
Jiffey