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
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 SubEt 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 SubNota, 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