Código IF, para verificar datos en catalogo de imágenes

Encontré este código para catálogo de imágenes y lo adapte para mis necesidades, explico en una carpeta tengo el archivo y otra subcarpeta las imágenes, de modo que cuando coincida el nombre de la celda, que esta en el rango H4:H701, con el nombre de la imagen que esta en la subcarpeta, me traiga la imagen, pero estoy atorado para que si no coincide el nombre de la celda, con el de la subcarpeta de imágenes, porque es diferente o esta mal escrito, me traiga la imagen en blanco, manejo excel 2010

Private Sub Worksheet_SelectionChange(ByVal Target As Range)

On Error Resume Next

If Not Intersect(Target, Range("H4:H701")) Is Nothing Then
Image1.Picture = _
LoadPicture(ActiveWorkbook.Path & "\IMÁGENES\" & Target & ".jpeg")
End If

If Not Intersect(Target, Range("H4:H701")) Is Nothing Then

Image1.Visible = True
Else
Image1.Visible = False
End If

End Sub

1 Respuesta

Respuesta
1

Quedaría así:

Private Sub Worksheet_SelectionChange(ByVal Target As Range)
'Mod.Por.DAM
  If Not Intersect(Target, Range("H4:H701")) Is Nothing Then
    ruta = ActiveWorkbook.Path & "\imagenes\"
    If Dir(ruta & Target & ".jpg") <> "" Then
      Image1.Picture = LoadPicture(ruta & Target & ".jpg")
    Else
      Image1.Picture = Nothing
    End If
  End If
End Sub

Saludos.Dante Amor

No olvides finalizar

Hola experto, el código funciono muy bien , aunque le comento lo que sucedió cambie la extensión a jpeg, porque con jpg no me mostraba nada, pensé que había quedado al 100, pero cuando selecciono toda la columna H o alguna fila que se cruce con la columna H, me arroja el error 13 en tiempo de ejecución "No coinciden los tipos", podre evitar este mensaje con:

On Error
Resume Next

O que me recomienda?

Prueba esto

Private Sub Worksheet_SelectionChange(ByVal Target As Range)
'Mod.Por.DAM
If Not Intersect(Target, Range("H4:H701")) Is Nothing Then
If Target.Count > 1 Then Exit Sub
ruta = ActiveWorkbook.Path & "\imagenes\"
If Dir(ruta & Target & ".jpg") <> "" Then
Image1.Picture = LoadPicture(ruta & Target & ".jpg")
Else
Image1.Picture = Nothing
End If
End If
End Sub

Ya la probé y ya no me marca error, pero tampoco me muestra el control de imagen

Si seleccionas una celda te debe mostrar la imagen. Si seleccionas varias no te muestra nada, ¿por qué cuál de todas las seleccionadas te debe mostrar?

Pues es como menciona, de que al posicionarse sobre alguna celda del rango antes mencionado, me debe traer la imagen y si no coincide el nombre de la celda, ya sea porque no esta o esta mal escrito, que no muestre nada en el control de imagen, pero con este nuevo código, probé en varias celdas una por una y no muestra nada, a diferencia del código anterior que me proporciono que si lo hacia pero marcando el error 13

A mí si me funciona.

Prueba en un archivo diferente

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas