El codigo que busca imagenes en formulario de exel no las carga

Tengo un sistema en exel en formularios que me encuentra datos por un codigo, y al mismo le agregue una busqueda de imagen, la cual deberia de buscarme la imagen al colocar el codigo dicha imagen esta en la carpeta img dodne tengo el libro de exel, este el el codigo que utilize:


         imag = ThisWorkbook.Path & "\img\" & dato & ".jpg"
        On Error Resume Next
        'si hay error se saltea la siguiente linea
        Image1.Picture = LoadPicture(imag)
        control = 1
    Este me coloca la iamgen predeterminada en el formulario
        imag = ThisWorkbook.Path & "\img\usuario.jpg"
        Image1.Picture = LoadPicture(imag)
    End If

 Aqui dejo el codigo completo

Rem COMANDO PARA BUSQUEDA DE DATOS
Private Sub codigo_equipo_AfterUpdate()
    Dim imag, nameimag
    Sheets("Datos").Select
    filalibre = Range("A10").End(xlDown).Offset(1, 0).Row
    'la variable filalibre guarda el nro. De la primer celda vacía.
    control = 0
    dato = codigo_equipo
    rango = "A10:A" & filalibre
    Set midato = ActiveSheet.Range(rango).Find(dato, LookIn:=xlValues, LookAt:=xlWhole)
    If (midato) Is Nothing Then
       Rem ENCONTRAR DATOS
        Else
        ubica = midato.Address(False, False)
        codigo_equipo.Value = Range(ubica).Offset(0, 0).Value
        nombre_equipo.Value = Range(ubica).Offset(0, 1).Value
        unidad_ubicacion.Value = Range(ubica).Offset(0, 2).Value
        fabricante.Value = Range(ubica).Offset(0, 3).Value
        tlf_fabricante.Value = Range(ubica).Offset(0, 4).Value
        caracteristicas.Value = Range(ubica).Offset(0, 5).Value
        funcionamiento.Value = Range(ubica).Offset(0, 6).Value
        observaciones.Value = Range(ubica).Offset(0, 7).Value
        ComboBox1_instrucciones_tecnicas.Value = Range(ubica).Offset(0, 8).Value
        ComboBox2_estado_equipo.Value = Range(ubica).Offset(0, 9).Value
        sub_sistema.Value = Range(ubica).Offset(0, 10).Value
        elementos.Value = Range(ubica).Offset(0, 11).Value
        componentes.Value = Range(ubica).Offset(0, 12).Value
        nombre_empresa.Value = Range(ubica).Offset(0, 13).Value
        ubicacion_empresa.Value = Range(ubica).Offset(0, 14).Value
        rif.Value = Range(ubica).Offset(0, 15).Value
        tlf_empresa.Value = Range(ubica).Offset(0, 16).Value
        nombres_involucrados.Value = Range(ubica).Offset(0, 17).Value
        revisado_por.Value = Range(ubica).Offset(0, 18).Value
         imag = ThisWorkbook.Path & "\img\" & dato & ".jpg"
        On Error Resume Next
        'si hay error se saltea la siguiente linea
        Image1.Picture = LoadPicture(imag)
        control = 1
        imag = ThisWorkbook.Path & "\img\usuario.jpg"
        Image1.Picture = LoadPicture(imag)
    End If
        Set midato = Nothing
End Sub

En resumen la iamgen predetermianda si la colcoa pero al realizar la busqueda por codigo no hace nada.

1 respuesta

Respuesta

Según lo que leo estás enviando 2 imágenes al mismo control por lo que siempre te queda la segunda.

Image1.Picture = LoadPicture(imag)
        control = 1
        imag = ThisWorkbook.Path & "\img\usuario.jpg"
        Image1.Picture = LoadPicture(imag)

Si lo que intentas es que solo ante un error cargue la predeterminada, debes evaluarlo así a partir del control de error:

On Error Resume Next
Image1.Picture = LoadPicture(imag)
'si se presenta un error cargará la predeterminada
If Err.Number > 0 Then
    imag = ThisWorkbook.Path & "\img\usuario.jpg"
    Image1.Picture = LoadPicture(imag)
Else
    Control = 1   '???
End If
On Error GoTo 0

Sdos y no olvides valorar las respuestas.

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas