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
Je suis conscient que l'apprentissage est long, je bataille suffisamment po ur l'admettre. J'ai passé beaucoup de temps pour comprendre et aussi fait beaucoup de re cherche pour en finalité bloquer sur cette erreur. Pour ce qui est du Dir, je n'ai pas fait de recherche mais je pensais que c omme sous notre bon vieil msdos, dir était un raccourci de directory. Dir(chemin&combobox1.value) pour moi affectait à la variable NomImage des données string correspondant au path.
Merci pour tes remarques.
JP
Je suis conscient que l'apprentissage est long, je bataille suffisamment po ur l'admettre.
J'ai passé beaucoup de temps pour comprendre et aussi fait beaucoup de re cherche pour en finalité bloquer sur cette erreur.
Pour ce qui est du Dir, je n'ai pas fait de recherche mais je pensais que c omme sous notre bon vieil msdos, dir était un raccourci de directory.
Dir(chemin&combobox1.value) pour moi affectait à la variable NomImage des données string correspondant au path.
Je suis conscient que l'apprentissage est long, je bataille suffisamment po ur l'admettre. J'ai passé beaucoup de temps pour comprendre et aussi fait beaucoup de re cherche pour en finalité bloquer sur cette erreur. Pour ce qui est du Dir, je n'ai pas fait de recherche mais je pensais que c omme sous notre bon vieil msdos, dir était un raccourci de directory. Dir(chemin&combobox1.value) pour moi affectait à la variable NomImage des données string correspondant au path.
Merci pour tes remarques.
JP
MichD
Si tu veux plus d'aide, utilise le site Cjoint.com et publie ton fichier. Assure-toi de faire disparaître toutes les informations sensibles. Tu retournes ici l'adresse que tu obtiendras.
Si tu veux plus d'aide, utilise le site Cjoint.com et publie ton fichier.
Assure-toi de faire disparaître toutes les informations sensibles.
Tu retournes ici l'adresse que tu obtiendras.
Si tu veux plus d'aide, utilise le site Cjoint.com et publie ton fichier. Assure-toi de faire disparaître toutes les informations sensibles. Tu retournes ici l'adresse que tu obtiendras.
JP
Bonjour Denis,
Désolé d'avoir tardé. Voilà je pense avoir fait le ménage dans le fichier. En première page une consigne pour se retrouver dans ma configuration.
Le lien pour le téléchargement: http://cjoint.com/?3LppEkrzAsy
Merci d'avance
JP
Bonjour Denis,
Désolé d'avoir tardé.
Voilà je pense avoir fait le ménage dans le fichier.
En première page une consigne pour se retrouver dans ma configuration.
Le lien pour le téléchargement: http://cjoint.com/?3LppEkrzAsy
Désolé d'avoir tardé. Voilà je pense avoir fait le ménage dans le fichier. En première page une consigne pour se retrouver dans ma configuration.
Le lien pour le téléchargement: http://cjoint.com/?3LppEkrzAsy
Merci d'avance
JP
MichD
Voici tout le code de ton formulaire "Logos" Tu remplaces celui existant par celui-ci.
Sur cette ligne de code : Set Image = Worksheets(Feuille).Pictures.Insert(NomImage) NomImage est une variable, il faut donc enlever les guillemets autour de cette expresssion.
Dim Chemin As String Dim fic As String Dim NomImage As String
Private Sub ComboBox1_Change() Me.cadre.Picture = LoadPicture(Chemin & Me.ComboBox1.Value) 'NomImage = Dir(Chemin & Me.ComboBox1.Value) End Sub Private Sub UserForm_Initialize() Chemin = Workbooks(ActiveWorkbook.Name).Path & "logos" fic = Dir(Chemin & "*.jpg") Do While fic <> "" Me.ComboBox1.AddItem fic fic = Dir Loop End Sub
Private Sub Insere_Image_Click() ' variables Dim Fichier As String, NomFeuille As String Dim NomImage As String
'Image selectionnee If Me.ComboBox1.Value <> "" Then NomImage = Chemin & ComboBox1.Value Else MsgBox "Faites votre choix dans la liste proposée." Exit Sub End If
'Nom de l'onglet de la feuille où insérer l'image NomFeuille = "BLEnt"
'étendue de la plage ou l'image doit apparaitre Plage = "D3:G5" ' Vers sous procédure InsérerImage NomFeuille, Range(Plage), NomImage
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 + 2 '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
Voici tout le code de ton formulaire "Logos"
Tu remplaces celui existant par celui-ci.
Sur cette ligne de code :
Set Image = Worksheets(Feuille).Pictures.Insert(NomImage)
NomImage est une variable, il faut donc enlever les guillemets
autour de cette expresssion.
Dim Chemin As String
Dim fic As String
Dim NomImage As String
Private Sub ComboBox1_Change()
Me.cadre.Picture = LoadPicture(Chemin & Me.ComboBox1.Value)
'NomImage = Dir(Chemin & Me.ComboBox1.Value)
End Sub
Private Sub UserForm_Initialize()
Chemin = Workbooks(ActiveWorkbook.Name).Path & "logos"
fic = Dir(Chemin & "*.jpg")
Do While fic <> ""
Me.ComboBox1.AddItem fic
fic = Dir
Loop
End Sub
Private Sub Insere_Image_Click()
' variables
Dim Fichier As String, NomFeuille As String
Dim NomImage As String
'Image selectionnee
If Me.ComboBox1.Value <> "" Then
NomImage = Chemin & ComboBox1.Value
Else
MsgBox "Faites votre choix dans la liste proposée."
Exit Sub
End If
'Nom de l'onglet de la feuille où insérer l'image
NomFeuille = "BLEnt"
'étendue de la plage ou l'image doit apparaitre
Plage = "D3:G5"
' Vers sous procédure
InsérerImage NomFeuille, Range(Plage), NomImage
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 + 2
'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
Voici tout le code de ton formulaire "Logos" Tu remplaces celui existant par celui-ci.
Sur cette ligne de code : Set Image = Worksheets(Feuille).Pictures.Insert(NomImage) NomImage est une variable, il faut donc enlever les guillemets autour de cette expresssion.
Dim Chemin As String Dim fic As String Dim NomImage As String
Private Sub ComboBox1_Change() Me.cadre.Picture = LoadPicture(Chemin & Me.ComboBox1.Value) 'NomImage = Dir(Chemin & Me.ComboBox1.Value) End Sub Private Sub UserForm_Initialize() Chemin = Workbooks(ActiveWorkbook.Name).Path & "logos" fic = Dir(Chemin & "*.jpg") Do While fic <> "" Me.ComboBox1.AddItem fic fic = Dir Loop End Sub
Private Sub Insere_Image_Click() ' variables Dim Fichier As String, NomFeuille As String Dim NomImage As String
'Image selectionnee If Me.ComboBox1.Value <> "" Then NomImage = Chemin & ComboBox1.Value Else MsgBox "Faites votre choix dans la liste proposée." Exit Sub End If
'Nom de l'onglet de la feuille où insérer l'image NomFeuille = "BLEnt"
'étendue de la plage ou l'image doit apparaitre Plage = "D3:G5" ' Vers sous procédure InsérerImage NomFeuille, Range(Plage), NomImage
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 + 2 '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
JP
Merci beaucoup, je regarde demain pour mettre le code à jour.
JP
Merci beaucoup, je regarde demain pour mettre le code à jour.