Actualizar imagen en lista desplegable

Tengo la siguiente macro:

Private Sub Worksheet_SelectionChange(ByVal Target As Range)
On Error Resume Next
If Not Intersect(Target, Range("c3")) Is Nothing Then
Image1.Picture = _
LoadPicture(ActiveWorkbook.Path & "\Imagenes\" & Target & ".jpg")
End If
End Sub

Lo que hace es que al seleccionar un texto por ejemplo perro de la lista desplegable coloca la imagen del perro, pero el problema es que si en la lista desplegable sale gato para que salga la imagen del gato debo hacer clic afuera y luego clic adentro de la celda donde dice gato para que recién aparezca y la gracia es que aparezca cuando seleccione gato de la lista desplegable la imagen aparezca automáticamente, ¿cómo lo puedo hacer? Saludos

1 respuesta

Respuesta
1

La lista desplegable que se crea con validación de datos tiene ese problema.

Tendrías que crear un control Cuadro de Lista o Cuadro combinado ActiveX. Eso se hace en la pestaña Programador

Primero pinchas en Modo de Edición y luego en Insertar - Controles ActiveX - Cuadro de Lista o Cuadro Combinado, el que más te guste de los dos.

Y pinchando y arrastrando con el raton lo colocas y le das el tamaño que quieras. Si no ves el cuadro de propiedades pinchas con el botón derecho sobre el control y pinchas en Propiedades. En la propiedad ListFillRange pones las celdas donde están los nombres de las imágenes, por ejemplo, si perro, gato, caballo, etc están en la colujmna A y son 10 pones A1;A10

Luego haz doble clic sobre el control y te aparecerá el editor con el método

Private Sub ListBox1_Click()
End Sub

si habías elegido cuadro de lista

Debes introducir una línea intermedia para que quede esto

Private Sub ListBox1_Click()

Image1.Picture = _

LoadPicture(ActiveWorkbook.Path & "\Imagenes\" & ListBox1.List(ListBox1.ListIndex) & ".jpg")
End Sub

si habías elegido cuadro combinado lo que te sale y como debes dejarlo es esto

Private Sub ComboBox1_Change()

Image1.Picture = _

LoadPicture(ActiveWorkbook.Path & "\Imagenes\" & ComboBox1.List(ComboBox1.ListIndex) & ".jpg")
End Sub

Y para que funcione debes salir del modo de Edición.

Y si va bien puedes ya quitar la macro que habías hecho

Si entiendo el resultado el tema es que la búsqueda de la imagen esta ligada a más información por lo tanto necesito que sea así.

Por ejemplo.

Si busco el perro tiene que aparecer la imagen del abajo, pero al lado de la celda donde perro con un buscarv yo busco el nombre del perro.

Lo mismo con el gato, ¿abajo sale la imagen del gato y con un buscarv obtengo el nombre y así sucesivamente... no hay otra forma?

No lo entiendo, creo que necesito ver el libro para entender lo que quieres.

Me lo puedes mandar a

[email protected]

Si no ocupan mucho podrías mandar tambien alguna imagen del perro, gato, etc.

Pon como asunto el titulo de la pregunta.

enviado. saludos

Ahora ya lo entiendo y he hecho algo. Te pedíria que cambiases tu valoración de buena por excelente una vez recibida la respuesta.

Se inserta un Cuadro combinado en la celda C3, le he incrementado el tamaño para que quepa y se vea el texto.

En las propiedades del cuadro combinado se ponen estas:

En LinkedCell se pone C3

En ListFillRange se pone DATOS! A2:A3

Si hay más de dos animales se pone por supuesto el rango completo en lugar de solo A2:A3

En la hoja "Programadores" hay que añadir este código

Private Sub ComboBox1_Change()
Image1.Picture = LoadPicture(ActiveWorkbook.Path & "\Imagenes\" & ComboBox1.List(ComboBox1.ListIndex) & ".jpg")
End Sub

Y con eso ya funciona. En unos minutos te mando el fichero con esto hecho, con el libro y un par de imágenes. Allá donde se descomprima el fichero debe estar la carpeta imagenes con los animales.

Se puede cambiar la valoracion a master supremo!!?? de verdad que genial no se me habria ocurrido nunca, lo bueno es que ahora puedo hacer asociar buscarv a la celda c3 y los toma igual. la valoracion a la pregunta queda asi o la puedo cambiar en alguna parte digame usted para cerrar esta pregunta con el mayor de los honores. saludos y miles de gracias.

Me pillas porque yo veo el mundo desde el punto de vista del que contesta. Creo que al final de la pregunta debe ponerte la valoración que has dado y un botón donde pone cambiar, una vez pinchado supongo que se puede cambiar por excelente. Pero no estoy seguro del todo si es así.

¡Gracias! Solo sale valorar positivamente, pero la respuesta fue fabulosa nada que decir. Para la próxima será mi guía absolutamente. Muchas gracias!

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas