Exporter graphique sans fond

Muad

XLDnaute Nouveau
Salut tous le monde,

Je cherche, en vain, à exporter plusieurs graphiques de manière rapide, sans fond blanc et donc transparent.

L'idée, ce serait de mettre à jour une infographie sous illustrator ou photoshop avec les graphiques que j'ai réalisés sous excel.
Pour cela j'ai pensé à utiliser un logiciel de macro sous windows qui copie et colle les graphiques dans illustrator ou photoshop.
Seulement, lorsque je copie et que je colle un graphique, il y a le fond blanc présent. J'ai pourtant un fond transparent sur excel.

Seul inconvénient : il faut que ce soit une manipulation rapide, car le fichier excel va être modifié en continue...

Je m'en remet donc à vous, si quelqu’un a une idée, je vous remercie par avance.
 

Pièces jointes

  • exemple1.xlsx
    182.9 KB · Affichages: 83
  • exemple1.xlsx
    182.9 KB · Affichages: 94
  • exemple1.xlsx
    182.9 KB · Affichages: 81

Muad

XLDnaute Nouveau
Re : Exporter graphique sans fond

Salut,

Excel 2013, le message exacte est : erreur d’exécution "1004", erreur définie par l'application ou par l'objet.
Ensuite je lance le débogueur et le code ci-dessus est en jaune.

J'ai pourtant lancer nettoyage avant.

Cette solution je ne pourrai de toute façon pas l'utiliser puisque le fichier est alimenter en continue et rapidement, donc il me faut une seule macro, sur internet j'ai trouver un logiciel de macro windows : Winparrot, coupler avec ton premier code qui exporte les graphiques sans fond je devrait pouvoir y arriver en utilisant une seul macro, ma macro donnerai en gros :

- lancement de la macro : exporter graphique de excel, importation dans illustrator, revenir dans excel copier les formes auto et images, et coller dans illustrator
 

Staple1600

XLDnaute Barbatruc
Re : Exporter graphique sans fond

Re

Muad
Pour illustrer mon NB de mon message précédent.
(Test OK avec Excel 2013)
A lancer sur un classeur enregistré ( à cause du ActiveWorkbook.Path)
VB:
Sub testEXPORT_IMGS()
'Le premier paramètre est le nom du fichier d'export
'Le second le code name de la feuille
' on peut aussi aussi écrire Sheets("Feuil2")
'exportHTML "01TESTExport2", Sheets("Feuil2")
exportHTML "01TESTExport1", Feuil2
End Sub
Code:
Private Sub exportHTML(NomFic As String, Feuille As Worksheet)
Dim fname$, maskPict$
If Len(ActiveWorkbook.Path) > 0 Then
fname = ActiveWorkbook.Path & "\" & NomFic & ".htm"
End If
maskPict = Split(Feuille.Parent.Name, ".")(0) & "_"
With ActiveWorkbook.PublishObjects.Add(xlSourceSheet, _
        fname, Feuille.Name, "", xlHtmlStatic, maskPict, _
        "Test")
        .Publish (True)
        .AutoRepublish = False
End With
End Sub
 

Muad

XLDnaute Nouveau
Re : Exporter graphique sans fond

Ça fonctionne très bien, je vais tester cela en situation réel mais je pense pas que je vais pouvoir automatisé l'importation des images, sauf si c'est dernière garde le même nom à chaque exportation.
Je vais tester cette solution.

Merci beaucoup de ton aide

Modif1 : avec ce code les images, formes et graph sont exportées en double
Modif2 : peut-on choisir un choisir de base pour l'exportation ?
 

Staple1600

XLDnaute Barbatruc
Re : Exporter graphique sans fond

Re

Muad
Donc désormais ceci n'est plus de mise
Puis-je te demander des modifications stp ? Il faudrait que je puisse le déclencher seulement sur commande et qu'il exporte le graphique sélectionné ou les graphique sélectionnés. Est-ce possible ?
Car si il ne s'agit plus d'exporter uniquement les objets sélectionnés, on a fait mummuse depuis le message #17 en vain...:rolleyes:

Modif1 : avec ce code les images, formes et graph sont exportées en double
G..gle est ton ami...
Modif2 : peut-on choisir un format de base pour l'exportation ?
G..gle est toujours ton ami...
 
Dernière édition:

Muad

XLDnaute Nouveau
Re : Exporter graphique sans fond

Dans l'idéal c'est ce que je voulais pour que ce soit plus rapide, mais quand une situation est bloqué j'essaye d'autres propositions/solutions.

Avec ce dernier code si c'est les exportations portent le même nom à chaque fois et qu'elles sont toujours dans le même dossier je pourrai récupérer automatiquement celle que je souhaite avec une macro pour chaque groupe d'image...

La modif 2 c'est une erreur de frappe, je voulais dire "peut-on choisir un dossier de base pour l'exportation ?"


