Déclaration de la source d'un tableau croisé dyn en VBA **RESOLU**

Déclaration de la source d'un tableau croisé dyn en VBA **RESOLU** - VB/VBA/VBS - Programmation

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 ??? [:cvb] )
 
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/
Reply

Marsh Posté le 15-09-2004 à 17:05:07   

Reply

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"

Reply

Marsh Posté le 15-09-2004 à 18:35:12    

J'ai du merder quelquepart !!!!
 
http://img12.exs.cx/img12/3056/bouhh.jpg


---------------
Excel est mon ami pour la vie - http://marion.chtitemouss.net/
Reply

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.... :sol:  
Merci Arkeod pour le coup de main qui m'a bien mise sur la voie.... [:arnaud_w]  
 
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


---------------
Excel est mon ami pour la vie - http://marion.chtitemouss.net/
Reply

Sujets relatifs:

Leave a Replay

Make sure you enter the(*)required information where indicate.HTML code is not allowed