Notifications
Clear all

Listview não inserir itens repetidos

7 Posts
3 Usuários
0 Reactions
2,332 Visualizações
(@araujors)
Posts: 79
Estimable Member
Topic starter
 

Boa tarde, como poderia fazer para que o listview não recebe-se valores repetidos. Exemplo:
Se eu inserir um item e for inserir novamente não quero que ele apareça de novo apenas some essa unidade a mais.
Exemplo da imagem:
SKU: 785810378847 LOTE: B19200647 QTDE: 10
Gostaria que se eu lesse esse lote novamente ele apenas soma-se de 10 para e assim sucessivamente, isso para qualquer SKU colocado na listview.
Eu ultilizo o código abaixo:

Private Sub UserForm_Initialize()
With ListView
.Gridlines = True
.View = lvwReport
.FullRowSelect = True
.ColumnHeaders.Add Text:="UPC", Width:=40
.ColumnHeaders.Add Text:="LOTE", Width:=70
.ColumnHeaders.Add Text:="SKU", Width:=160
.ColumnHeaders.Add Text:="Qtde", Width:=30

End With
'...................................................................
'limpar
ListView1.ListItems.Clear

lastRow = Plan1.Cells(Plan1.Cells.Rows.Count, "a").End(xlUp).Row
' Adiciona itens
For X = 2 To lastRow
Set li = ListView1.ListItems.Add(Text:=Plan1.Cells(X, "a").Value)
li.ListSubItems.Add Text:=Plan1.Cells(X, "b").Value
li.ListSubItems.Add Text:=Plan1.Cells(X, "c").Value
li.ListSubItems.Add Text:=Plan1.Cells(X, "d").Value
Next
Label25.Caption = ListView1.ListItems.Count 'Conta número de linhas preenchidas
End Sub

-----------------------------------------------------------------------------------------------------------------------

Private Sub btInserir_Click()
lin = 2
Do Until Sheets("Relatorio").Cells(lin, SKU) = ""
lin = lin + 1
Loop
Sheets("Relatorio").Cells(lin, malote) = cdSKU
Sheets("Relatorio").Cells(lin, cliente) = cdLOTE
Sheets("Relatorio").Cells(lin, notafiscal) = cdSKU
Sheets("Relatorio").Cells(lin, qtde) = cdQTDE
MsgBox "Registro Inserido com Sucesso", 6, "Inserir"
resposta = MsgBox("Deseja inserir outro registro", 36, "Inserir")
If resposta = vbYes Then
cdSKU.Text = ""
cdLOTE.Text = ""
cdSKU.Text = ""
cdQTDE.Text = ""

'...................................................................
'limpar
ListView1.ListItems.Clear

lastRow = Plan1.Cells(Plan1.Cells.Rows.Count, "a").End(xlUp).Row
' Adiciona itens
For X = 2 To lastRow
Set li = ListView1.ListItems.Add(Text:=Plan1.Cells(X, "a").Value)
li.ListSubItems.Add Text:=Plan1.Cells(X, "b").Value
li.ListSubItems.Add Text:=Plan1.Cells(X, "c").Value
li.ListSubItems.Add Text:=Plan1.Cells(X, "d").Value
Next
Label25.Caption = ListView1.ListItems.Count 'Conta número de linhas preenchidas
cdSKU.Text = ""
cdLOTE.Text = ""
cdSKU.Text = ""
cdQTDE.Text = ""

txtCodigo.SetFocus
End If
End Sub

 
Postado : 23/08/2013 11:02 am
(@fernandofernandes)
Posts: 43750
Illustrious Member
(@fernandofernandes)
Posts: 43750
Illustrious Member
 

O ideal seria anexar um modelo reduzido para poder interpretar melhor e fazer alguns testes.

 
Postado : 23/08/2013 8:03 pm
(@araujors)
Posts: 79
Estimable Member
Topic starter
 

Segue anexo a planilha com formTeste.
Nesse form já tem um item adicionado, se eu digita-se esse mesmo item nao queria q ele aparece-se de novo em baixo na próxima linha e sim que reconhece-se que já existe esse item e apenas soma-se ele de 1 para 2.

 
Postado : 23/08/2013 8:32 pm
(@fernandofernandes)
Posts: 43750
Illustrious Member
 

Araujo, para Preencher o ListView com os Itens UNICOS e Somados, adaptei a rotina do Edson no Tópico abaixo, jogando o Resultado para a Aba UnicosSoma, e após carregar o ListView.

Somar dados repetidos com VBA [Resolvido]
viewtopic.php?f=10&t=3437

Fiz de acordo com o modelo que anexou, mas a sua imagem é diferente deste modelo, então se for adaptar para outro tipo de layout tem de ajustar a rotina (Colunas e Variáveis)

ListView Valores Unicos e Somados

Veja se atende.

[]s

 
Postado : 24/08/2013 10:43 pm
(@araujors)
Posts: 79
Estimable Member
Topic starter
 

Cara de mais, isso mesmo q eu precisava valeu mesmo show de bola, obrigado.

 
Postado : 25/08/2013 12:59 am
(@fazerbem)
Posts: 0
New Member
 

Ola Mauro Coutinho, este seu exemplo me interessa, mas nao o arquivo esta corrompido, poderia disponibilizar novamente ?

Preciso disso mesmo, , ao inserir um produto na listview e o mesmo ja tenha, somar a QNT apenas.

Grato

Andre

 
Postado : 26/02/2017 11:15 am