Macro tableau croisé dynamique

Macro tableau croisé dynamique - VB/VBA/VBS - Programmation

Marsh Posté le 02-05-2012 à 10:11:58    

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:

Reply

Marsh Posté le 02-05-2012 à 10:11:58   

Reply

Marsh Posté le 02-05-2012 à 15:26:46    

Reply

Marsh Posté le 02-05-2012 à 16:22:19    

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 !

Reply

Marsh Posté le 02-05-2012 à 16:51:51    

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
Reply

Marsh Posté le 03-05-2012 à 08:59:58    

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

Reply

Marsh Posté le 03-05-2012 à 10:54:44    

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 !!!

Reply

Marsh Posté le 03-05-2012 à 11:11:07    

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 ^^^
 

Reply

Marsh Posté le 03-05-2012 à 12:31:13    

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
Reply

Marsh Posté le 03-05-2012 à 14:08:46    

Oui merci ça marche du tonnerre !!!
 

Reply

Marsh Posté le 03-05-2012 à 14:48:52    

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 !

Reply

Marsh Posté le 03-05-2012 à 14:48:52   

Reply

Marsh Posté le 23-02-2015 à 15:07:36    

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

Reply

Sujets relatifs:

Leave a Replay

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