Hello,
En reprenant l'idée de LouReeD, c'est beaucoup plus rapide , si au lieu d'utiliser une formule pour afficher l'image de la plage, on utilise un code VBA qui à la fin des calculs , copie la plage qui nous intéresse et la colle en shape à l'endroit que l'on veut.
Sub CopierPlageEnImage()
Dim rng As Range, shp As Shape, cible As Range, nomShape As String
nomShape = "ImagePlage" ' Nom de la shape à remplacer
Set rng = Feuil2.Range("$CV$100:$EN$128")
Set cible = Feuil2.Range("P12") ' cellule de destination
' --- Supprimer l'image si elle existe ---
On Error Resume Next
Feuil2.Shapes(nomShape).Delete
On Error GoTo 0
' Copier la plage en image
rng.CopyPicture Appearance:=xlScreen, Format:=xlPicture
' Coller l'image (méthode compatible)
Feuil2.Pictures.Paste.Select
' Récupérer l'objet collé
Set shp = Selection.ShapeRange.Item(1)
' Positionner sur cellule cible
With shp
.Left = cible.Left
.Top = cible.Top
.Name = nomShape
End With
End Sub
Chez moi , l'exécution de la macro est presque instantanée.
Ami calmant, J.P