Ceci est une page optimisée pour les mobiles. Cliquez sur ce texte pour afficher la vraie page.

Plage variable dans Pivot table

choffraym

XLDnaute Nouveau
Bonjour,
Pourriez-vous me donner la syntaxe exacte de ce qui suit :

wkB.Sheets("per CostCenter").Copy before:=wbk.Sheets(1)
ActiveSheet.PivotTables("PivotTable4").ChangePivotCache ActiveWorkbook. _
PivotCaches.Create(SourceType:=xlDatabase, SourceData:= _
"FEUILLE1!R1C1:R10000C19" _

J'aimerais remplacer FEUILLE1!R1C1:R10000C19 par
Feuille1.Range("a1", Range("a1").End(xlDown).End(xlToRight))

Merci d'avance.
Bien a vous.
Mike
 

Efgé

XLDnaute Barbatruc
Bonjour
Si tu connais la dernière colonne (S dans ton exemple):
VB:
Sub test()
With Feuil1
    .Range(.Range("a1"), .Range("a1").End(4)(1, 19)).Select
End With
End Sub

Sans connaitre la dernière cellule de la plage (ni la ligne, ni la colonne)

Code:
Sub test_2()
Dim x As Range, y As Range
With Feuil1
    Set x = .Cells.Find("*", .Cells(.Rows.Count, .Columns.Count), xlValues, , 1, 2, 0)
    Set y = .Cells.Find("*", .Cells(.Rows.Count, .Columns.Count), xlValues, , 2, 2, 0)
    .Range(.Cells(1, 1), .Cells(x.Row, y.Column)).Select
    End With
End Sub

Les "Select" ne sont là que pour exemple.

Cordialement
 

choffraym

XLDnaute Nouveau
Bonjour

Bonjour Efge,
Merci pour votre retour.
Ca me convient pour une plage variable mais comment est-ce que je traduis ca dans mon code apd de
SourceData:= _
"FEUILLE1!R1C1:R10000C19" _
Merci d'avance.
bat.
Mike
 

Efgé

XLDnaute Barbatruc
Re
Je ne t'ai donné que la façon de trouver la plage.
Si tu sais créer une source Data tu mets :
SourceData:= .Range(.Cells(1, 1), .Cells(x.Row, y.Column))

Il faut bien utiliser le With / End With

Cordialement
 

choffraym

XLDnaute Nouveau
Re
Je ne t'ai donné que la façon de trouver la plage.
Si tu sais créer une source Data tu mets :
SourceData:= .Range(.Cells(1, 1), .Cells(x.Row, y.Column))

Il faut bien utiliser le With / End With

Cordialement

Alors, je dois louper qqch alors pcq quand je mets :

ActiveSheet.PivotTables("PivotTable4").ChangePivotCache ActiveWorkbook. _
PivotCaches.Create(SourceType:=xlDatabase, SourceData:=Sheets("SDWORX").Range(Cells(1, 1), Cells(x.Row, y.Column)) _
, Version:=6)

Ca ne marche pas... :-(
Re
Je ne t'ai donné que la façon de trouver la plage.
Si tu sais créer une source Data tu mets :
SourceData:= .Range(.Cells(1, 1), .Cells(x.Row, y.Column))

Il faut bien utiliser le With / End With

Cordialement
Super. Merci. C'est en ordre.. Bonne jounee.
 

chris

XLDnaute Barbatruc
Bonjour

Plutôt que de travailler sur une plage variable mais non évolutive, pourquoi ne pas utiliser un tableau structuré : cela existe depuis 12 ans maintenant !
 
Les cookies sont requis pour utiliser ce site. Vous devez les accepter pour continuer à utiliser le site. En savoir plus…