Automatiser l'injection de graphiques comme bulles via macro?

Bonjour,

Dans le cadre de mon travail je réalise en ce moment un fichier automatisé comportant de nombreux graphiques en fonction d'une plage de données assez restreinte.
Le dernier graphique que j'ai à automatiser est un graphique composite que je réalise en injectant des graphiques en secteurs comme bulles dans un graphique à bulles que je génères en parallèle, via la copie en tant qu'image et un simple coller sur la bulle initiale.

J'ai essayé plusieurs fois sans succès d'automatiser ce processus : par une macro ou j'enregistre mes actions (le premier graphique en secteur est collé en gros format en plein milieu du graphe), par Visual Basic via les fonctions Paste ou PasteSpecial dans mon ChartObject (rien ne se passe).

Je commence à douter de la faisabilité de mon idée, et mes recherches sur internet ne m'ont pas éclairé sur ce sujet (je n'ai pas trouvé de situations analogue en ligne). Je ne suis que débutant avec Visual Basic, peut-être qu'ici des gens plus expérimentés pourront me renseigner afin que je puisses m'en sortir ou arrêter de perdre mon temps et passer à autre chose?

J'ai aussi une autre question qui ne mérites pas un thread : je génères des étiquettes en plusieurs lignes (nom, somme, pourcentage). Je souhaiterais mettre le pourcentage dans un certain format (rouge si négatif, vert si positif) tout en gardant le reste de mon contenu en noir mais je n'arrive pas à agir de façon séparée sur mes étiquettes : toute modification les modifie dans leur globalité. Y'aurait-il une astuce en visual basic pour palier à ce problème?

En vous remerciant d'avoir pris le temps de me lire, bonne journée à tous.

PS: j'ai mis en pièce jointe un fichier qui illustre ma problématique principale.

16classeurtest.xlsm (35.36 Ko)

Information intéressante : quand j'essaie le code suivant :

ActiveSheet.ChartObjects("Test2").CopyPicture
ActiveSheet.ChartObjects("Test").FullSeriesCollection(1).Points(1).Select
ActiveChart.Paste

Excel me renvoie que la méthode de la ligne 1 n'est pas gérée par l'object, alors que CopyPicture fonctionne normalement avec les ChartObjects?

Bonjour Sbvn2k97,

Information intéressante : quand j'essaie le code suivant :

ActiveSheet.ChartObjects("Test2").CopyPicture

...

Excel me renvoie que la méthode de la ligne 1 n'est pas gérée par l'object, alors que CopyPicture fonctionne normalement avec les ChartObjects?

Ne pas confondre CharObjects qui désigne la collection d'objets et Chart qui cible une partie de cette collection. Et dont ChartObjets est le parent.

J'ai déjà eu cette confusion dans un code avec aboutissement à une erreur.

Par exemple on peut faire Range(adresse).CopyPicture mais pas Worksheet.CopyPicture

Je télécharge ton fichier pour voir.

A suivre...

Bonjour Sbvn2k97,

En retour ton fichier modifié pour ton besoin. Voir notes en rouge sur la 2ième feuille.

Il suffit d'un clic gauche sur le bouton gris.

Eventuellement agrandir le graphique comme souhaité.

Bons tests, bonne continuation.

Rechercher des sujets similaires à "automatiser injection graphiques comme bulles via macro"