Excel Downloads
Forum

Précédent   Excel Downloads Forums > Excel > Forum Excel


Réponse
 
LinkBack Outils de la discussion
Vieux 15/04/2006, 11h17   #1 (permalink)
didier
Guest
 
Messages: n/a
Par défaut tableau croisé

Bonjour,
Pourriez vous me dire s'il est possible de récupérer le resultat d'un tableau croisé dynamique dans un UserForm ?.

Merci
  Réponse avec citation
ANNONCES
Vieux 15/04/2006, 14h43   #2 (permalink)
XLDnaute Barbatruc
 
Date d'inscription: février 2005
Messages: 3 691
Par défaut Re:tableau croisé

bonjour Didier

peux tu préciser quelles informations tu souhaites extraire
ci dessous quelques exemples :


récupérer les éléments d'un champ

Dim Pvt As PivotItem
For Each Pvt In ActiveSheet.PivotTables(1).PivotFields('Client').P ivotItems
Debug.Print Pvt.Caption
Next



récupérer Les données du rapport

Dim Cell As Range
For Each Cell In ActiveSheet.PivotTables(1).DataBodyRange
Debug.Print Cell
Next Cell



bon apres midi
MichelXld
MichelXld est déconnecté   Réponse avec citation
Vieux 15/04/2006, 17h33   #3 (permalink)
didier
Guest
 
Messages: n/a
Par défaut Re:tableau croisé

Merci pour ta réponse.
En fait, je ne souhaite pas imprimer le résultat.
Je gere des infos présente dans des feuilles excel par le biais de divers formulaires (saisie, modification, suppression d'infos ...).
l'utilisateur ne voit pas les feuilles excel .
J'ai trouvé comment en vba créer un Tableau Croisé dynamique pour faire un compte de certaines infos; mon problème est que le résultat apparait dans une feuille, alors que je souhaiterai qu'il apparaisse dans un formulaire (dans une box quelconque).
merci
  Réponse avec citation
Vieux 15/04/2006, 18h03   #4 (permalink)
Dan
XLDnaute Barbatruc
 
Avatar de Dan
 
Date d'inscription: février 2005
Localisation: Liège
Version Excel : Excel 2004 (MAC)
Messages: 3 535
Par défaut Re:tableau croisé

Bonjour,

Pour récupérer une valeur dans un TCD, itu peux mettre cette instruction dans une macro en VBA :

Code:
Msgbox Sheets('TCD').PivotTables(1).GetData(''nom des champs')
avec
- 'nom des champs' --> le nom du champ à récupérer.
exemple : 'Total Avril'
- sheets('TCD') : le nom de la feuille où est située le tableau croisé


Si pb n'hésite pas

Dan est déconnecté   Réponse avec citation
Vieux 15/04/2006, 18h14   #5 (permalink)
XLDnaute Barbatruc
 
Date d'inscription: février 2005
Messages: 3 691
Par défaut Re:tableau croisé

rebonjour Didier , bonjour cher Dan

Citation:
En fait, je ne souhaite pas imprimer le résultat.
Debug.Print permet juste de visualiser le résultat dans la fenetre d'execution de l'editeur de macros

tu peux réessayer avec des MsgBox :


récupérer les éléments d'un champ

Dim Pvt As PivotItem
For Each Pvt In ActiveSheet.PivotTables(1).PivotFields('Client').P ivotItems
MsgBox Pvt.Caption
Next



récupérer Les données du rapport

Dim Cell As Range
For Each Cell In ActiveSheet.PivotTables(1).DataBodyRange
MsgBox Cell
Next Cell



bonne soirée
MichelXld
MichelXld est déconnecté   Réponse avec citation
Vieux 15/04/2006, 18h41   #6 (permalink)
didier
Guest
 
Messages: n/a
Par défaut Re:tableau croisé

merci pour vos réponse.
Est-il possible de récupérer le nom de toutes les cellules du tableau et le nombre d'occurrence
(ex: toto | 3
titi | 4 etc )
dans une listbox (par exemple) avec un commande comme addItem.
merci
  Réponse avec citation
Vieux 16/04/2006, 09h00   #7 (permalink)
XLDnaute Barbatruc
 
Date d'inscription: février 2005
Messages: 3 691
Par défaut Re:tableau croisé

bonjour Didier , bonjour cher Dan

il existe plusieurs solutions , mais ce n'est pas évident de répondre sans voir ton classeur

voici un exemple en utilisant la méthode GetData , comme proposé par mon ami Dan
(le TCD est dans la Feuil4 )


Private Sub UserForm_Initialize()
Dim Cell As Range
Dim Pvt As PivotTable
Dim Pvf As PivotField

ListBox1.ColumnCount = 2
ListBox1.ColumnWidths = '70;40'

Set Pvt = Sheets('Feuil4').PivotTables(1)
Set Pvf = Pvt.PivotFields(1)

For Each Cell In Pvf.DataRange

ListBox1.AddItem Cell

ListBox1.List(ListBox1.ListCount - 1, 1) = _
Sheets('Feuil4').PivotTables(1).GetData(''' & Pvt.DataFields(1).Name & '' ' _
& Pvf.Name & ' ' & Cell)

Next Cell
End Sub




bonne journée
MichelXld

Message édité par: michelxld, à: 16/04/2006 09:03
MichelXld est déconnecté   Réponse avec citation
Vieux 16/04/2006, 10h38   #8 (permalink)
Dan
XLDnaute Barbatruc
 
Avatar de Dan
 
Date d'inscription: février 2005
Localisation: Liège
Version Excel : Excel 2004 (MAC)
Messages: 3 535
Par défaut Re:tableau croisé

Bonjour Didier, Bonjour cher ami Michel,

De fait Didier, je rejoins Michel. Compte tenu de ce que tu demandes, je pense que ce serait intéressant de voir ton fichier (avec données non confidentielles) de manière à te fournir la solution la plus appropriée.

Je t'invite aussi à consulter ce lien dans lequel j'ai placé un fichier explicatif concernant le fonction LIREDONNEETABCROISEDYN (un nom à coucher dehors ) , qui te permet de récupérer des infos dans un TCD.
Là bien entendu, il ne s'agit que de formules; donc, pas de macros.
Par rapport à ta demande c'est un complément puisque j'ai bien compris que tu cherches à faire cela par macro mais on ne sait jamais que tu y trouverais un intérêt.

Le lien : Fonction LIREDONNEESTABCROISEDYN

A plus tard



Message édité par: Dan, à: 16/04/2006 10:39
Dan est déconnecté   Réponse avec citation
Vieux 16/04/2006, 20h09   #9 (permalink)
didier
Guest
 
Messages: n/a
Par défaut Re:tableau croisé

MERCI MERCI MERCI

MichelXld Ton code est super et m'a permi de faire ce que je souhaitais.

Merci à tous pour votre aide

cordialement,
didier
  Réponse avec citation
ANNONCES
Réponse

Liens sociaux

Outils de la discussion

Règles de messages
Vous ne pouvez pas créer de nouvelles discussions
Vous ne pouvez pas envoyer des réponses
Vous ne pouvez pas envoyer des pièces jointes
Vous ne pouvez pas modifier vos messages

Les balises BB sont activées : oui
Les smileys sont activés : oui
La balise [IMG] est activée : oui
Le code HTML peut être employé : non
Trackbacks are oui
Pingbacks are oui
Refbacks are oui


Fuseau horaire GMT +2. Il est actuellement 23h35.


(C) 2006 Excel Downloads