Garder en memoire image dans une userform

Fermé
mister-t - 19 déc. 2008 à 14:54
mikebzh Messages postés 127 Date d'inscription samedi 20 décembre 2008 Statut Membre Dernière intervention 11 mars 2009 - 21 déc. 2008 à 00:39
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
A voir également:

3 réponses

pas de reponse

up s'il vous plait je suis depuis toute a l'heure et j'ai toujours pas trouvé
0
mikebzh Messages postés 127 Date d'inscription samedi 20 décembre 2008 Statut Membre Dernière intervention 11 mars 2009 28
20 déc. 2008 à 23:04
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
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
mister-t > mister-t
21 déc. 2008 à 00:04
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
mikebzh Messages postés 127 Date d'inscription samedi 20 décembre 2008 Statut Membre Dernière intervention 11 mars 2009 28
21 déc. 2008 à 00:39
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