Problema con macro para buscar imagen

Elsa Matilde buenos días cree una macro para buscar imagen en mi pc. Trate de resolver el problema inicial que me salia error 9, borre la carpeta de imágenes y cree una nueva, con esto la macro queda así:

Private Sub Worksheet_Change(ByVal Target As Range)

On Error GoTo Errores

rutaimagen = "C:\Users\Educars\Documents\piezas\" & Sheets("BUSCADORBD").Range("K9").Value
ActiveSheet.Shapes("FOTO").Fill.UserPicture (rutaimagen)

Exit Sub
Errores:
ActiveSheet.Shapes("FOTO").Fill.UserPicture ("C:\Users\Educars\Documents\piezas\img.jpg")
MsgBox ("PIEZA NO EXISTE")
End Sub

Y me sale este error SE HA PRODUCIDO EL ERROR '-2147024894894 (80070002)'EN TIEMPO DE EJECUCIÓN: ERROR EN EL MÉTODO 'USERPICTURE' DE OBJETO 'FIILFORMAT'

La parte en negrita es la que se me sombrea de amarillo.

1 Respuesta

Respuesta
1

La primera parte de la macro es correcta. Pero cuando no encuentra una foto debe enviar un mensaje solamente ... no volver a llamar al objeto que no encontró:

En el sector de Errores dejé tu mensaje y otro más amplio indicando el nombre de la imagen que no encontró. Deja 1 solo de los 2 mensajes.

Private Sub Worksheet_Change(ByVal Target As Range)
On Error GoTo Errores
rutaimagen = "C:\Users\Educars\Documents\piezas\" & Sheets("BUSCADORBD").Range("K9").Value
ActiveSheet.Shapes("FOTO").Fill.UserPicture (rutaimagen)
Exit Sub
Errores:
MsgBox ("PIEZA NO EXISTE")
'o un mensaje indicando el nombre de la imagen que no encontró
Msgbox "PIEZA NO EXISTE: " & Sheets("BUSCADORBD").Range("K9").Value
End Sub

Elsa Matilde buenas tardes, deje la macro de la siguiente manera:  Private Sub Worksheet_Change(ByVal Target As Range)
On Error GoTo errores
rutaimagen = "C:\Users\Educars\Documents\piezas\" & Sheets("BUSCADORBD").Range("K9").Value
ActiveSheet.Shapes("FOTO").Fill.UserPicture (rutaimagen)
Exit Sub
errores:
MsgBox ("PIEZA NO EXISTE")
End Sub

AHORA EN VEZ DE APARECER LA IMAGEN SOLO APARECE EL MENSAJE QUE SE LE INDICO A LA MACRO. QUE PODRIA ESTAR PASANDO?

En realidad SIEMPRE tuviste el fallo. Lo que pasa es que SIEMPRE se iba a la instrucción de error ... y como allí repetías la instrucción te pareció que fallaba 'esa' línea... pero el fallo está en la llamada a la foto.

Puede pasar que la foto no se encuentra en esa ruta o no coincide el nombre asignado. O no tenés un cuadro de imagen llamado FOTO.

Revisá el texto de la ruta completa, el nombre de la imagen y su extensión y la celda K9.

Detalle importante: el evento Change se ejecuta para TODOS los cambios en la HOJA... quizás estés modificando otras celdas que no tienen que ver con la foto. ¿Cuándo debiera llenar el control de imagen? ¿Al cambio en qué celda?

Sdos!

revise la ruta de la imagen y pues desde cualquier entrada me da la misma, si tengo un cuadro con el nombre "FOTO" Y DEBERÍA DE CAMBIAR LA IMAGEN AL CAMBIAR EL VALOR EN "K9" es ahí donde aparece el nombre de la foto. que también la verifique y es el mismo. realmente no entiendo que pasa, yo pensé que era la ruta pero me voy a documentos y busco la carpeta y y con solo ver las propiedades de la imagen copio la dirección 

Elsa Matilde revise la ruta de la imagen y pues desde cualquier entrada me da la misma, si tengo un cuadro con el nombre "FOTO" Y DEBERÍA DE CAMBIAR LA IMAGEN AL CAMBIAR EL VALOR EN "K9" es ahí donde aparece el nombre de la foto. que también la verifique y es el mismo. realmente no entiendo que pasa, yo pensé que era la ruta pero me voy a documentos y busco la carpeta y y con solo ver las propiedades de la imagen copio la dirección. no entiendo por que no aparece la foto

Elsa Matilde si deseas te envió la hoja así creas una ruta y observas si te cambia la foto. pues reviso y reviso y no entiendo por que no me cambia la foto 

Enviame el libro y la imagen que intentas mostrar.

Sdos!

Buenas tardes, te la acabo de enviar explicando donde esta el buscador, y las imágenes.

Si, ya vi tu libro y te estás olvidando de la extensión de la imagen.

Por lo tanto a la instrucción agregale la extensión de este modo (revisa de que todas tengan la misma extensión.

rutaimagen = "C:\Users\Educars\Documents\piezas\" & Sheets("BSUCADORBD").Range("K9") & ".jpg"

Sdos y no olvides valorar la respuesta.

Elsa

Elsa Matilde buenos días, cuando dices extensión te refieres al .jpg que agregas al final del nombre, pues copie lo que me enviaste y aun no me sale la foto, me podrías enviar la hoja nuevamente por favor 

cabe destacar que ya le agregue el .jpg a todas mis imágenes

Elsa Matilde ya pude resolver, muchísimas gracias ya valoro la respuesta

Tus archivos de imagen ya tienen la extensión.

Pero en tu hoja Inventario, col B no la tienen, solo guardas el nombre. Por esa razón lo agrego en el código, para no tener que modificar la col B,

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas