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

4 réponses

  1. skk201 Messages postés 942 Date d'inscription   Statut Membre Dernière intervention   55
     
    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
  2. 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
  3. michel_m Messages postés 18903 Date d'inscription   Statut Contributeur Dernière intervention   3 320
     
    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
  4. 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