OVH Cloud OVH Cloud

Recherche dans un tableau croisé dynamique

7 réponses
Avatar
Arno
Salut =E0 tous,

J'ai fait de nombreux tableaux dynamique par rapport =E0 une feuille. Au
jour d'aujourd'hui je fais mes recopie manuelle des r=E9sultats de mes
tableaux dynamique dans un tableau g=E9n=E9rale. Je souhaiterais faire
une macro pour =E7a. Seulement je ne sais pas comment faire pour faire
une recherche dans un tableau dynamique en VBA. Avez vous des adresses
ou exemples =E0 me fournir ?

Merci d'avance

7 réponses

Avatar
Philippe Noss
GetPivotData

Exemple :

Dim x As Range

R= ""

On Error Resume Next

If (donnée = "" Or donnée = 0) Then
R = ""
Else: Set x = Workbooks("Kiki").Worksheets("TC").PivotTables("Tableau
croisé dynamique1").GetPivotData(donnée, "Mois", "01 , "NOM", "Toto",
"Année", 2005, )
R= x.Value
End If

IF IsError(R) Then
lire = ""
End If

Philippe
www.exefac.com
Avatar
Arno
Merci pour l'exemple, je vais aller tester cella de suite.
Avatar
Arno
Je viens de tester l'exmple mais j'ai un petit problème. Lorsque
j'execute ma macro :

Sub UpdateData()
' On efface les anciennes valeurs
Range("B18:F19").Select
Selection.ClearContents

' On récupère le nom du tableau
Tableau = Range("A17").Value
MsgBox ("Nom : " & Tableau)

Dim x As Range
donnée = ""
Set x = ActiveSheet.PivotTables(Tableau).GetPivotData(donnée,
"CATEG", "CADRE", "MANAGERS", "INGENIEURS", "SEXE", "F")
R = x.Value
MsgBox ("Valeur : " & x)
End Sub

Il se bloque sur la ligne où il y a GetPivotData et me dit que c'est
une propriétée ou méthode non géré par cet objet. Lorsque je vais
dans l'aide, il ne trouve pas GetPivotData ??
Avatar
Philippe Noss
Quel version d'excel ?
Avatar
Arno
Avatar
Philippe Noss
Bonjour,
Je crains que la methode GetPivotData ne soit possible qu'a partir de
Excel 2002
il faudra essaue avec du code de style

ActiveCell.FormulaR1C1 = _
"=GETPIVOTDATA('[kiki.xls]Mafeuille!R1C1:R102C17"CATEG", "CADRE",
"MANAGERS")

mavaleur = Evaluate("=GETPIVOTDATA(....)

dans ce cas, le mieux est encore de commencer par tester la fonction
LIREDONNEESTABCROISDYNAMIQUE sur une feuille de calcul pour ensuite
eventuellement l'intégrée dans du code VBA avec Evaluate ou
Formula,FormulaLocal, FormulaR1C1 ...
PN
Avatar
Arno
Ok, je vais me débrouiller avec des feuilles de calcul du coup.

merci.