Notifications
Clear all

Valor mais proximo coluna listbox

6 Posts
2 Usuários
0 Reactions
1,629 Visualizações
(@araujors)
Posts: 79
Estimable Member
Topic starter
 

Como descobrir o valor mais próximo na coluna da listbox

Exemplo.: tenho uma textbox com o valor 7,81 na listbox coluna 3 tem vários valores, preciso achar o valor mais próximo e mostrar numa variável qualquer

7,00
10,00
3,21
4,23
7,80
7,87

Dim resultN, i, valorAchado

For i = 0 To Me.listbox.ListCount - 1

resultN = Me.litbox.Column(3, i)

Next i
valorAchado = 7,80

 
Postado : 26/02/2018 7:59 pm
(@basole)
Posts: 487
Reputable Member
 

Segue sugestão.

Cole o código abaixo em um botão:


Dim valorVerif As String
 '    ALTERE OS NOMES DOS OBJ.(LISTBOX E TEXTBOX) SE NECESSARIO
 
    With Me.ListBox1
        valorVerif = Me.TextBox1.Value
        
        For i = 0 To .ListCount - 1
            
            If i < 1 And .List(i, 2) > VBA.CDec(valorVerif) Then 'p/ vlrs < q da lista
                MsgBox .List(i, 2)
                
                Exit Sub
                
                ElseIf .List(i, 2) > VBA.CDec(valorVerif) Then
                If VBA.Abs(.List(i - 1, 2) - VBA.CDec(valorVerif)) >= VBA.Abs(.List(i, 2) - _
                                                                VBA.CDec(valorVerif)) Then
                    MsgBox .List(i, 2)
                 
                Else
                    MsgBox .List(i - 1, 2)
                    Exit Sub
                End If
                Exit Sub
              
            Else
                
            End If
        Next i
        
        MsgBox .List(i - 1, 2) 'p/ vlrs > q da lista
        
    End With

 
Postado : 27/02/2018 7:34 am
(@araujors)
Posts: 79
Estimable Member
Topic starter
 

Opa Basole não funcionou amigo, ele traz o valor errado. Não esta trazendo o mais próximo. Eu tinha usado um Vlookup, mas tbm nao deu

 
Postado : 03/03/2018 8:30 am
(@basole)
Posts: 487
Reputable Member
 

Se possível, envie o arquivo, ou um modelo com alguns os dados.

 
Postado : 03/03/2018 1:52 pm
(@araujors)
Posts: 79
Estimable Member
Topic starter
 

Basole,
Eu preciso na verdade é saber como eu faço para achar o menor numero de uma coluna do listbox no meu caso na coluna 2

Menor numero na listbox .: 1,01

exemplo.:

coluna 2
7,04
6,81
1,80
8,91
1,01
9,81

 
Postado : 10/03/2018 6:53 pm
(@araujors)
Posts: 79
Estimable Member
Topic starter
 

Obrigado Basole consegui!

Public Sub min_max()

    Dim i As Long
    Dim listArr() As Double
    Dim offSet As Long
    
    ReDim listArr(0 To Me.ListBox1.ListCount - 1)
    offSet = 0
    
    For i = 0 To Me.ListBox1.ListCount - 1
        If Not IsNull(Me.ListBox1.List(i, 1)) Then
            listArr(i - offSet) = Me.ListBox1.List(i, 1)
        Else
            offSet = offSet + 1
        End If
    Next
    ReDim Preserve listArr(0 To UBound(listArr) - offSet)
    Me.TextBox2 = Application.Max(listArr)
    Me.TextBox3 = Application.Min(listArr)
End Sub
 
Postado : 10/03/2018 11:42 pm