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

Résolu
Grib17 Messages postés 5 Statut Membre -  
Grib17 Messages postés 5 Statut Membre -
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
A voir également:

4 réponses

skk201 Messages postés 942 Date d'inscription   Statut Membre Dernière intervention   54
 
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 Statut Membre
 
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 18903 Statut Contributeur 3 317
 
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 Statut Membre
 
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