Usuario
Buenos días.
Me gustaría saber si, en un excel, puedo insertar una forma (un rectángulo) y luego, con una macro, rellenar este rectángulo con el logotipo de una empresa en función del nombre de ésta.
Necesitaría hacerlo en función de este nombre que se encuentra en una celda determinada, y que, al cambiar el nombre, cambie el logotipo.
He conseguido hacer que, a partir del nombre, me aparezca el logotipo de la empresa, pero me gustaría que los logotipos me aparecieran todos en el mismo sitio y con el mismo tamaño (por esto, me gustaría poder rellenar el rectángulo con estas imágenes).
Muchas gracias y recibid un cordial saludo,
Me gustaría saber si, en un excel, puedo insertar una forma (un rectángulo) y luego, con una macro, rellenar este rectángulo con el logotipo de una empresa en función del nombre de ésta.
Necesitaría hacerlo en función de este nombre que se encuentra en una celda determinada, y que, al cambiar el nombre, cambie el logotipo.
He conseguido hacer que, a partir del nombre, me aparezca el logotipo de la empresa, pero me gustaría que los logotipos me aparecieran todos en el mismo sitio y con el mismo tamaño (por esto, me gustaría poder rellenar el rectángulo con estas imágenes).
Muchas gracias y recibid un cordial saludo,
Experto
Hola esta es tu solución. Tienes que
insertar un objeto IMAGE de los controles activex de excel y luego
inserta esta macro en el evento change de la hoja donde está la imagen.
Este ejemplo está preparada para que cuando escribas el nombre de la
imagen en la celda H6 se muestre de forma automática la imagen dentro
del objeto image1. Para ello tendrás que modificar el path que aparece
en esta macro por el tuyo y, claro esta, el nombre que escribas en la
celda H6 será el nombre de algún archivo de imagen jpg que tienes
guardado en ese path. Esta macro es un evento por lo que estará situada
en el objeto hoja en cuestión y no en un módulo.
Private Sub Worksheet_Change(ByVal Target As Range)
On Error GoTo final
If Target.Address = "$H$6" Then
nombre = Target.Value
ActiveSheet.Image1.Picture = LoadPicture("C:\Users\Luis\fotos\" & nombre & ".jpg")
End If
Exit Sub
final:
MsgBox "no se ha encontrado la foto, revise el path"
End Sub
RECUERDA FINALIZAR Y PUNTUAR MI LABOR POR FAVOR.
Private Sub Worksheet_Change(ByVal Target As Range)
On Error GoTo final
If Target.Address = "$H$6" Then
nombre = Target.Value
ActiveSheet.Image1.Picture = LoadPicture("C:\Users\Luis\fotos\" & nombre & ".jpg")
End If
Exit Sub
final:
MsgBox "no se ha encontrado la foto, revise el path"
End Sub
RECUERDA FINALIZAR Y PUNTUAR MI LABOR POR FAVOR.
No hay comentarios:
Publicar un comentario