La cuestión es la siguiente, estoy haciendo una lista de precio y son muchos productos, hice una macro para que me inserte la imagen en cierta celda según la columna "A", que ahí se encuentra el código del producto. lo que hace es concatenar la dirección de la hoja de calculo, mas la carpeta donde se encuentran las imágenes y al final ".jpg", mi código recorre todas las filas pero no me inserta nada con "ActiveSheet.Shapes.AddPicture()", pero si me las inserta si uso "ActiveSheet.Pictures.Insert (img_ruta)", pero lo malo de ese código es que te genera un link a esa imagen en esa carpeta, y si la quiero mandar por mail o la abro en otra pc no me carga las imagenes porque esa carpeta no existe en esa pc. si te sirve le saco screenshot a la programación.
código:
Private Sub CommandButton3_Click()
On Error Resume Next
Dim img_ruta As String
'desactivamos la actualizacion de pantalla
Application.ScreenUpdating = False
'elejimos la celda I3
ActiveSheet.Range("I3").Select
'recorremos cada fila mientras haya datos en la columna A
Do While ActiveCell.Offset(0, -8).Value <> Empty
ActiveSheet.Range("I1").Value = ActiveCell.Offset(0, -8).Value
img_ruta = ThisWorkbook.Path & "\imagenes\" & ActiveSheet.Range("I1").Value & ".jpg"
ActiveSheet.Range("J1").Value = img_ruta
With ActiveSheet.Shapes.AddPicture(Filename:=img_ruta, linktofile:=msoFalse, _
SaveWithDocument:=msoCTrue, Left:=0, Top:=0, Width:=-1, Height:=-1)
.LockAspectRatio = 0
.Top = ActiveCell.Top
.Left = ActiveCell.Left
.Width = 50
.Height = 45
End With
'activamos la fila siguiente
ActiveCell.Offset(1, 0).Select
Loop
Range("A2").Select
Application.ScreenUpdating = True
End sub