Copier un Graphique croisé dynamique et le vérouiller

zaiphyr

XLDnaute Nouveau
Bonjour à tous,

Je suis toujours sur mon projet et me voila confronté de nouveau à un soucis.

Voila l'explication simplifiée:

Dans une boucle For, je crée un tableau croisé dynamique dont la plage de page change à chaque valeur de i. Je crée ensuite un graphique croisé associé. Je le copie et souhaiterai verouiller ce graphique pour empecher la MAJ lorsque i va changer.

Au final, je souhaiterai obtenir i graphiques à partir d'un seul tableau croisé.

Je sèche désespérément dessus depuis un petit bout de temps.

Je vous remercie par avance.

Zaiphyr
 

Pierrot93

XLDnaute Barbatruc
Re : Copier un Graphique croisé dynamique et le vérouiller

Bonjour,

regarde le code ci-dessous, devrait pouvoir t'aider, transforme le graph en image, et place cette dernière sur la feuille. Tu devrais pouvoir adapter ce code facilement dans ta boucle...

Code:
Dim c As ChartObject, n As String, i As Object
Set c = ActiveSheet.ChartObjects(1)
With c
    n = ThisWorkbook.Path & "\" & .Parent.Name & " " & .Name & ".gif"
    .Chart.Export n, "GIF"
End With
Set i = ActiveSheet.Pictures.Insert(n)
i.Top = Range("G20").Top
i.Left = Range("G20").Left
Kill n

bon après midi
@+
 

zaiphyr

XLDnaute Nouveau
Re : Copier un Graphique croisé dynamique et le vérouiller

Bonsoir, merci pour ta réponse, alors j'ai fini de coder ce que je voulais et la macro tourne sans problème... au début

Je m'explique le but de la macro est grâce à une boucle For de copier une feuille remplie de tableaux croisés dynamiques, quand i change, la plage de champ commune aux TcD change aussi.

i varie de 1 à 100 environ. Au début tout marche sans soucis mais vers i=90 il plante aver une erreur 1004 si je me souviens plus.

En relancant la macro j'ai un autre message d'erreur mais je m'en souviens plus.

Une idée sur l'origine du problème?

Je te remercie d'avance !
 

Pierrot93

XLDnaute Barbatruc
Re : Copier un Graphique croisé dynamique et le vérouiller

Bonjour,

comme ca vois pas trop.... peut être plus d' "pivotitem" à afficher dans le cham "page" , tu es à la fin de la liste des éléments disponibles... Sans voir le fichier et le code utilisé, difficile de t'en dire plus...

bonne journée
@
 

zaiphyr

XLDnaute Nouveau
Re : Copier un Graphique croisé dynamique et le vérouiller

Je ne pourrais peut etre pas montrer étant donné qu'il est très très long et que j'ai une close de confidentialité avec mon entreprise.

Ce que je ne comprends pas c'est que la feuille que je copie est identique du début à la fin les modifications se font sur la feuille copier.

Pour info, le fichier fait presque 65Mo lorsque je l'enregistre quand il a bugger, cela pourrait provenir de cela?
 

zaiphyr

XLDnaute Nouveau
Re : Copier un Graphique croisé dynamique et le vérouiller

Bonsoir à tous,

après recherches, j'ai remarqué que le processus Excel lors de l'activation de la macro atteint presque 300Mo de la mémoire dans le gestionnaire de processus. Je pense que ca doit provenir de la, car quand j'ai désactivé l'affichage lors de la macro, je suis aller un peu plus loin dans la boucle For.

Dans chaque onglet, j'utilise deux fois le programme donnée par Pierrot pour copier deux graphiques, ce qui fait au total presque 200 images en GIF.

Avez vous une idée pour diminuer le pourcentage de la mémoire utilisée?

J'ai essayé de convertir les fichiers en Jpeg mais j'ai pas l'impression que ca marche, ca n'a rien changé lors de la taille de la mémoire utilisée.

Je vous remercie d'avance !
 

Pierrot93

XLDnaute Barbatruc
Re : Copier un Graphique croisé dynamique et le vérouiller

Bonjour,

A tout hasard, essaye peut être de placer dans ta boucle des enregistrements intermédiares de ton classeur, peut être tous les 20 graphs, à voir si ccela peut solutionner ton problème...

bonne journée
@+
 

zaiphyr

XLDnaute Nouveau
Re : Copier un Graphique croisé dynamique et le vérouiller

Bonjour Pierrot93,

j'ai essayé d'enregistrer périodiquement le fichier mais cela n'a rien changé. En enregistrant, la mémoire utilisée par Excel ne diminue pas, seul le fait de fermer totalement Excel permet de la redescendre à un niveau correct.

Je suis entrain de chercher un peu ailleurs une méthode pour vider la mémoire vive (j'entends par la la mémoire prise par le processus Excel dans le gestionnaire de processus).

En tout cas si quelqu'un a une idée qu'il n'hésite pas :) ! Je piétine un peu depuis quelques jours et je dois présenter mon programme dans quelques temps...

Merci d'avance en tout cas à tous ceux qui peuvent m'aider :)
 
Dernière édition:

Discussions similaires

Statistiques des forums

Discussions
312 488
Messages
2 088 860
Membres
103 978
dernier inscrit
bderradji