Modifier emplacement de l'image

Bonjour à tous,

est-ce que qqun aurait l'amabilité de me donner un coup de main sur le fichier en pièce jointe?

Je voudrais ne pas afficher l'image en dessous de la référence mais à côté de celle-ci histoire de pouvoir ensuite faire un tableau de référence...

Merci d'avance pour votre aide!

Très cordialement,

Martinsss

18test-images.rar (256.00 Ko)

bonjour,

quelques modifications à apporter aux codes :

Code de l'évènement de feuille (le code Worksheet_Change)

Private Sub Worksheet_Change(ByVal Target As Range)
  If Target.Count > 1 Then Exit Sub
  If Not Intersect(Range("C8"), Target) Is Nothing Then
    Affiche_Image Target.Offset(, 1)
  End If
End Sub

Et le code "Affiche_Image" :

Sub Affiche_Image(Plage As Range)
Dim Ws As Worksheet                   ' Sert à manipuler plus facilement l'objet feuille
Dim Sh As Shape                       ' Sert à manipuler les formes (images) déjà affichées
Dim Image As String                   ' Contiendra le nom de l'image
Dim Lg As Long                        ' Numéro de la dernière ligne colonne B

  Set Ws = Sheets("Feuil1")                                         ' Nom de la feuille

  Application.ScreenUpdating = False                                ' Interdit le raffraîchissement d'écran

  With Ws
    For Each Sh In .Shapes                                          ' Parcourt de toute la collection formes (images)
    Debug.Print Sh.Name
      If Sh.Name Like "Picture*" Then
        If Not Intersect(Plage, Sh.TopLeftCell) Is Nothing Then     ' si elle est dans zone d'affichage
          Sh.Delete                                                 ' On l'efface
        End If
      End If
    Next Sh
    If Plage.Offset(, -1) = "" Then Exit Sub
    Image = ThisWorkbook.Path & "\Bossel\" & Plage.Offset(, -1)     ' Répertoire à actualiser

    On Error Resume Next                                            ' On s'affranchit des erreurs
    With .Pictures.Insert(Image).ShapeRange                         ' On insère l'image dont le nom est en colonne B
      .LockAspectRatio = msoFalse                                   ' On peut la redimmensionner comme on veut
      .Left = Plage.Left                                            ' Position gauche
      .Top = Plage.Top                                              ' Position Haut
      .Width = Plage.Width                                          ' Largeur
      .Height = Plage.Height                                        ' hauteur
    End With
    If Err.Number > 0 Then                                          ' Si une erreur (image non présente)
      MsgBox Plage.Offset(-1, 0) & vbCr & "Image inexistante"        ' On le signale
    End If
  End With
End Sub

Nota, il faudra que tu supprimes manuellement l'image initiale (celle qui est en dessous de la cellule à modifier), et que tu adaptes la largeur et la hauteur de la colonne et de la ligne.

Bonne journée

Salut Cousinhub,

Excellent, merci beaucoup pour ton aide, c'est exactement ça!

Bonne journée à toi également,

Très cordialement,

Martinsss

Rechercher des sujets similaires à "modifier emplacement image"