Déclaration de la source d'un tableau croisé dyn en VBA **RESOLU** - VB/VBA/VBS - Programmation
Marsh Posté le 15-09-2004 à 17:16:24
perso, en ayant appris sur le tas, je crée une variable string qui "représente" la zone à utiliser pour la cellule :
dim pivot as string
pivot = "feuille1!R1C1:R" & counter & "Cxxx"
'avec counter=nombre de lignes
'et xxx= xxxième colonne
'création du tableau croisé dynamique
ActiveWorkbook.PivotCaches.Add(SourceType:=xlDatabase, SourceData:=pivot). _
CreatePivotTable TableDestination:="", TableName:="Altis"
Marsh Posté le 15-09-2004 à 18:35:12
J'ai du merder quelquepart !!!!
Marsh Posté le 16-09-2004 à 09:43:12
ça y est : plusieurs heures de recherche, une bonne nuit de sommeil et j'ai réussi....
Merci Arkeod pour le coup de main qui m'a bien mise sur la voie....
Pour ceux que ça intéresse (enfin les débutants comme moi)
LE code est devenu cela :
Sheets("ALTIS" ).Activate
Cells(1, 7).Activate
i = 0
While (Cells(i + 1, 7) <> "" )
i = i + 1
Wend
'NbLigne = i
'Range(Cells(1, 5), Cells(NbLigne, 7)).Select
Range(Cells(1, 5), Cells(i, 7)).Select
'création du tableau croisé dynamique
ActiveWorkbook.PivotCaches.Add(SourceType:=xlDatabase, SourceData:="ALTIS!R1C5:R" & i & "C7" ). _
CreatePivotTable TableDestination:="", TableName:="Altis"
ActiveSheet.Name = "Pivot toutAlti"
ActiveSheet.PivotTableWizard TableDestination:=ActiveSheet.Cells(3, 1)
ActiveSheet.Cells(3, 1).Select
ActiveSheet.PivotTables("Altis" ).SmallGrid = False
With ActiveSheet.PivotTables("Altis" ).PivotFields("Nom" )
.Orientation = xlRowField
.Position = 1
End With
With ActiveSheet.PivotTables("Altis" ).PivotFields("Encours" )
.Orientation = xlDataField
.Position = 1
End With
Marsh Posté le 15-09-2004 à 17:05:07
Bonjour, je suis une débutante qui patauge un peu en VBA. Je fais quelques petits programmes pour améliorer les reportings mais rien de bien transcendant. D'habitude pour les trucs nouveaux je m'en sors entre l'enregistreur et les sites qui parlent de VBA mais là !!! Je vois pas...
J'ai une zone de travail que je sélectionne (un tableau de données)et je voudrais que ce tableau soit la source d'un tableau croisé dynamique (que j'ai réussi à créer)
'sélection de la zone de travail
Range("G1" ).Select
Range(Selection, Selection.End(xlDown)).Select
Range(Selection, Selection.Offset(0, -2)).Select
'création du tableau croisé dynamique
ActiveWorkbook.PivotCaches.Add(SourceType:=xlDatabase, SourceData:="?????" ). _
CreatePivotTable TableDestination:="", TableName:="Altis"
C'est ce qu'il y a en rouge qui me pose problème. L'enregistreur m'a mis des RxCy:RzCi et moi je voudrais que la zone varie en fonction de longeur du tableau que je sélectionne (suis-je claire ??? )
Je pense qu'il s'agit d'une déclaration de variable ou un truc du genre mais je ne sais pas faire cela...C'est le dernier truc qui me bloque. c'est rageant !!! Quelqun help please
Message édité par crapaudine le 16-09-2004 à 09:43:53
---------------
Excel est mon ami pour la vie - http://marion.chtitemouss.net/