J'ai des fichiers .JPG dans le dossier D:\CTX\INFORMATIQUE\Gestion de stock=
\Logos
J'ai cr=E9=E9 un userform dans lequel j'ai mis une combobox et un controle =
image.
La finalit=E9 est de mettre les noms de fichier dans la combobox est en fon=
ction du nom du fichier faire apparaitre le logo dans le contr=F4le image.
Deux pr=E9cisions, mon fichier excel est dans le dossier Gestion de stock. =
D:\CTX\INFORMATIQUE\Gestion de stock)
et le nombres de fichiers JPG est variable.
J'aurai aim=E9 en voir apparaitre au moins un avec ce code.
Private Sub UserForm_Initialize()
Dim Chemin As String
Chemin =3D "D:\CTX\INFORMATIQUE\Gestion de stock\Logos"
ComboBox1.AddItem Chemin \ Files.Name
End Sub
Pour mettre le nom de tous les fichiers de ton dossier "Image - JPG" dans la liste de ton combobox
Private Sub UserForm_Initialize() Dim Chemin As String, Fichier As String Dim A As Integer, T()
Chemin = "D:CTXINFORMATIQUEGestion de stockLogos" Fichier = Dir(Chemin & "*.jpg")
Do While Fichier <> "" ReDim Preserve T(0 To A) T(A) = Split(Fichier, "")(UBound(Split(Fichier, ""))) A = A + 1 Fichier = Dir() Loop Me.ComboBox1.List = Application.Transpose(T) End Sub
Pour mettre le nom de tous les fichiers de ton dossier "Image - JPG"
dans la liste de ton combobox
Private Sub UserForm_Initialize()
Dim Chemin As String, Fichier As String
Dim A As Integer, T()
Chemin = "D:CTXINFORMATIQUEGestion de stockLogos"
Fichier = Dir(Chemin & "*.jpg")
Do While Fichier <> ""
ReDim Preserve T(0 To A)
T(A) = Split(Fichier, "")(UBound(Split(Fichier, "")))
A = A + 1
Fichier = Dir()
Loop
Me.ComboBox1.List = Application.Transpose(T)
End Sub
Pour mettre le nom de tous les fichiers de ton dossier "Image - JPG" dans la liste de ton combobox
Private Sub UserForm_Initialize() Dim Chemin As String, Fichier As String Dim A As Integer, T()
Chemin = "D:CTXINFORMATIQUEGestion de stockLogos" Fichier = Dir(Chemin & "*.jpg")
Do While Fichier <> "" ReDim Preserve T(0 To A) T(A) = Split(Fichier, "")(UBound(Split(Fichier, ""))) A = A + 1 Fichier = Dir() Loop Me.ComboBox1.List = Application.Transpose(T) End Sub
J'ai bataillé de mon coté pour aboutir à ce code qui fonctionne parti ellement.
Dim Chemin As String Dim fic As String
Private Sub ComboBox1_Change() Me.Image1.Picture = Chemin & "" & Me.ComboBox1.Value End Sub
Private Sub UserForm_Initialize() Chemin = "D:CTXINFORMATIQUEGestion de stockLogos" fic = Dir(Chemin & "*.jpg") Do While fic <> "" Me.ComboBox1.AddItem fic fic = Dir Loop
End Sub mais l'image n'apparait pas dans le contrôle image1.
J'ai encore une erreur dans Me.Image1.Picture = Chemin & "" & Me.ComboBo x1.Value
JP
Ps Je vais essayer ton code
bonsoir Denis,
J'ai bataillé de mon coté pour aboutir à ce code qui fonctionne parti ellement.
Dim Chemin As String
Dim fic As String
Private Sub ComboBox1_Change()
Me.Image1.Picture = Chemin & "" & Me.ComboBox1.Value
End Sub
Private Sub UserForm_Initialize()
Chemin = "D:CTXINFORMATIQUEGestion de stockLogos"
fic = Dir(Chemin & "*.jpg")
Do While fic <> ""
Me.ComboBox1.AddItem fic
fic = Dir
Loop
End Sub
mais l'image n'apparait pas dans le contrôle image1.
J'ai encore une erreur dans Me.Image1.Picture = Chemin & "" & Me.ComboBo x1.Value
J'ai bataillé de mon coté pour aboutir à ce code qui fonctionne parti ellement.
Dim Chemin As String Dim fic As String
Private Sub ComboBox1_Change() Me.Image1.Picture = Chemin & "" & Me.ComboBox1.Value End Sub
Private Sub UserForm_Initialize() Chemin = "D:CTXINFORMATIQUEGestion de stockLogos" fic = Dir(Chemin & "*.jpg") Do While fic <> "" Me.ComboBox1.AddItem fic fic = Dir Loop
End Sub mais l'image n'apparait pas dans le contrôle image1.
J'ai encore une erreur dans Me.Image1.Picture = Chemin & "" & Me.ComboBo x1.Value
JP
Ps Je vais essayer ton code
MichD
Pour charger une image dans un contrôle image :
Exemple de code :
Dim Fichier As String Fichier = "C:UsersMichDPicturesPosition 1 au golf.jpg" Me.Image1.Picture = LoadPicture(Fichier)
Est-ce que je vais réussir mon premier trou d'un coup au golf??? ;-)
super, il ne me manquait que loadpicture. Je ne vais pas l'oublier!!! Je vais regarder maintenant pour intégrer cette image selectionnée dans une feuille.
Encore merci.
JP
super, il ne me manquait que loadpicture. Je ne vais pas l'oublier!!!
Je vais regarder maintenant pour intégrer cette image selectionnée dans une feuille.
super, il ne me manquait que loadpicture. Je ne vais pas l'oublier!!! Je vais regarder maintenant pour intégrer cette image selectionnée dans une feuille.
Encore merci.
JP
MichD
Un exemple d'une procédure complète :
'------------------------------------------------------------------ Private Sub UserForm_Initialize() Dim Chemin As String, Fichier As String Dim NomFeuille As String, Plage As String Dim A As Integer, T()
Do While Fichier <> "" ReDim Preserve T(0 To A) T(A) = Split(Fichier, "")(UBound(Split(Fichier, ""))) A = A + 1 Fichier = Dir() Loop Me.ComboBox1.List = Application.Transpose(T)
'Charger l'image dans le contrôle image et dans la feuille 'de la première image de la liste du combobox Fichier = Chemin & Me.ComboBox1.List(0)
'Charge l'image dans le contrôle Image du formulaire Me.Image1.Picture = LoadPicture(Fichier)
'Nom de l'onglet de la feuille où insérer l'image NomFeuille = "Feuil1"
'Étendue de la plage de cellule où l'image doit apparaitre 'dans la feuille Plage = "D7:G23"
InsérerImage NomFeuille, Range(Plage), Fichier
End Sub '------------------------------------------------------------------ Sub InsérerImage(Feuille As String, RgImage As Range, _ NomImage As String) Dim Rg As Range, Image As Picture Set Rg = Worksheets(Feuille).Range(RgImage.Address) With Rg Largeur = .Offset(, 1)(, .Columns.Count).Left - .Left Hauteur = .Offset(.Rows.Count).Top - .Item(1).Top Set Image = Worksheets(Feuille).Pictures.Insert(NomImage) End With With Image .ShapeRange.LockAspectRatio = msoFalse .Left = Rg.Left .Top = Rg.Top 'Largeur de l'image Image.Width = Largeur 'Hauteur de l'image Image.Height = Hauteur 'Est-ce que l'image doit se déplacer avec les cellules 'voici les 3 constantes possibles .Placement = xlFreeFloating 'or xlmove or xlMoveAndSize 'Verrouillé ou pas .Locked = True 'or False End With Set Rg = Nothing End Sub '------------------------------------------------------------------
'------------------------------------------------------------------
Private Sub UserForm_Initialize()
Dim Chemin As String, Fichier As String
Dim NomFeuille As String, Plage As String
Dim A As Integer, T()
Do While Fichier <> ""
ReDim Preserve T(0 To A)
T(A) = Split(Fichier, "")(UBound(Split(Fichier, "")))
A = A + 1
Fichier = Dir()
Loop
Me.ComboBox1.List = Application.Transpose(T)
'Charger l'image dans le contrôle image et dans la feuille
'de la première image de la liste du combobox
Fichier = Chemin & Me.ComboBox1.List(0)
'Charge l'image dans le contrôle Image du formulaire
Me.Image1.Picture = LoadPicture(Fichier)
'Nom de l'onglet de la feuille où insérer l'image
NomFeuille = "Feuil1"
'Étendue de la plage de cellule où l'image doit apparaitre
'dans la feuille
Plage = "D7:G23"
InsérerImage NomFeuille, Range(Plage), Fichier
End Sub
'------------------------------------------------------------------
Sub InsérerImage(Feuille As String, RgImage As Range, _
NomImage As String)
Dim Rg As Range, Image As Picture
Set Rg = Worksheets(Feuille).Range(RgImage.Address)
With Rg
Largeur = .Offset(, 1)(, .Columns.Count).Left - .Left
Hauteur = .Offset(.Rows.Count).Top - .Item(1).Top
Set Image = Worksheets(Feuille).Pictures.Insert(NomImage)
End With
With Image
.ShapeRange.LockAspectRatio = msoFalse
.Left = Rg.Left
.Top = Rg.Top
'Largeur de l'image
Image.Width = Largeur
'Hauteur de l'image
Image.Height = Hauteur
'Est-ce que l'image doit se déplacer avec les cellules
'voici les 3 constantes possibles
.Placement = xlFreeFloating 'or xlmove or xlMoveAndSize
'Verrouillé ou pas
.Locked = True 'or False
End With
Set Rg = Nothing
End Sub
'------------------------------------------------------------------
'------------------------------------------------------------------ Private Sub UserForm_Initialize() Dim Chemin As String, Fichier As String Dim NomFeuille As String, Plage As String Dim A As Integer, T()
Do While Fichier <> "" ReDim Preserve T(0 To A) T(A) = Split(Fichier, "")(UBound(Split(Fichier, ""))) A = A + 1 Fichier = Dir() Loop Me.ComboBox1.List = Application.Transpose(T)
'Charger l'image dans le contrôle image et dans la feuille 'de la première image de la liste du combobox Fichier = Chemin & Me.ComboBox1.List(0)
'Charge l'image dans le contrôle Image du formulaire Me.Image1.Picture = LoadPicture(Fichier)
'Nom de l'onglet de la feuille où insérer l'image NomFeuille = "Feuil1"
'Étendue de la plage de cellule où l'image doit apparaitre 'dans la feuille Plage = "D7:G23"
InsérerImage NomFeuille, Range(Plage), Fichier
End Sub '------------------------------------------------------------------ Sub InsérerImage(Feuille As String, RgImage As Range, _ NomImage As String) Dim Rg As Range, Image As Picture Set Rg = Worksheets(Feuille).Range(RgImage.Address) With Rg Largeur = .Offset(, 1)(, .Columns.Count).Left - .Left Hauteur = .Offset(.Rows.Count).Top - .Item(1).Top Set Image = Worksheets(Feuille).Pictures.Insert(NomImage) End With With Image .ShapeRange.LockAspectRatio = msoFalse .Left = Rg.Left .Top = Rg.Top 'Largeur de l'image Image.Width = Largeur 'Hauteur de l'image Image.Height = Hauteur 'Est-ce que l'image doit se déplacer avec les cellules 'voici les 3 constantes possibles .Placement = xlFreeFloating 'or xlmove or xlMoveAndSize 'Verrouillé ou pas .Locked = True 'or False End With Set Rg = Nothing End Sub '------------------------------------------------------------------
PS Une question sur l'accentuation des textes sur le forum. J'ai perso tous les accents qui génèrent (generent)des caractères biz arroïdes. C'est chez tout le monde pareil?
Bonjour Denis,
Je m'empresse de tester.
Merci
JP
PS Une question sur l'accentuation des textes sur le forum.
J'ai perso tous les accents qui génèrent (generent)des caractères biz arroïdes. C'est chez tout le monde pareil?
PS Une question sur l'accentuation des textes sur le forum. J'ai perso tous les accents qui génèrent (generent)des caractères biz arroïdes. C'est chez tout le monde pareil?
JP
Denis,
D'un PC à l'autre, la variable Chemin change forcément. Est-ce qu'on peut imaginer de trouver le chemin du fichier xlsm et ensuite y ajouter & "logos*.JPG" pour obtenir le chemin complet?
JP
Denis,
D'un PC à l'autre, la variable Chemin change forcément.
Est-ce qu'on peut imaginer de trouver le chemin du fichier xlsm et ensuite y ajouter & "logos*.JPG" pour obtenir le chemin complet?
D'un PC à l'autre, la variable Chemin change forcément. Est-ce qu'on peut imaginer de trouver le chemin du fichier xlsm et ensuite y ajouter & "logos*.JPG" pour obtenir le chemin complet?
JP
MichD
Ceci retourne le répertoire dans lequel le classeur se retrouve :
Chemin = ThisWorkbook.Path & "logos*.JPG"
Et pour les accents dans les messages des courriels, dépendamment de ton lecteur de News, tu peux modifier cela dans les paramètres de l'application.