Notifications
Clear all

Inserir registos

2 Posts
1 Usuários
0 Reactions
598 Visualizações
(@punkera)
Posts: 0
New Member
Topic starter
 

Bom dia.
Venho pedir ajuda para resolver um problema (para mim) bastante complexo.

Trabalho numa empresa na qual tenho de fazer o registo da quantidade de produtos vendida por dia e os dias em que foi vendida,
para depois fazer análise estatística.

Para facilitar a explicação do que pretendo junto envio uma imagem:

Todos os dias recebo um relatório, em txt, de vários vendedores com as peças vendidas. O ficheiro que me enviam tem muitas
mais coisas além da identificação do produto (idProdVendX = identificação do produto vendido pelo vendedor X). No entanto,
já consegui criar uma macro para extrair só aquilo que me interessa: o id do produto. Apresentado na coluna A. (Por uma
questão de simplificação, coloquei apenas uma letra para identificar os produtos. Mas, na realidade os ids são mais extensos)

Para obter algo parecido ao que está na imagem, parece-me que todo o processo vai ter de ser iniciado por uma comparação
entre as colunas A e a coluna E da tabela apresentada.
Ou seja, se o id do produto (col. A) já constar na tabela (col.E), p.e. o produto A, o objectivo é que seja acrescentado
um "x" no campo correspondente (linha do produto e coluna com a data correspondente). Assim, por F4, eu sei que foram vendidos
3 produtos A no dia 5 de Janeiro e, portanto, como no relatório (col.A) tenho mais uma venda desse produto, em F4 deverá
aparecer mais um "x".
Ao fazer a comparação, pode acontecer, que o o id do produto ainda não conste na tabela. Por exemplo, o produto Y. Assim,
esse novo produto deve ser acrescentado à coluna E e efectuado o respectivo registo na data em que foi inserido.

Desde já agradeço quem me possa ajudar.

 
Postado : 05/01/2016 7:19 am
(@punkera)
Posts: 0
New Member
Topic starter
 

Encontrei esta macro na net que efectua a comparação entre duas colunas e que funciona, Não sei se ajuda alguma coisa.

Sub Main2()
Application.ScreenUpdating = False

Dim stNow As Date
stNow = Now

Dim arr As Variant
arr = Range("A1:A" & Range("A" & Rows.Count).End(xlUp).Row).Value

' Tem de começar na B2, senao n funciona correctamente

Dim varr As Variant
varr = Range("B2:B" & Range("B" & Rows.Count).End(xlUp).Row).Value

Dim x, y, match As Boolean
For Each x In arr
match = False
For Each y In varr
If x = y Then match = True
Next y
If Not match Then
Range("B" & Range("B" & Rows.Count).End(xlUp).Row + 1) = x
End If
Next

Debug.Print 'DateDiff("s", stNow, Now)
Application.ScreenUpdating = True
End Sub

 
Postado : 05/01/2016 7:35 am