Twitter iPhone pliant OnePlus 11 PS5 Disney+ Orange Livebox Windows 11

Nom de fichiers dans une combobox

25 réponses
Avatar
JP
Bonjour,

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

Mais m=EAme pas!



Merci=20

JP

10 réponses

1 2 3
Avatar
MichD
Bonjour,

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


MichD
---------------------------------------------------------------
Avatar
JP
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

JP

Ps Je vais essayer ton code
Avatar
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???
;-)

MichD
---------------------------------------------------------------
Avatar
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.

Encore merci.

JP
Avatar
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()

Chemin = "C:UsersMichDPictures"
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)

'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
'------------------------------------------------------------------


MichD
---------------------------------------------------------------
Avatar
JP
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?
Avatar
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
Avatar
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.


MichD
---------------------------------------------------------------
Avatar
JP
Bonjour Denis,

Merci pour les réponses. Je viens de tenter de paramétrer Thunderbird p our le forum mais en vain.

JP
Avatar
MichD
Je ne peux pas t'aider sur ce coup, je ne connais pas Thunderbird!


MichD
---------------------------------------------------------------
1 2 3