Buscar valor en matriz duda

Estimado expertos disculpa la molestia pero aun no logro hacer mi búsqueda de un valor en la matriz, he modificado un poco el código que me hiciste el favor de proporcionarme pero cuando lo ejecuto siempre me dice que sin resultados.

Este es el código

Option Explicit
'Esto en las declaraciones del form
Private Type Estructura
Desde As Double
Hasta As Double
Valor As Double
End Type
' Declaramos el vector
Dim Myvar(1 To 3) As Estructura
Private Sub Command1_Click()
'En un boton de comando, toca explorar la data
Dim intx As Double
Dim intBuscar As Double
Dim dblValor As Double
Dim bolExiste As Double
intBuscar = Val(Trim(Text1.Text))
bolExiste = False
For intx = LBound(Myvar) To UBound(Myvar) ' esta parte la modifique
If Myvar(intx).Desde >= Val(intBuscar) And Myvar(intx).Hasta <= Val(intBuscar) Then
dblValor = Myvar(intx).Valor
bolExiste = True
Exit For
End If
Next
If bolExiste = True Then
MsgBox "Se hallo valor " & Val(dblValor), vbInformation, "Busqueda"
Else
MsgBox "Sin resultados", vbExclamation, "Busqueda"
End If
End Sub
Private Sub Form_Load()
'En el load del form, tocaria que le llenes data
' Llenamos con datos para el elemento 1 del arreglo
Myvar(1).Desde = 0.01
Myvar(1).Hasta = 5
Myvar(1).Valor = 14
' Llenamos con datos para el elemento 2 del arreglo
Myvar(2).Desde = 5.01
Myvar(2).Hasta = 11
Myvar(2).Valor = 20
' Llenamos con datos para el elemento 3 del arreglo
Myvar(3).Desde = 11.01
Myvar(3).Hasta = 19
Myvar(3).Valor = 25
End Sub

1 Respuesta

Respuesta
1

Intenta cambiar la linea del for, y me comentas si ahí mejora

'Lo que esta

For intx = LBound(Myvar) To UBound(Myvar)

'CAmbialo por

For intx = 1 To 3

Lo que agregastes, me parece que es val(intbuscar) en la linea del if, no es necesario.. ya que el val ya se le aplica cuando se lee el textbox

estimado experto ya lo había intentado de esa manera de hecho lo verifique con msgbox y en ambos casos en el for pasa 1,2,3.

Siento que aquí no debe estar el problema a la hora de buscar Desde y Hasta y traer el valor

If Myvar(intx).Desde >= Val(intBuscar) And Myvar(intx).Hasta <= Val(intBuscar) Then
dblValor = Myvar(intx).Valor

Agradezco de antemano tus comentarios

Saludos

Creo que tienes razón. Prueba esto

If Myvar(intx).Desde <= Val(intBuscar) And Myvar(intx).Hasta >= Val(intBuscar) Then

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas