Forum |  HardWare.fr | News | Articles | PC | S'identifier | S'inscrire | Shop Recherche
1247 connectés 

  FORUM HardWare.fr
  Programmation
  VB/VBA/VBS

  Macro tableau croisé dynamique

 


 Mot :   Pseudo :  
 
Bas de page
Auteur Sujet :

Macro tableau croisé dynamique

n°2140021
melie26
Posté le 02-05-2012 à 10:11:58  profilanswer
 

Bonjour à tous !!!
 
Je vous écris car je deviens folle !  :fou:  
Cela va bientôt faire un mois que j'essaie de me débrouiller seul sur le ring avec VBA sur Excel !  
Et je ne suis qu'une petit débutante dans le domaine ...
 
Je vous explique mon problème : j'ai une feuille de données mensuelles immeeeeense de mesure météo (une mesure par seconde !).
Je voudrais créer par macro un tableau croisé dynamique qui synthétise cette banque de données en ne mettant qu'une ligne par jour.
 
J'ai créé ma macro mais elle plante dès le début !
 
Voilà le début de mon code (en rouge les endroits où ça plante habituellement) :
 
Range("A1:O" & Range("O65536" ).End(xlUp).Row).Select
   ActiveWorkbook.PivotCaches.Add(SourceType:=xlDatabase, SourceData:= _
        "'Données'!A1:O65536" ).CreatePivotTable TableDestination:= _
        "'[Météo.xls]Tableau synthétique'!R1C1", TableName:= _
        "Tableau croisé dynamique1"

             
   ActiveSheet.PivotTables("Tableau croisé dynamique1" ).AddFields RowFields:= _
        Array("Date", "Données" )

         
    With ActiveSheet.PivotTables("Tableau croisé dynamique1" ).PivotFields( _
        "Température" & Chr(10) & "extérieure (°C)" )
        .Orientation = xlDataField
        .Caption = "Moyenne de Température" & Chr(10) & "extérieure (°C)"
        .Position = 1
        .Function = xlAverage
    End With
 
 
Avez-vous une idée de la source de mon problème ?  :??:  
 
Merci d'avance à tous !
 
 
Mélie  :hello:

mood
Publicité
Posté le 02-05-2012 à 10:11:58  profilanswer
 

n°2140100
kiki29
Posté le 02-05-2012 à 15:26:46  profilanswer
 
n°2140115
melie26
Posté le 02-05-2012 à 16:22:19  profilanswer
 

Hello,
 
J'ai lu le tuto puis j'ai essayé d'adapter mon code en m'aidant de l'exemple et cela n'a pas marché.
J'ai ensuite testé l'exemple lui-même pour comprendre d'où venait mon erreur et celui-ci n'a pas fonctionné non plus !
 
Avez-vous une idée de mon erreur ou un exemple de macro créant un TCD qui marche !?
 
Merci beaucoup en tout cas !

n°2140126
kiki29
Posté le 02-05-2012 à 16:51:51  profilanswer
 

Salut, voir un échantillon sur http://cjoint.com/?3EcqYZXg3e4


Message édité par kiki29 le 24-02-2015 à 04:15:21

---------------
Myanmar 90/91 : http://gadaud.gerard.free.fr/publi [...] index.html
n°2140294
melie26
Posté le 03-05-2012 à 08:59:58  profilanswer
 

Ce code a l'air de fonctionner ! *Génial !! ^^*
Je vais essayer de l'adapter avec ce que je veux faire.
 
Merci beaucoup et bonne journée.
 
Melie

n°2140351
melie26
Posté le 03-05-2012 à 10:54:44  profilanswer
 

Alors, je suis dessus depuis ce matin et j'arrive à peu près à trouver comment ça fonctionne et à reproduire le code.
 
Seul petit truc qui bloque, je ne comprends pas ce que signifie ce passage et donc je ne peux pas le modifier sans produire une erreur :
 
    sPlageDonnees = sNomFeuilleDatas & "!R1C1:R" & LastRow & "C3"
 
je comprends que l'on délimite la plage de données qui servira à créer le TCD mais que signifie !R1C1:R et C3 ?
 
Mon propre tableau comble les colonnes de A à O et le nombre de ligne est indéterminée.  
Quelle modification dois-je faire pour que ça colle ?
 
merci d'avance !!!

n°2140361
melie26
Posté le 03-05-2012 à 11:11:07  profilanswer
 

Oh cette fois, je crois que j'ai trouvé toute seule !
 
le C3 correspond à trois colonnes. J'ai mis C4 et cela a inclus la colonne D dans mon TCD.
 
Dites-moi si je me plante ^^^
 

n°2140399
kiki29
Posté le 03-05-2012 à 12:31:13  profilanswer
 

Salut, RC pour Row Column donc pour O cela devrait donner 15
LastRow est calculée plus haut, sur la colonne A :

LastRow = ShDatas.Range("A" & Rows.Count).End(xlUp).Row


Message édité par kiki29 le 03-05-2012 à 12:38:06

---------------
Myanmar 90/91 : http://gadaud.gerard.free.fr/publi [...] index.html
n°2140435
melie26
Posté le 03-05-2012 à 14:08:46  profilanswer
 

Oui merci ça marche du tonnerre !!!
 

n°2140453
melie26
Posté le 03-05-2012 à 14:48:52  profilanswer
 

Ah, petit hic ! Dernier j'espère !
 
La macro fonctionne parfaitement sur le dossier où elle est enregistrée.
Par contre quand je veux l'exécuter sur un autre classeur, ça plante.
 
Il faudrait que je fasse un copier/coller de la macro dans tous les classeurs où je veux l'utiliser.
 
Et mes autres macros fonctionnent sur tous les classeurs.
 
Que faut-il changer pour que la macro fonctionne sur tous les classeurs ouverts ?
 
Merci d'avance, j'espère que j'arrêterai de vous embêter après ça !

mood
Publicité
Posté le 03-05-2012 à 14:48:52  profilanswer
 

n°2251509
spill38
Posté le 23-02-2015 à 15:07:36  profilanswer
 

Bonjour Melie,  
 
Je dois effectuer la même opération que toi et j'ai également un souci au niveau de ma macro pour créer mon tableau croisé dynamique.  
Il semble que tu ai résolu ton problème grâce au site cjoint mais le lien n'est aujourd'hui plus disponible... Aurai-tu une piste ou même le code pour m'aider? :)
 
Merci,
Quentin


Aller à :
Ajouter une réponse
  FORUM HardWare.fr
  Programmation
  VB/VBA/VBS

  Macro tableau croisé dynamique

 

Sujets relatifs
Excel ( macro pour pense bête) RESOLUProblème largeur colonne d'un tableau PHP/CSS
[AIDE] EXT-JS 4 : filtres sur tableauMacro excel avec globbing
Excel ( macro pour un pourcentage avec boucle) resoluenregistrer des actions et en faire une "macro"
Macro VBA Actualisation automatique Formule mensuellemacro tableau croisé dynamique
Macro Excel date et tableau croisé dynamiqueMacro tableau croisé dynamique en vb
Plus de sujets relatifs à : Macro tableau croisé dynamique


Copyright © 1997-2022 Hardware.fr SARL (Signaler un contenu illicite / Données personnelles) / Groupe LDLC / Shop HFR