Insertion d'image en VBA

karakoman1

XLDnaute Occasionnel
Bonjour le forum,
Je voudrais demander l'aide des "spécialistes". :cool:
En effet, je voudrais à partir d'un dossier ou son stockées des images, trouver la manière de pouvoir les inserer et les adapter à la taille de la cellule en colonne "D" par rapport à leur nom (N° d'article) qui se trouve en colonne "A", pouvoir faire un tri sur la colonne "A" et que les photos suivent.
J'espère avoir été assez précis pour les bienveillants qui se pencherons sur ma demande.
Je joint un fichier exemple en annexe pour etre plus clair
Merci d'avance.
 

Pièces jointes

  • Insertion images.xlsx
    43.9 KB · Affichages: 50

MJ13

XLDnaute Barbatruc
Re : Insertion d'image en VBA

Bonjour karakoman

Pour que les images suivent les cellules, il faut mettre les propriétes des images en propriété placement (xlMoveandSize).

Tu peux le faire aussi à la main: F5, Click sur cellules, Objet puis faire un click droit sur une des images, et dans les propriétés chosir la première option Déplacer et dimensionner avec les cellules.
 

sousou

XLDnaute Barbatruc
Re : Insertion d'image en VBA

bonjour karakoman
tu eux t'inspirer de ce code à placer dans le code de ta feuille.
sur doubleclick de la cellule getopenfilename te permets de choisir une image
elle est mise à la cote de la cellule
et xlmoveandsize lie l'image à la cellule pour les tris eventuels

Private Sub Worksheet_BeforeDoubleClick(ByVal Target As Range, Cancel As Boolean)
largeur = Target.Width
rep = Application.GetOpenFilename("image, *.jpg")
Set image = ActiveSheet.Pictures.Insert(rep)
image.Width = Target.Width
image.Height = Target.Height

image.Placement = xlMoveAndSize
End Sub
 

karakoman1

XLDnaute Occasionnel
Re : Insertion d'image en VBA

Bonjour MJ13, sousou
Je ne connais pas grand chose en VBA mais suis vraiment interessé d'apprendre.
Pour MJ13: Par quel endroit faut il aller pour pouvoir faire ta manip sur les propriétés d'image (f5, c'est "Go to"?)

Pour sousou: je vais avoir dur d'adapter sans connaitre le fonctionnement. je ne sais déja pas ou aller mettre ce code. :rolleyes:
Merci quand même de vous interesser
 

karakoman1

XLDnaute Occasionnel
Re : Insertion d'image en VBA

Bonsoir JB,
Je viens de tester "Les noms des images à importer sont dans la colonne A", mais j'ai une erreur d'éxécution 1004: Impossible de définir la propriété RowHeight de la classe Range.
Dois-je définir les dimensions?
 

MJ13

XLDnaute Barbatruc
Re : Insertion d'image en VBA

Re

En reprenant le code de JB :), voici ce que cela pourrait donner en mettant les cellules à la hauteur désirée.

Attention: il vaut mieux avec 1000 images les avoir en taille réduite de moins de 512 pixels (c'est facile à faire avec Irfan View par exemple)

Code:
Sub ImportImages()
'JB
   ActiveSheet.DrawingObjects.Delete
   répertoirePhoto = "D:\Photos_V\"
   nf = Dir(répertoirePhoto & "*.jpg") ' premier fichier
   Range("b2").Select
   
   Do While nf <> ""
   Hauteur = ActiveCell.Height
     Set img = ActiveSheet.Pictures.Insert(répertoirePhoto & nf)
     img.Top = ActiveCell.Top + 2
     img.Left = ActiveCell.Left + 2
     Rap = img.Height / img.Width
     img.Name = Left(nf, Len(nf) - 4) ' Donne un nom à l'image
     ActiveCell.Offset(0, -1) = Application.Proper(Left(nf, Len(nf) - 4))
     'ActiveCell.EntireRow.RowHeight = img.Height + 2
     img.Height = Hauteur - 5
     img.Width = img.Height * Rap
     img.Placement = xlMoveAndSize
     nf = Dir ' suivant
     ActiveCell.Offset(1, 0).Select
   Loop
 End Sub
 

karakoman1

XLDnaute Occasionnel
Re : Insertion d'image en VBA

Bonjour à tous,
Me revoila avec mon problème.
Suite au conseils de MJ13 et Boisgontier, j'ai adapté le code "Insertion images" du site très intéressant de Boisgontier à mon classeur.
Cependant, je n'arrive pas à trouver la commande pour donner à l'image inserée la taille de la cellule.
Pour l'instant, soit l'image est trop grande, soit la cellule s'agrandit. Mais je voudrais garder la taille de départ de ma cellule.
Un p'tit coup de pouce??????? :rolleyes:

Je joint mon fichier

Merci d'avance
 

Pièces jointes

  • Insertion images.xlsm
    48.5 KB · Affichages: 48
  • Insertion images.xlsm
    48.5 KB · Affichages: 50
  • Insertion images.xlsm
    48.5 KB · Affichages: 52
Dernière édition:

karakoman1

XLDnaute Occasionnel
Re : Insertion d'image en VBA

Rebonjour à tous et à toutes
J'avance à petit pas. Ca s'améliore, mais la je coince.
Il ne me reste plus qu'à adapter l'image sur la hauteur pour remplir ou ne pas dépasser de la cellule
Toujours pas d'âmes charitables??
 

Pièces jointes

  • Insertion images.xlsm
    112.3 KB · Affichages: 61
  • Insertion images.xlsm
    112.3 KB · Affichages: 64
  • Insertion images.xlsm
    112.3 KB · Affichages: 61

MJ13

XLDnaute Barbatruc
Re : Insertion d'image en VBA

Bonjour Karakoman

J'ai fait un code issu du travail de JB dans le post 10.

Essaie de t'en inspirer. Si je l'ai modifié c'est que j'avais eu des petits soucis avec le code Original.

Sinon, tu peux essayer avec:

Code:
img.Width = img.Height / Rap
 

Discussions similaires

Réponses
12
Affichages
301

Statistiques des forums

Discussions
312 165
Messages
2 085 882
Membres
103 011
dernier inscrit
rine