Insertion d'une image en VBA ... lorsque son nom change ...et +

Résolu/Fermé
Grib17 Messages postés 5 Date d'inscription lundi 3 mars 2014 Statut Membre Dernière intervention 5 mars 2014 - 3 mars 2014 à 22:31
Grib17 Messages postés 5 Date d'inscription lundi 3 mars 2014 Statut Membre Dernière intervention 5 mars 2014 - 5 mars 2014 à 21:22
Bonjour à tous !

Je m'explique... Je suis en plein classement méthodique avec un fichier excel déjà bien chargé... mais celui-ci est lié à un autre fichier avec une mise en page prédéfinie. A cette mise en page je voudrai....

Insérer une image dans la cellule j4
Avec une image faisant référence à un nom (exemple : Bp_Fl_Be_Ch_Er_Type_01_Var.b_001.jpg) en cellule I2

Particularité:
Listing d'image se trouvant dans un dossier
Ajuster cette image en haut à gauche de la cellule J4 Avec un format de 70% à l'original (soit 3,3 cm)
Celle-ci doit changer quand le nom change en cellule I2....

Je ne sais pas si j'ai été clair..mais je vous remercie par avance pour vos réponses.
Cordialement

Grib17

4 réponses

skk201 Messages postés 938 Date d'inscription jeudi 11 septembre 2008 Statut Membre Dernière intervention 16 octobre 2016 54
4 mars 2014 à 16:01
A mon avis c'est possible, il faut faire en sorte que la macro s'active lorsque la valeur de la cellule I2 change.

Et définir une vraiable comme étant le contenu de la cellule I2 pour que la Macro sache quel image importé.

Utilise l'enregisteuse de macro dans excel pour trouver le code que tu ne connais pas.
0
Grib17 Messages postés 5 Date d'inscription lundi 3 mars 2014 Statut Membre Dernière intervention 5 mars 2014
5 mars 2014 à 09:04
Merci SKK201 pour cet itinéraire à suivre. Je vais chercher dans ce sens là.

Je vous tiens au curant de l'évolution de mon travail.
Cordialement,
0
michel_m Messages postés 16603 Date d'inscription lundi 12 septembre 2005 Statut Contributeur Dernière intervention 16 décembre 2023 3 303
5 mars 2014 à 09:35
Bonjour,

Ci joint exemple du choix d'une image(photo) par changement du nom de l'image (ici le N° matricule d'un agent d'une société); les formats admis: jpg,jpeg,png, gif

la dimension de ta photo est donné par la construction d'une forme image (shape) nommé "photo" dans la cellule (ici, à gauche)

Les dimensions et positions sont donnés par les propriétés height, width, top, left: il faut souvent tatonner; la largeur de la cellule , et non de la forme, dans ton cas sera de 3,3 cm

maintenant, utiliser l'enregistreur, je veux bien mais...

https://www.cjoint.com/?3CfjHrG19Jk

En espèrant que...

0
Grib17 Messages postés 5 Date d'inscription lundi 3 mars 2014 Statut Membre Dernière intervention 5 mars 2014
5 mars 2014 à 21:22
Bonsoir,
Merci Michel_M pour ton investissement,

Voici avec l'aide d'un ami qui touche un peu aussi au VBA une solution qui corrige également des erreurs de caractères (espace,_).
J'ai trouvé ce que je cherchai et cela fonctionne parfaitement.
Merci pour ces pistes qui nous ont bien aidés à obtenir ce travail.

Cordialement à tous.
Merci
Grib17

Voici le code ainsi développé:

Private Sub Worksheet_Change(ByVal Target As Range)
Dim path As String
Dim image_nom As String

On Error GoTo pbPathImage
'Sort si plusieurs celulles de sélectionnées
If Target.Count > 1 Then Exit Sub
'Sort si autre cellule que l6
If Target.AddressLocal = "$H$13" Then
'modifie le chemin de l'image en j4
For Each img In ActiveSheet.Shapes
img.Delete
Next
'là où l'image va s'inserer
Range("I2").Select
image_nom = ActiveSheet.Range("M2").Value
image_nom = Replace(image_nom, " ", "")
image_nom = Replace(image_nom, "-", "_")
path = ThisWorkbook.path & "\Photographies\01-Collection complete BR+BP\" & image_nom & ".jpg"
'path = "\Photographies\Categorie\ Fiches\BP_Fl_Be_Ch_Er_Type_02_Var.a_001.jpg"

ActiveSheet.Shapes.AddPicture path, False, True, 400, 20, 90, 90

End If

Exit Sub
pbPathImage:
MsgBox Err & ": " & Error(Err) & vbCrLf & "Attend l'image : " & path

End Sub
0