MACROS EN EXCEL

MACROS EN EXCEL

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

ZackFear95

None

Reactions

1

0

0

0

Access hereTo be able to comment

TheWhiteCode.com is not the creator or owner of the images shown, references are: