RESUMIR DADOS REPETIDOS
Pessoal, tenho uma listbox com dados assim:
01
01
01
01
02
02
01
03
02
01
01
01
01
01
01
Entao quero transferir estes dados para outra listbox de forma resumida assim
01 = 4x
não é 01 = 2x
01 = 1x
não é 01 = 2x
01 = 6x
Ja rachei a cuca aqui e não consegui escrever um código pra isso. Me sugerem alguma coisa?
01
01
01
01
02
02
01
03
02
01
01
01
01
01
01
Entao quero transferir estes dados para outra listbox de forma resumida assim
01 = 4x
não é 01 = 2x
01 = 1x
não é 01 = 2x
01 = 6x
Ja rachei a cuca aqui e não consegui escrever um código pra isso. Me sugerem alguma coisa?
Vc cria uma variavel array com tamanho igual ao listBox.ListCount
Depois vc faz um loop no primeiro listBox e usando um IF ou um SELECT CASE, vc soma 1 para cada correspondência.
Em seguida vc faz um novo loop com o array e para cada item valor > 0 você adiciona no outro listBox.
A lógica é essa. Dá conta do código?
Depois vc faz um loop no primeiro listBox e usando um IF ou um SELECT CASE, vc soma 1 para cada correspondência.
Em seguida vc faz um novo loop com o array e para cada item valor > 0 você adiciona no outro listBox.
A lógica é essa. Dá conta do código?
Espere pelo: [Ô]Teria um exemplo do código?[Ô] ou algo similar...
Olá, PAYDANA
Acho que você não procurou direito aqui no fórum! Porque estou dizendo isso? Porque você alguns meses atrás abriu um tópico sobre o mesmo assunto e foi solucionado!
Porém, não procurou direito nos seus projetos!
verifique no link abaixo!
http://www.vbmania.com.br/pages/index.php?varModulo=Forum&varMethod=abrir&varID=411982
Espero ter ajudado
Acho que você não procurou direito aqui no fórum! Porque estou dizendo isso? Porque você alguns meses atrás abriu um tópico sobre o mesmo assunto e foi solucionado!
Porém, não procurou direito nos seus projetos!
verifique no link abaixo!
http://www.vbmania.com.br/pages/index.php?varModulo=Forum&varMethod=abrir&varID=411982
Espero ter ajudado
Eu tenhtei da forma que você falou SAMUKA, mais me perco na logica sempre
Private Sub Command14_Click()
Dim Tm As Variant
Tm = [Ô]0[Ô]
For r = 0 To List1.ListCount - 1
S = List1.List(r)
If InStr(S, [Ô]01[Ô]) > 0 Then Tm = Tm + 1 Else List2.AddItem Tm: Tm = [Ô]0[Ô] [ô]DAE APARTIR DAQUI EU TENHO QUE CONTAR OS QUE NAO TEM E é ONDE ESTOU ME PERDENDO PORQUE QUANDO VOLTA A TER NOVAMENTE O 01 ENTAO COMEÇA NOVAMENTE O CICLO
Next r
List2.AddItem stem
End Sub
Private Sub Command14_Click()
Dim Tm As Variant
Tm = [Ô]0[Ô]
For r = 0 To List1.ListCount - 1
S = List1.List(r)
If InStr(S, [Ô]01[Ô]) > 0 Then Tm = Tm + 1 Else List2.AddItem Tm: Tm = [Ô]0[Ô] [ô]DAE APARTIR DAQUI EU TENHO QUE CONTAR OS QUE NAO TEM E é ONDE ESTOU ME PERDENDO PORQUE QUANDO VOLTA A TER NOVAMENTE O 01 ENTAO COMEÇA NOVAMENTE O CICLO
Next r
List2.AddItem stem
End Sub
Você precisa de uma variavel Array
Dim tm(list1.ListCount) as Integer
No IF, pode ser SELECT CASE:
SELECT CASE LEFT(S,2)
CASE [Ô]01[Ô] : tm(0) = tm(0) + 1
CASE [Ô]02[Ô] : tm(1) = tm(1) + 1
Dim tm(list1.ListCount) as Integer
No IF, pode ser SELECT CASE:
SELECT CASE LEFT(S,2)
CASE [Ô]01[Ô] : tm(0) = tm(0) + 1
CASE [Ô]02[Ô] : tm(1) = tm(1) + 1
Tem razão FILMAN, to olhando aqui se da pra contar no caso somente o 01
Realmente não sei onde ando com a cabeça =/
Realmente não sei onde ando com a cabeça =/
Sim tem como sim
onde tem o laço você faz um IF
Repare o IF antes de começar a contagem
onde tem o laço você faz um IF
For i = 0 To List1.ListCount - 1
item_atual = List1.List(i)
Cont = 0
If Trim(item_atual) = [Ô]01[Ô] Then
For x = 0 To List1.ListCount - 1
If (item_atual = List1.List(x)) Then
Cont = Cont + 1
End If
Next
If Cont > 0 Then
ReDim Preserve guarda_contagem(iVet)
If Not Repetido(item_atual & [Ô]|[Ô] & Cont, guarda_contagem) Then
guarda_contagem(iVet) = item_atual & [Ô]|[Ô] & Cont
iVet = iVet + 1
End If
End If
End If
Next
Repare o IF antes de começar a contagem
FILMAN, o problema de se dar um código pronto é exatamente esse.
Por isso a crÃtica do KERPLUNK, por isso que passei a lógica primeiro.
Por isso a crÃtica do KERPLUNK, por isso que passei a lógica primeiro.
Citação::
FILMAN, o problema de se dar um código pronto é exatamente esse.
Por isso a crÃtica do KERPLUNK, por isso que passei a lógica primeiro.
é por aÃ. Enquanto ficarmos passando código pra resolver o problema dos usuários, não estaremos ajudando de fato, temos que fazer com que os usuários entendam o que estão fazendo, com isso, eles mesmos podem escrever código. Enquanto ficarmos [Ô]presos nesse loop[Ô], não vamos ajudar ninguém, pelo menos não ajudar de verdade.
Private Sub Verifica()
Dim Cont As Integer
Dim iVet As Integer
Dim i, x, z As Integer
Dim item_atual As String
Dim guarda_contagem() As String
iVet = 0
For i = 0 To List1.ListCount - 1
item_atual = List1.List(i)
Cont = 0
If List1.List(x) = [Ô]01[Ô] Then [ô]novo
For x = 0 To List1.ListCount - 1
If (item_atual = List1.List(x)) Then
Cont = Cont + 1
End If
Next
If Cont > 0 Then
ReDim Preserve guarda_contagem(iVet)
If Not Repetido(item_atual & [Ô]|[Ô] & Cont, guarda_contagem) Then
guarda_contagem(iVet) = item_atual & [Ô]|[Ô] & Cont
iVet = iVet + 1
End If
End If
End If [ô]novo
Next
For i = 0 To UBound(guarda_contagem) - 1
List2.AddItem Split(guarda_contagem(i), [Ô]|[Ô])(0) & vbTab & vbTab & Split(guarda_contagem(i), [Ô]|[Ô])(1)
Next
End Sub
Ve se ta certo Filman, não deu certo não
Não estou fazendo desfeita SAMUKA, e que mecho com numeros então minha cabeça e uma confusão
Pesso desculpas a todos e entendo vossos sentimentos
Dim Cont As Integer
Dim iVet As Integer
Dim i, x, z As Integer
Dim item_atual As String
Dim guarda_contagem() As String
iVet = 0
For i = 0 To List1.ListCount - 1
item_atual = List1.List(i)
Cont = 0
If List1.List(x) = [Ô]01[Ô] Then [ô]novo
For x = 0 To List1.ListCount - 1
If (item_atual = List1.List(x)) Then
Cont = Cont + 1
End If
Next
If Cont > 0 Then
ReDim Preserve guarda_contagem(iVet)
If Not Repetido(item_atual & [Ô]|[Ô] & Cont, guarda_contagem) Then
guarda_contagem(iVet) = item_atual & [Ô]|[Ô] & Cont
iVet = iVet + 1
End If
End If
End If [ô]novo
Next
For i = 0 To UBound(guarda_contagem) - 1
List2.AddItem Split(guarda_contagem(i), [Ô]|[Ô])(0) & vbTab & vbTab & Split(guarda_contagem(i), [Ô]|[Ô])(1)
Next
End Sub
Ve se ta certo Filman, não deu certo não
Não estou fazendo desfeita SAMUKA, e que mecho com numeros então minha cabeça e uma confusão
Pesso desculpas a todos e entendo vossos sentimentos
Tópico encerrado , respostas não são mais permitidas