VBA Excel - Fond de page

Résolu
Signaler
Messages postés
10
Date d'inscription
vendredi 25 mai 2007
Statut
Membre
Dernière intervention
6 avril 2010
-
Messages postés
169
Date d'inscription
mardi 15 juillet 2003
Statut
Membre
Dernière intervention
7 avril 2008
-
Bonjour!

Je recherche en ce moment le moyen (macro), lors de la création d'une nouvelle page, de faire en sorte que cette dernière prenne le même fond de page qu'une page modèle.

Je cherche à faire cela car jusqu'à présent ma macro assignait comme fond à cette nouvelle page l'image qui se trouvait dans tel dossier etc.
Mais ainsi, il est forcément impossible de déplacer le fichier Excel et de l'éxécuter sur un autre PC sans tomber sur un "'image introuvable".

J'avais aussi pensé à placer cette image sur une page cachée, mais là encore je n'sais pas comment lui "dire" de prendre cette image à telle page comme fond de telle page.

Merci d'avance pour votre aide :)

7 réponses

Messages postés
169
Date d'inscription
mardi 15 juillet 2003
Statut
Membre
Dernière intervention
7 avril 2008
2
Salut,

As tu essayé en faisant une copie de la page modèle qui contient le fond ?

Sinon, il y a moyen de stocker l'image dans un userform pour l'appliquer en fond sur une feuille.

Le principe est simple et doit pouvoir être amélioré

Sur un userform, on place un control image.
On charge l'image dans le control.

ensuite, on place ce code vite fait dans un module et on appelle la procédure :
Sub test_BackGround()

Dim MyPict As stdole.IPictureDisp
Set MyPict = UserForm1.Image1.Picture

'on enregistre en dur l'image
stdole.SavePicture MyPict, "c:\test.backgroundforexcel"

'on la place en fond d'écran
ActiveSheet.SetBackgroundPicture "c:\test.backgroundforexcel"

'on supprime l'image du HDD
Kill "c:\test.backgroundforexcel"
End Sub

et voilà. Pour être complet, on remplacera le control image par un imagelist pour avoir une biliothèque de fond et on rajoute une petite gestion d'erreur et hop.

@+++

[mailto:K@lobit K@lobit] < Ne pas clicker ici
Mon Site < Mais ici
Messages postés
7393
Date d'inscription
mercredi 23 avril 2003
Statut
Membre
Dernière intervention
6 avril 2012
58
Salut,
Qu'entends tu par nouvelle page? c'est uen feuille excel?

@+: Ju£i?n
Pensez: Réponse acceptée
Messages postés
10
Date d'inscription
vendredi 25 mai 2007
Statut
Membre
Dernière intervention
6 avril 2010

Oui pardon, nouvelle feuille ^^
Messages postés
10
Date d'inscription
vendredi 25 mai 2007
Statut
Membre
Dernière intervention
6 avril 2010

Hello!

Merci pour vos indications.

J'ai en effet testé la méthode "simple" qui consiste à simplement copier une feuille modèle, mais il y a certains problèmes liés à l'affichage, le fond n'est plus en mosaïque sur la nouvelle feuille etc. Bref!

Je vais donc tester la méthode userform, même si je n'ai jamais touché à ça jusqu'à présent lol J'ignore même ce que c'est, mais je vais tenter de trouver o_O

J'vous tient au courant :D

Mirci :)
Messages postés
10
Date d'inscription
vendredi 25 mai 2007
Statut
Membre
Dernière intervention
6 avril 2010

Re...

J'ai réussi à créer un control image, à y stocker mon image fond, puis j'ai copié le code que tu m'as indiqué dans le module (j'ai du modifier le nom Image1 par ImageList1) mais j'ai une erreur sur le ".Picture".
A quoi cela correspond?
Messages postés
10
Date d'inscription
vendredi 25 mai 2007
Statut
Membre
Dernière intervention
6 avril 2010

Troisème et dernier message! lol J'ai corrigé la syntaxe, c'était
Set MyPict = UserForm1.ImageList1.ListImages(1).Picture

Bref...

Merci beaucoup c'est parfait :)
Messages postés
169
Date d'inscription
mardi 15 juillet 2003
Statut
Membre
Dernière intervention
7 avril 2008
2
Cool,

Content d'avoir pu t'aider.

Juste en complément, tu peux lancer ta procédure de mise en place de l'image depuis cet évènement dans l'objet ThisWorkbook :

Private Sub Workbook_NewSheet(ByVal Sh As Object)

Dim MyPict As stdole.IPictureDisp

   Set MyPict = UserForm1.Imagelist1.listimages(1).Picture
   stdole.SavePicture MyPict, "c:\test.backgroundforexcel"
   Sh.SetBackgroundPicture "c:\test.backgroundforexcel"
   Kill "c:\test.backgroundforexcel"
End Sub

Pour info, j'ai pu remarquer que l'extension de fichier utilisée lors du savepicture ne change rien, donc pas de problème de format d'image avec cette méthode.

voilà @+++
[mailto:K@lobit K@lobit] < Ne pas clicker ici
Mon Site < Mais ici