Garder en memoire image dans une userform

mister-t -  
mikebzh Messages postés 135 Statut Membre -
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. mister-t
     
    pas de reponse

    up s'il vous plait je suis depuis toute a l'heure et j'ai toujours pas trouvé
    0
  2. mikebzh Messages postés 135 Statut Membre 28
     
    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. mister-t
       
      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
      1. mister-t > mister-t
         
        sinon 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
  3. mikebzh Messages postés 135 Statut Membre 28
     
    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