Générer fichier image papier peint du bureau à partir graphique Excel

ED31

XLDnaute Junior
Bonjour,

Je souhaite actualiser l'image choisie comme papier peint du Bureau de windows
en fonction d'un graphique présent dans une feuille EXCEL.

La macro ouvrirait automatiquement le fichier Excel chaque jour et générerait un fichier JPEG (ou autre format) à partir d'un graphe EXCEL qui s'actualiserait automatiquement (car lié à une base de données).

Je ne sais pas si cela est possible, en une opération automatique ou plusieurs étapes.

Un "widget" quoi !

Merci d'avance :)
 

NezQuiCoule

XLDnaute Occasionnel
Re : Générer fichier image papier peint du bureau à partir graphique Excel

Bonjour,

C'est un sujet intéressant ! Bien que j'ai quelques idées à soumettre pour parvenir à ce résultat, je remarque déjà au moins une chose qui risque de bloquer :

ED31 à dit:
La macro ouvrirait automatiquement le fichier Excel chaque jour

La macro étant contenu dans le fichier Excel, elle ne peut pas s'exécuter tant que le fichier lui-même n'est pas ouvert :p
Il faudrait donc soit recourir au VBScript, un fichier en .vbs qui se lancerait automatiquement au démarrage, soit lancer le fichier soi-même et se passer de cette "automatisation".

Des pistes à envisager :

- Créer une image qu'on appelle Chart.jpg, que l'on place dans un dossier fixe de l'ordinateur, par exemple : C:\Users\Public\Pictures\Sample Pictures\Chart.jpg et l'affecter en tant que fond d'écran unique
- Créer une macro qui va exporter le graphique en tant qu'image pour remplacer Chart.jpg, ce qui va en théorie changer le fond d'écran
- Si celui-ci ne se change pas immédiatement (image mise en cache par Windows) il faudrait pouvoir exécuter une commande cmd qui va remplacer l'image ou l'actualiser
- La macro qui va exporter l'image doit être placée dans l'event ThisWorkbook -> Workbook_Open() pour qu'elle se lance à l'ouverture du fichier Excel, et elle doit d'abord actualiser le graphique avant de l'exporter (logique !)

Voilà pour ma contribution, je recherche des informations supplémentaires dans la journée ;)
 
Dernière édition:

NezQuiCoule

XLDnaute Occasionnel
Re : Générer fichier image papier peint du bureau à partir graphique Excel

En recherchant sur le net j'ai trouvé un script *.bat permettant de changer le fond d'écran et d'actualiser l'affichage. À mettre dans un nouveau fichier texte et le renommer en .bat, puis exécuter d'abord normalement, et après en tant qu'administrateur si ça ne marche pas.

Code:
@echo off

Set bmpfile=C:\Users\Public\Pictures\Sample Pictures\Desert.jpg
reg add "HKCU\Control Panel\Desktop" /v wallpaper /d "%bmpfile%" /f >nul
%Windir%\System32\rundll32.exe user32.dll,UpdatePerUserSystemParameters ,1,1
pause

Bien sûr il faut penser à remplacer Desert.jpg par Chart.jpg, c'était pour que je puisse tester :)
 

ED31

XLDnaute Junior
Re : Générer fichier image papier peint du bureau à partir graphique Excel

Merci Nezquicoule pour ta réponse rapide et structurée.

Mais je ne vois pas comment générer l'image à partir du graphique Excel autrement que de la copier dans Paint ou autre.. à moins qu'il y ait des add-in disponibles pour ce faire.

Peut-on lancer un bat automatiquement dès l'ouverture de Windows ... pour faire apparaître le Bouddha qui annonce le nombre de jours avant la fin du monde, calculé dans Excel (non, là je rigole...).


Merci pour tes cogitations.
 

NezQuiCoule

XLDnaute Occasionnel
Re : Générer fichier image papier peint du bureau à partir graphique Excel

En cherchant un peu sur le net, j'ai trouvé ça :

Code:
Sub ExportChart()
    Dim objChrt As ChartObject
    Dim myChart As Chart

    Set objChrt = Sheets("Graphs").ChartObjects(3) 'À adapter en fonction du nom de la feuille et du graphique
    Set myChart = objChrt.Chart

    myFileName = "Chart.jpg"

    On Error Resume Next
    Kill "C:\Users\Public\Pictures\Sample Pictures\Chart.jpg"
    On Error GoTo 0

    myChart.Export Filename:="C:\Users\Public\Pictures\Sample Pictures\Desert.jpg", Filtername:="JPG"

End Sub

En modifiant comme je l'ai mis dans les commentaire la feuille et le graphique, ça devrait fonctionner. :)

Pour le fichier .bat au démarrage ça ne sera pas utile. Le fichier bat va être exécuté à partir de la macro Excel ici, avec la fonction "Shell". En fait il va changer le fond d'écran une fois l'image créée.

En revanche, un autre fichier .bat (ou .vbs) qui va ouvrir le fichier Excel au démarrage de Windows, ça c'est réalisable, je pense qu'il suffit de chercher un peu sur ce forum ou d'autres sources, je chercherai de mon côté également ! :cool:
 

Membres actuellement en ligne

Aucun membre en ligne actuellement.

Statistiques des forums

Discussions
312 069
Messages
2 085 040
Membres
102 763
dernier inscrit
NICO26