Notifications
Clear all

Comparar item com uma coleção

4 Posts
2 Usuários
0 Reactions
836 Visualizações
(@selmo)
Posts: 236
Reputable Member
Topic starter
 

Boa noite pessoal.

Em duvida com algo aqui. Sinceramente leigo no que se refere a coleções. Até então não tinha surgido a necessidade de utiliza-lar. Então não sei se isso é possivel, utlizando parte de um código pronto que mantenho em caso de nescessidade, adiciona os itens e compara retirando os duplicados, só que para resolver um certo quebra cabeça, preciso comparar um item com toda a coleção, isso é possivel?
Utlizo o seguinte código:

 ultimaLinha = Plan1.Range("A" & Rows.Count).End(xlUp).Row
         temp = Plan1.Range("A2:A" & ultimaLinha).Value

         For Each Value In temp
             If Len(Value) > 0 then area.Add Value, CStr(Value)
         Next Value

E esperava fazer algo que funcionasse, algo do genero:

if ListView1.ListItems(i).SubItems(1) = area then
         end if

Estou tentando alterar a cor do listview de acordo com os dados repetidos, e antes de adicionar tal informação ao listview, compara-la com a coleção, se for repetida então mudar a cor.

 
Postado : 03/02/2015 3:59 pm
(@fernandofernandes)
Posts: 43750
Illustrious Member
 

area é um dicionário e temp é uma matriz ?

Eu nunca trabalhei com matriz usando o for each, se deu certo, aprendi mais uma... (outro dia eu vou testar)...
Qto a leitura do dicionario area, da forma como escreveu, nao funcionará...

if area.exists(ListView1.ListItems(i).SubItems(1))  then
'assim que se olha para um dicionário...
end if
 
Postado : 03/02/2015 5:44 pm
(@selmo)
Posts: 236
Reputable Member
Topic starter
 

Como adicionar os itens do listview a coleção?

 
Postado : 04/02/2015 1:48 pm
(@selmo)
Posts: 236
Reputable Member
Topic starter
 

Apenas para testar o código e tentar compreender o funcionamento da coleção, fiz uma alteração e executei, só que mesmo assim o resultado está sendo sempre positivo, mesmo não constando o item na coleção. O Exemplo de teste que utilizie:

Private Sub CommandButton1_Click()
Dim ultimaLinha As Long, area As New Collection
Dim Value As Variant, temp() As Variant

         On Error Resume Next
         ultimaLinha = Plan1.Range("A" & Rows.Count).End(xlUp).Row
         temp = Plan1.Range("A2:A" & ultimaLinha).Value


         For Each Value In temp
             If Len(Value) > 0 Then area.Add Value, CStr(Value)
         Next Value
        
        If area.exists = "selmo" Then
            MsgBox "esse nome já consta no nosso banco de dados"

        Else
            MsgBox "Nome não consta no nosso DataBase"

        End If
End Sub
 
Postado : 05/02/2015 9:25 am