Para que quede en la celda que necesitas:
Sub insertarfoto()
'pone la imagen según un número
'Por.daM
'carpeta = "C:\Usuarios\Berenice\Mis imágenes\"
'carpeta = "C:\imagen\"
imagen = Range("M7")
Range("L9").Select
izq = Range("L9").Left
arr = Range("L9").Top
ActiveSheet.Pictures.Insert("C:\imagen\" & imagen).Select
Selection.ShapeRange.LockAspectRatio = msoFalse
Selection.ShapeRange.Height = 65
Selection.ShapeRange.Width = 107
Selection.ShapeRange.Rotation = 0#
Selection.ShapeRange.Left = izq
Selection.ShapeRange.Top = arr
End Sub
Si quieres que sea en automático, tienes que poner la macro en un evento de worksheet así:
Sigue las Instrucciones para poner la macro en worksheet
1. Abre tu libro de excel
2. Para abrir Vba-macros y poder pegar la macro, Presiona Alt + F11
3. Del lado izquierdo dice: VBAProject, abajo dale doble click a worksheet(tu hoja)
4. Del lado derecho copia la macro
Private Sub Worksheet_Change(ByVal Target As Range)
If Not Intersect(Target, Range("L7")) Is Nothing Then
imagen = Range("M7")
izq = Range("L9").Left
arr = Range("L9").Top
ActiveSheet.Pictures.Insert("C:\imagen\" & imagen).Select
Selection.ShapeRange.LockAspectRatio = msoFalse
Selection.ShapeRange.Height = 65
Selection.ShapeRange.Width = 107
Selection.ShapeRange.Rotation = 0#
Selection.ShapeRange.Left = izq
Selection.ShapeRange.Top = arr
End If
End Sub
Cambia en esta macro, en esta línea, "L7" por la celda en donde pongas un dato y con ese dato la imagen se actualice.
If Not Intersect(Target, Range("L7")) Is Nothing Then
Saludos. Dante Amor
No olvides finalizar