PtitGenie7
Messages postés10Date d'inscriptionvendredi 25 mai 2007StatutMembreDernière intervention 6 avril 2010
-
20 juin 2007 à 10:29
kalobit
Messages postés169Date d'inscriptionmardi 15 juillet 2003StatutMembreDernière intervention 7 avril 2008
-
23 juin 2007 à 11:02
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.
kalobit
Messages postés169Date d'inscriptionmardi 15 juillet 2003StatutMembreDernière intervention 7 avril 20082 20 juin 2007 à 16:30
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
PtitGenie7
Messages postés10Date d'inscriptionvendredi 25 mai 2007StatutMembreDernière intervention 6 avril 2010 21 juin 2007 à 14:20
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 :)
Vous n’avez pas trouvé la réponse que vous recherchez ?
PtitGenie7
Messages postés10Date d'inscriptionvendredi 25 mai 2007StatutMembreDernière intervention 6 avril 2010 21 juin 2007 à 14:32
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?
kalobit
Messages postés169Date d'inscriptionmardi 15 juillet 2003StatutMembreDernière intervention 7 avril 20082 23 juin 2007 à 11:02
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