Garder en memoire image dans une userform

Bonjour,

j'ai un petit souci avec une macro.
En fait je voudrais changer l'image de fond d'une userform a partir d'un dossier bien percis.
J'utilise une macro qui me réalise cette manipulation mais une fois que je ferme le fichier excel et que je l'ouvre a nouveau l'image de fond de cette userform est redevenu dans son image de depart. la derniere image changée n'est pas gardée en memoire

Pouvez m'aider a réaliser cette mise en memoire pour qu'a l'ouverture du fichier la dernière image changée soit la bonne

merci d'avance

Sub wallpapernouvellesortie()

Dim wbk1 As Workbook
Dim images As String

Set wbk1 = ThisWorkbook

images = UserForm4.ComboBox2.Value

UserForm1.Picture = LoadPicture("D:\Roger\Dossier personnel\Vélo\Fonds d'ecran\" & images & ".jpg")
MsgBox ("Le wallpaper de la fenêtre NOUVELLE DISTANCE a été changé par le wallpaper" & images & ".jpg")
wbk1.Save

End Sub
Configuration: Windows XP
EXCEL 2003

3 réponses

  1. pas de reponse

    up s'il vous plait je suis depuis toute a l'heure et j'ai toujours pas trouvé
    0
    1. Salut,
      Petite idée toute bête (à toi de voir)

      Si j'ai bien compris ton problème, tu lance ton appli, tu change le fond de ton userform1 avec un fichier XXXX.jpg, tu sauvegarde & quitte et au démarrage de nouveau userform toujours aussi vilaine.

      Voilà mon idée, tout d'abord crée un fichier fondinit.jpg avec une image dedans (n'importe quoi tu verras après) que tu range ou tu veux par exemple : c:\monappli\fondinit.jpg

      dans ton code tu vas rajouter une sub de démarrage de ton userform qui va charger de suite ton image
      tu travaille ensuite sur ton appli et si tu changes le fond tu remplace le fichier fondinit.jpg par le nouveau
      Que penses-tu de mon idée ?

      Cela donnerait un truc du genre

      [code]
      sub form_load()
      UserForm1.Picture = LoadPicture("c:\monappli\fondinit.jpg")
      end sub

      Sub wallpapernouvellesortie()
      dim.....
      ..........

      images = UserForm4.ComboBox2.Value

      UserForm1.Picture = LoadPicture("D:\Roger\Dossier personnel\Vélo\Fonds d'ecran\" & images & ".jpg")

      'la tu copie images.jpg dans fondinit.jpg (true c'est pour écraser d'office fondinit)
      FileSystemObject.CopyFile "D:\Roger\...."& images & ".jpg", "c:\monappli\fondinit.jpg", true
      ..........
      end sub
      [\code]

      J'ai pas eu le temps de tester mais ça doit le faire
      Tiens moi au courant

      Salut de la bretagne !
      0
      1. bonjour mikebzh,

        ton idée semble interressante donc j'ai suivi la démarche que tu m'as indiquer.
        Toutefois, lorsque la macro arrive a

        FileSystemObject.CopyFile ....

        le compilateur me demande "Objet Requis"

        j'ai essayé :

        wbk1.FileSystemObject.CopyFile "D:\Roger\...."& ...
        userform1.FileSystemObject.CopyFile "D:\Roger\...."& ...

        mais toujours un bug signalé par le compilateur

        Peut tu m'aider s'il te plait
        0
      2. @mister-tsinon j'ai cherché sur internet et j'ai trouvé ça

        ThisWorkbook.VBProject.VBComponents("UserForm1"). _
        Properties("backcolor") = RGB(125, 125, 125)

        Dans ce cas c'est pour changer definitivement la couleur de font de la userform
        Peut etre que ça peut s'adapter pour "Picture"

        Je sais pas si excel comprend vbproject.vbcomponents

        une réponse eventuelle m'interresserait

        merci
        0
    2. Coucou

      Je travaille pas sous excel mais plutôt en dev visual basic (d'où les fso) mais je viens de faire un test sous excel et ça marche tu fais simplement

      FileCopy "c:\images.jpg", "c:\fondinit.jpg"

      Cela roule tout seul et en plus ça écrase l'ancien

      A plus.
      0