Merci du temps que tu m'as consacré, bon fin de weekend ;)
 

Muad

XLDnaute Nouveau
Re : Exporter graphique sans fond

Seulement quand on y connait rien du tout en code, on ne sait pas ce que l'on doit chercher. Et même si je trouve je sais pas ou il faut placer les morceaux de code.

Par exemple dans ce que tu me donne comme indication :
If Len(ActiveWorkbook.Path) > 0 Then
fname = ActiveWorkbook.Path & "\" & NomFic & ".htm"
End If

Je comprend pas du tout ou il faut que le chemin de mon dossier ou je veux enregistrer.
 

Staple1600

XLDnaute Barbatruc
Re : Exporter graphique sans fond

Re

Donc une modification du code précédent
Il faut évidement que DossierExport soit un dossier qui existe sur le disque dur avant de lancer la macro
(ici dans cet exemple DossierExport=C:\Temp\ExportIMGS)

Test OK sur mon PC
(j'ai ajouté un petit bonus en plus au niveau des noms des images)
Code:
Sub testExportII()
exportHTML Feuil2
End Sub
Code:
Sub exportHTML(Feuille As Worksheet, Optional DossierExport As String = "C:\Temp\ExportIMGS\")
Dim NomXL$, fname$, maskPict$
NomXL = Split(Feuille.Parent.Name, ".")(0)
fname = DossierExport & NomXL & ".htm"
maskPict = Format(Date, """Exportdu_""ddmmyyyy_")
With ActiveWorkbook.PublishObjects.Add(xlSourceSheet, _
        fname, Feuille.Name, "", xlHtmlStatic, maskPict, _
        "Test")
        .Publish (True)
        .AutoRepublish = False
End With
End Sub

NB: Le tout n'est pas de chercher, c'est aussi de pendre le temps de lire et tester ce que l'on trouve ...:rolleyes:
Simplement prendre le temps d'être curieux et pugnace en somme, non ?
 

Muad

XLDnaute Nouveau
Re : Exporter graphique sans fond

Re,

Cela fonctionne bien, j'ai juste modifié le nom d'exportation pour qu'il reste le même.
J'ai plus de 400 graphiques donc j’espère que ça sera pas trop long l'exportation en situation réel. Sinon je garde le premier code au cas ou.

Merci de ton aide,
Bon fin de weekend
A+
 

mapomme

XLDnaute Barbatruc
Supporter XLD
Re : Exporter graphique sans fond

Bonsoir Muad, Staple1600,

Pendant que je m'échinais à sortir quelque chose d'à peu près correct, voila ti pas que Staple1600 (que je salue :)) nous écrit une dizaine d'élégantes lignes de code :rolleyes: pour faire mieux que mes n+1 lignes :mad:. Je m'incline bien bas et reste bouche bée. Voila un code qui va rejoindre la boîte à merveille. Je publie quand même mon code bien qu'il soit tordu et verbeux à souhait.

J'ai bien entendu testé le code de Staple1600. Juste une petite chose (c'est sans doute évident mais je dois fatiguer un peu): sur mon excel, j'ai des images extraites en double. Je joins mon fichier avec le code de Staple1600.
 

Pièces jointes

  • Muad-Export-v3a (mapomme).xlsm
    120.4 KB · Affichages: 29
  • Muad-Export-v3a (Staple1600).xlsm
    114.9 KB · Affichages: 27

Staple1600

XLDnaute Barbatruc
Re : Exporter graphique sans fond

Bonsoir à tous

mapomme
J'ai bien entendu testé le code de Staple1600.
Juste une petite chose (c'est sans doute évident mais je dois fatiguer un peu): sur mon excel, j'ai des images extraites en double.
Si tu fais la manip manuellement, tu auras aussi deux exemplaires d'images
Et tu remarqueras que la taille des images n'est pas identique.
(On dirait qu'il s'agit d'une miniature et d'une image taille réelle, non ?)

Sinon, une petite fioriture, je vous laisse découvrir où se situe la différence et quel effet cela produit.
Code:
Sub testExportIII()
exportHTMLII Feuil1
End Sub
Code:
Sub exportHTMLII(Feuille As Worksheet, Optional DossierExport As String = "C:\Temp\ExportIMGS\")
Dim NomXL$, fname$, maskPict$
ActiveWorkbook.WebOptions.UseLongFileNames = False
NomXL = Split(Feuille.Parent.Name, ".")(0)
fname = DossierExport & NomXL & ".htm"
With ActiveWorkbook.PublishObjects.Add(xlSourceSheet, _
        fname, Feuille.Name, "", xlHtmlStatic, "", "")
        .Publish (True)
        .AutoRepublish = False
End With
End Sub
 

Discussions similaires

Réponses
3
Affichages
905

Statistiques des forums

Discussions
312 488
Messages
2 088 866
Membres
103 979
dernier inscrit
imed