Problème Marco Excel pour (TCD+Graphique 3D) en fonction d'une table variable

SERIEUXETCOOL

XLDnaute Occasionnel
Bonsoir tout le monde,

J'ai un petit problème de programmation en vba pour une macro sous Excel.

Voila mon souci :

Je dispose d'un code qui me permet de créer une table dont le nombre de colonnes est toujours le même (3 colonnes) et dont le nombre de lignes est variable en fonction de ce que l'utilisateur importe comme données (de une ligne à plusieurs milliers).

J'aimerais poursuivre le développement de ce code en appliquant un tableau croisé dynamique à la table puis afficher un graphe de surface 3D en fonction des données de la table.

En utilisant le mode enregistrement de macro pas à pas, je parviens à extraire une séquence de code qui me conviens. Le souci étant que le code ne fonctionne qu'avec une seule table et n'est pas dynamique. Donc si l'utilisateur entre une table (3 colonnes; 10 lignes) sa fonctionne mais dès lors que l'utilisateur ferme le fichier Excel et relance la macro avec une table (3 colonnes ; 300 lignes) sa ne fonctionne plus.

L'erreur est la suivante :

Erreur d'exécution '1004':
Le nom du champ dynamique n'est pas valide. Pour créer un tableau croisé dynamique, vous devez utiliser des données sous forme de liste avec étiquettes de colonnes. Si vous changez le nom d'un champ dynamique, il vous faut taper un nouveau nom pour le champ.

La ligne défectueuse est la suivante :

ActiveWorkbook.PivotCaches.Add(SourceType:=xlDatab ase, SourceData:= _
"Feuil2!R1C1:R5191C3").CreatePivotTable TableDestination:="", TableName:= _
"Tableau croisé dynamique2"

Le problème viens de "Feuil2!R1C1:R5191C3" je pense. Mais je ne sais pas comment lui forcer à prendre toujours la même référence de feuille ou ma table se créer.


J'ai joins en pièce jointe une archive qui contient 3 documents :

-Un premier fichier .dat qui contient une première série de données
-Un deuxième fichier .dat qui contient une autre série de données
-Un fichier .txt qui contient le code vba pour faire tourner la macro

Pour rappel, voila ce que la marco permet de faire sur les deux fichiers .dat :

Ce code permet d'importer les données contenues dans un fichier .dat et de les coller sur une feuille Excel. On peut ouvrir plusieurs Fichiers .dat et les données sont collées les unes à la suite des autres (fonction concaténer) sur la même feuille Excel.
De plus la marco permet à l'utilisateur de remplir une colonne par une valeur particulière et ce pour chaque fichier importé. Pour conclure, lors de l'import des données, on supprime un certains de nombre de lignes et de colones qui sont jugées inutiles. C'est la mise en forme de la table.

L'opération qu'il me reste à effectuer une fois tous les fichiers importés et ma table bien mise en forme, est un tableau croisé dynamique puis un graphe 3D (de surface) qui fonctionne pour chaque table que l'utilisateur créer (3 colonnes fixes et un nombre de lignes variable)



Merci à tous ceux qui pourront m'éclairer sur ce problème.

Cordialement,

André
 

Pièces jointes

  • ARCHIVE COMPLETE.zip
    26.2 KB · Affichages: 31

SERIEUXETCOOL

XLDnaute Occasionnel
Re : Problème Marco Excel pour (TCD+Graphique 3D) en fonction d'une table variable

Vraiment personne pour apporter ses lumières sur ce problème ???

Je suis persuadé que sa se fait très facilement en vba. Mais j'avoue ne pas y parvenir depuis hier matin... J'ai un peu épuisé toutes mes ressources la.

Merci à ceux qui me redonnerons de l'inspiration.

André
 

Discussions similaires

Statistiques des forums

Discussions
290 834
Messages
1 910 792
Membres
176 869
dernier inscrit
veusavoir
Haut Bas