En esta entrada veremos una manera de crear un CATÁLOGO con imágenes en Excel.
Vamos a crear en primer lugar, una tabla de productos donde guardaremos algunos campos como Código, Descripción, Precio, y otros.
Si el código del producto coincide con el nombre de la imagen, no hará falta agregar nada más. Y las instrucciones para insertar la imagen serán las siguientes:
'el nombre de la imagen se toma de la col D (código)
archi = ruta & Cells(mifila, 4) & ".jpg"
ActiveSheet.Pictures.Insert(archi).Select
En cambio si los nombres de los archivos de imagen no coinciden con el código, tendremos que agregar otra columna para guardar ese nombre, con su extensión o no.
'o el nbre
se lo toma de la col H que ya tiene la extensión
archi = ruta & Cells(mifila, 8)
ActiveSheet.Pictures.Insert(archi).Select
ruta = ThisWorkbook.Path & "/imagenes/"
Sub buscaimagen()
'esta macro se ejecuta teniendo de antemano la ruta de la carpeta
'que contiene las imágenes
'se borran imágenes anteriores
On Error Resume Next
For Each sh In ActiveSheet.Shapes
If
Left(sh.Name, 7) = "Picture" Then sh.Delete
Next sh
ruta = ThisWorkbook.Path &
"/imagenes/" 'ruta preestablecida
'ruta = Range("M2") ' o contenido de una celda
'fila de inicio
mifila = 7
'recorre la col que tiene las
direcciones de los archivos y los ubica
While Cells(mifila, 4) <>
""
'el nombre de
la imagen se toma de la col D (código)
'archi = ruta
& Cells(mifila, 4) & ".jpg"
'o el nbre se
lo toma de la col H que ya tiene la extensión
archi = ruta & Cells(mifila, 8)
'evaluar si existe el archivo en carpeta, sino continuar con el resto
If Dir(archi) = "" Then GoTo sigo
ActiveSheet.Pictures.Insert(archi).Select
'las
dimensiones son las de la celda en fila activa y col F
'se incrementa
el margen en 1 y se disminuye la dimensión en 1 para mostrar el borde.
With
Selection.ShapeRange
.Left
= Cells(mifila, 6).Left + 1
.Top
= Cells(mifila, 6).Top + 1
.LockAspectRatio
=
msoFalse 'NO
mantiene proporción
.Width
= Cells(mifila, 6).Width - 1
.Height
= Cells(mifila, 6).Height - 1
End With
sigo:
'pasa a fila
siguiente
mifila = mifila
+ 1
Wend
'fin del proceso. se posiciona en
alguna celda de encabezado.
[E6].Select
Exit Sub
sinImagen:
MsgBox "Se presentó un problema
con la ruta o nombre de archivo", , "ERROR"
End Sub
ATENCIÓN: a la macro Sub buscaImagen( ) que se encuentra en el libro, le faltan las instrucciones marcadas de color.
NOTA: Con este modo de insertar imágenes, se puede imprimir (Pdf o impresora) pero si se envía el li bro o se lo coloca en alguna ruta de descarga (como en este caso) deberá adjuntarse también la carpeta con los archivos que deberán ser colocados en la misma ruta que se estableció en la macro. En este caso lo recomendable es dejarla indicada en alguna celda.
Ya veremos en otros ejemplos cómo insertar y guardar en el mismo libro los archivos. Esto solo es recomendable cuando el peso de las imágenes no impidan el buen manejo del libro.
Descargar archivo de ejemplo desde aquí.
Acceso al video N° 49
No hay comentarios.:
Publicar un comentario