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.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 | 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 = TrueEnd sub |