Bonjour,
Quelqu'un pourrait il m'aider à modifier cette macro. Actuellement, celle-ci me permet d'afficher dans les cellules de la colonne B les images dont les noms figurent dans la colonne A. Ces images se doivent d'être contenues dans le même répertoire que le fichier excel.
J'aimerais simplement la modifier et faire que les images s'affichent au format de la cellule B en gardant les proportions. C'est au maximum la largeur de la cellule et au maximum la hauteur de la cellule. Mais je me repete les proportions se doivent d'être respectées.
Voici la macro actuelle :
Private Sub Worksheet_Change(ByVal Target As Excel.Range)
Dim Val As String
Dim MyCell As Range
Dim MyPicture As Picture
Dim Pict
Dim a As Long
On Error GoTo errorhandler
Application.ScreenUpdating = False
Val = Target.Value
With Application.FileSearch
.NewSearch
.Filename = ".jpg"
.LookIn = ThisWorkbook.Path
.SearchSubFolders = False
.Execute msoSortByFileName, msoSortOrderAscending
If .Execute > 0 Then
Set MyCell = Target.Offset(0, 1)
MyCell.Select
For Each Pict In ActiveSheet.DrawingObjects ' supprimer ancienne image dans cellule
If Pict.Left = MyCell.Left + (MyCell.Width - 50) / 2 And Pict.Top = MyCell.Top + (MyCell.Height - 50) / 2 Then Pict.Delete
Next
Set MyPicture = ActiveSheet.Pictures.Insert(ThisWorkbook.Path & "\" & Val & ".jpg")
With MyPicture.ShapeRange
'.LockAspectRatio = msoFalse
.Height = 55
'.Width = 55
.Top = MyCell.Top + (MyCell.Height - 50) / 2
.Left = MyCell.Left + (MyCell.Width - 50) / 2
End With
MyCell.Select
MsgBox Pict.Left
End If
End With
Application.ScreenUpdating = True
Exit Sub
errorhandler:
Application.ScreenUpdating = True
Exit Sub
End Sub
Quelqu'un pourrait il m'aider à modifier cette macro. Actuellement, celle-ci me permet d'afficher dans les cellules de la colonne B les images dont les noms figurent dans la colonne A. Ces images se doivent d'être contenues dans le même répertoire que le fichier excel.
J'aimerais simplement la modifier et faire que les images s'affichent au format de la cellule B en gardant les proportions. C'est au maximum la largeur de la cellule et au maximum la hauteur de la cellule. Mais je me repete les proportions se doivent d'être respectées.
Voici la macro actuelle :
Private Sub Worksheet_Change(ByVal Target As Excel.Range)
Dim Val As String
Dim MyCell As Range
Dim MyPicture As Picture
Dim Pict
Dim a As Long
On Error GoTo errorhandler
Application.ScreenUpdating = False
Val = Target.Value
With Application.FileSearch
.NewSearch
.Filename = ".jpg"
.LookIn = ThisWorkbook.Path
.SearchSubFolders = False
.Execute msoSortByFileName, msoSortOrderAscending
If .Execute > 0 Then
Set MyCell = Target.Offset(0, 1)
MyCell.Select
For Each Pict In ActiveSheet.DrawingObjects ' supprimer ancienne image dans cellule
If Pict.Left = MyCell.Left + (MyCell.Width - 50) / 2 And Pict.Top = MyCell.Top + (MyCell.Height - 50) / 2 Then Pict.Delete
Next
Set MyPicture = ActiveSheet.Pictures.Insert(ThisWorkbook.Path & "\" & Val & ".jpg")
With MyPicture.ShapeRange
'.LockAspectRatio = msoFalse
.Height = 55
'.Width = 55
.Top = MyCell.Top + (MyCell.Height - 50) / 2
.Left = MyCell.Left + (MyCell.Width - 50) / 2
End With
MyCell.Select
MsgBox Pict.Left
End If
End With
Application.ScreenUpdating = True
Exit Sub
errorhandler:
Application.ScreenUpdating = True
Exit Sub
End Sub