AYUDA PARA REPARAR MACRO QUE INSERTA IMAGENES DESDE UNA CARPETA LOCAL USANDO BUCLE WHILE
Publicado por AMBROSIO RODRIGUEZ (3 intervenciones) el 29/06/2019 07:08:36
Hola!
Estoy trabajando en una Macro que inserte imágenes en una hoja de excel desde una carpeta local.
La idea es que utilizando las referencias de una tabla (Columna B), la Macro busque las imágenes en una carpeta local e inserte dichas imágenes en la celda correspondiente (Columna A).
Para ello utilicé un bucle While.
Adicionalmente, agregué un manejador de errores On Error Goto, para que cuando en la carpeta no se encuentre algunas de las fotos, la Macro inserte una "Carita Triste" y el bucle continue su ejecución hasta que consiga una celda vacía en la Columna B.
Sin embargo cuando ejecuto la Macro, al llegar a una celda cuya foto no se encuentra y la Macro inserta la "carita triste", se detiene el bucle.
Aquí dejo el código de VBA:
Estoy trabajando en una Macro que inserte imágenes en una hoja de excel desde una carpeta local.
La idea es que utilizando las referencias de una tabla (Columna B), la Macro busque las imágenes en una carpeta local e inserte dichas imágenes en la celda correspondiente (Columna A).
Para ello utilicé un bucle While.
Adicionalmente, agregué un manejador de errores On Error Goto, para que cuando en la carpeta no se encuentre algunas de las fotos, la Macro inserte una "Carita Triste" y el bucle continue su ejecución hasta que consiga una celda vacía en la Columna B.
Sin embargo cuando ejecuto la Macro, al llegar a una celda cuya foto no se encuentra y la Macro inserta la "carita triste", se detiene el bucle.
Aquí dejo el código de VBA:
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
Sub Insertar ()
On Error GoTo carita
Dim n As Integer
Dim fila As Integer
While Cells(fila, "B").Value <> ""
Dim FULL As String
FULL = (("C:\Users\XXX\Documents\CARPETA1\CARPETA2\") & (Cells(fila, "B")) & (".jpg"))
Cells(fila, "A").Select
Dim Ph As Picture
Set Ph = Worksheets("Hoja1").Pictures.Insert(FULL)
Ph.Width = 100
Ph.Height = 50
Ph.Left = Cells(fila, "A").Left + (Cells(fila, "A").Width - Ph.Width) / 2
Ph.Top = Cells(fila, "A").Top + (Cells(fila, "A").Height - Ph.Height) / 2
n = n + 1
fila = fila + 1
Wend
Exit Sub
carita:
Dim Px As Picture
Set Px = Worksheets("Hoja1").Pictures.Insert("C:\Users\XXX\Documents\CARPETA1\CARPETA2\NOMBRE DEL ARCHIVO.jpg")
Px.Width = 40
Px.Height = 58
Px.Left = Cells(fila, "A").Left + (Cells(fila, "A").Width - Px.Width) / 2
Px.Top = Cells(fila, "A").Top + (Cells(fila, "A").Height - Px.Height) / 2
End Sub
Valora esta pregunta


0