Insertion Image
Bonjour le forum,
Je viens vers vous car j'ai un petit soucis avec VBA (quelle surprise n'est ce pas).
Je cherche à insérer des photos dans des cases en appuyant sur un bouton ce qui enclenche une macro.
Le soucis que je n'arrive pas à créer une macro qui me permette de choisir ma photo (car je ne connais pas d'avance son nom) et ensuite de l’insérer automatiquement dans une case qui se définis dans la macro , j'ai un tableau pour les images qui recherche la première cases non vide pour y placer la photo.
Je voudrais également que les photos se mette au format de la case automatiquement.
Enfin j'aurais besoin de récupérer leur nom pour le mettre dans une cellule.
J'espère avoir été clair.
Merci d'avance.
Up
En cherchant de nouveau j'ai toruvé un code qui répond bien à mes attente ou presque.
Sub ImportImage()
Image = Application.GetOpenFilename("Fichiers Gif ou Jpg ,*.gif;*.jpg")
If Image <> False Then
a = Split(Image, "\")
nomimage = a(UBound(a))
Set c = ActiveCell
With ActiveSheet
.Pictures.Insert(Image).Name = nomimage
.Shapes(nomimage).Height = c.Height
.Shapes(nomimage).Left = c.Left + (c.Width - .Shapes(nomimage).Width) / 2
.Shapes(nomimage).Top = c.Top
.Shapes(nomimage).LockAspectRatio = msoTrue
End With
End If
End SubJe l'ai modifier pour que l'image apparaisse ou je le désire.
Cependant j'aurais troiesquestions comment faire pour verrouiller l'image inséré ? De manière à ce que l’utilisateur ne puisse pas la modifier.
Ensuite j’arrive à récupérer le nom de l'image mais il y a le .jpeg à la fin peut on l'enlever car ce n'ai pas très jolie.
Enfin l'image ne remplit pas au mieux la taille de la cellule qui lui est affecté, sachant que j'ai fusionné des cellule pour avoir quand même pas mal de place pour pouvoir voir l'image. L'image reste de la taille d'une miniature, ou si je mets à la place de c=cells c=range(...) l'image ne reste pas dans la plage de cellule indiqué.
Merci d'avance et bon week end.
Je me réponds à moi même au cas ou d'autre personne est les même problème que moi.
Pour vérouiller l'image en protégeant la feuille ça fonctionne l'image devient insélectionnable.
Pour remplir une plage de cellule fusionner il faut utiliser le code suivant.
répertoirePhoto = "c:\mesdoc\" ' Adapter
nom = "droc"
Set c = Range("B2").MergeArea
With ActiveSheet
.Pictures.Insert(répertoirePhosto & nom & ".jpg").Name = nom
.Shapes(nom).Left = c.Left
.Shapes(nom).Top = c.Top
.Shapes(nom).LockAspectRatio = msoFalse
.Shapes(nom).Height = c.Height
.Shapes(nom).Width = c.Width
End WithJ'aurais une autre question comment faire pour déplacer une image d'une plage de cellule fusionné à une autre ?