Garder en memoire image dans une userform
mister-t
-
mikebzh Messages postés 135 Statut Membre -
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
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:
- Garder en memoire image dans une userform
- Mémoire vive - Guide
- Légender une image - Guide
- Image iso - Guide
- Transformer une image en icone - Guide
- Mettre une image en filigrane sur word - Guide
3 réponses
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 !
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 !
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
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
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
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