- 28 Jan 2016 às 09:30
#7033
Bom dia!
Acabei de chegar ao fórum e podem ver a minha apresentação aqui -> http://gurudoexcel.com/forum/viewtopic. ... =580#p7027 podendo ficar a conhecer-me melhor desde já
Bem, preciso de ajuda!
No meu trabalho, tive a iniciativa de criar um ficheiro EXCEL para pudermos controlar "automaticamente" quais os produtos expostos, e diariamente cruzar listagem de chegada de stock novo e quais produtos faltam expor, sem necessidade de manualmente todos os dias andarmos com papel e caneta a conferir um a um o produto exposto para excluir duplicação de artigos expostos.
Vou tentar fazer um esquema para ser fácil e rápido entenderem o ficheiro, resumindo o ficheiro:
- Folha "1" (ou planilha como vocês chamam) ARTIGOS EXPOSTOS
--- Coluna A - SKU (número único de cada artigo)
--- Coluna B - Descrição
--- Coluna C - PVP
--- Coluna etc etc etc.
- Folha "2" FICHART - LISTAGEM DE INVENTÁRIO DIARIO
--- Coluna A - SKU
--- Coluna B - Descrição
--- Coluna C - PVP
--- Coluna etc etc etc.
- Folha "3" COMPARADOR
--- Coluna C - Destino do LOOP - Deve colar aqui cada SKU que não consta da Folha"1".Coluna A, mas consta da Folha"2".Coluna A
--- Coluna D - Descrição (Index-match pela coluna A, pegando na folha "2" o valor)
--- Coluna E - PVP (Index-match pela coluna A, pegando na folha "2" o valor)
--- Coluna etc etc etc. (Index-match pela coluna A, pegando na folha "2" o valor)
-> Primeira abordagem, coloquei os dados em Tabela, gravei uma Macro em que copia [TABELAFolha1.ColunaA] para Folha3.ColunaB e [TABELAFolha2.ColunaA] para colar a seguir à última célula preenchida na Folha3.ColunaB. Usando depois a ferramenta do Excel RemoverDuplicados, e copiando os valores únicos a Folha3.Coluna C.
No meu ver isto é meio antiquado, e os meus conhecimentos de Excel pedem algo mais evoluído, também para dar um ambiente mais profissional ao ficheiro.
Foi aí que a semana passada meti-me no Google a tentar aprender VBA desde o início, conheci os Loops e para puder criar um código por mim próprio, mas não tem sido tarefa fácil... ainda estou a olhar para o código VBA e às vezes não entendo bem o que está a correr mal.
Contudo, eis que o meu código actual está assim:
A única coisa que consigo, é que ele meta o mesmo valor em todas as células e não um em cada célula, visto que são pelo menos 100 valores diferentes para exportar...
Desde já as minhas desculpas pela extensão do tópico ser demasiada :\
Obrigado!
Acabei de chegar ao fórum e podem ver a minha apresentação aqui -> http://gurudoexcel.com/forum/viewtopic. ... =580#p7027 podendo ficar a conhecer-me melhor desde já

Bem, preciso de ajuda!

No meu trabalho, tive a iniciativa de criar um ficheiro EXCEL para pudermos controlar "automaticamente" quais os produtos expostos, e diariamente cruzar listagem de chegada de stock novo e quais produtos faltam expor, sem necessidade de manualmente todos os dias andarmos com papel e caneta a conferir um a um o produto exposto para excluir duplicação de artigos expostos.
Vou tentar fazer um esquema para ser fácil e rápido entenderem o ficheiro, resumindo o ficheiro:
- Folha "1" (ou planilha como vocês chamam) ARTIGOS EXPOSTOS
--- Coluna A - SKU (número único de cada artigo)
--- Coluna B - Descrição
--- Coluna C - PVP
--- Coluna etc etc etc.
- Folha "2" FICHART - LISTAGEM DE INVENTÁRIO DIARIO
--- Coluna A - SKU
--- Coluna B - Descrição
--- Coluna C - PVP
--- Coluna etc etc etc.
- Folha "3" COMPARADOR
--- Coluna C - Destino do LOOP - Deve colar aqui cada SKU que não consta da Folha"1".Coluna A, mas consta da Folha"2".Coluna A
--- Coluna D - Descrição (Index-match pela coluna A, pegando na folha "2" o valor)
--- Coluna E - PVP (Index-match pela coluna A, pegando na folha "2" o valor)
--- Coluna etc etc etc. (Index-match pela coluna A, pegando na folha "2" o valor)
-> Primeira abordagem, coloquei os dados em Tabela, gravei uma Macro em que copia [TABELAFolha1.ColunaA] para Folha3.ColunaB e [TABELAFolha2.ColunaA] para colar a seguir à última célula preenchida na Folha3.ColunaB. Usando depois a ferramenta do Excel RemoverDuplicados, e copiando os valores únicos a Folha3.Coluna C.
No meu ver isto é meio antiquado, e os meus conhecimentos de Excel pedem algo mais evoluído, também para dar um ambiente mais profissional ao ficheiro.
Foi aí que a semana passada meti-me no Google a tentar aprender VBA desde o início, conheci os Loops e para puder criar um código por mim próprio, mas não tem sido tarefa fácil... ainda estou a olhar para o código VBA e às vezes não entendo bem o que está a correr mal.
Contudo, eis que o meu código actual está assim:
Código: Selecionar todos
Ou seja, o loop está a correr bem, porque quando meto DEBUG.PRINT para Immediate Window, a listagem aparece correcta, mas estou com dificuldade em meter o Loop a exportar os valores para o Range das células da Folha3.Coluna C.Sub CódigoDoLee()
Application.ScreenUpdating = False
' Declaração das variáveis e Arrays
Dim Expostos() As String 'Array de Skus Expostos
Dim Fichart() As String 'Array de Skus do Fichart
Dim Ce As Integer 'Variável Contagem dos Skus Expostos
Dim Cf As Integer 'Variável Contagem dos Skus Fichart
Dim Ct As Integer
Dim E As Variant
Dim F As Variant
Dim match As Boolean
Dim rngDst As Range
Set rngDst = Sheets("COMPARADOR").Range("TAB_POREXPOR[SKU]")
rngDst.Value = ""
' Contagem do nº de SKU's para parametrizar as Arrays e re-parametrização
Ce = Application.WorksheetFunction.Count(Range("Sku_expostos"))
Cf = Application.WorksheetFunction.Count(Range("Sku_fichart"))
ReDim Expostos(1 To Ce)
ReDim Fichart(1 To Cf)
' Leitura dos Skus Expostos e Fichart para as Arrays
Dim Ne As Integer
Dim Nf As Integer
For Ne = 1 To Ce
Expostos(Ne) = Sheets("Expostos").Range("B4").Offset(Ne)
Next Ne
For Nf = 1 To Cf
Fichart(Nf) = Sheets("Fichart").Range("C2").Offset(Nf)
Next Nf
For Each F In Fichart
match = False
For Each E In Expostos
If F = E Then match = True
Next E
If Not match Then
F = Sheets("COMPARADOR").Range("C7:C250") ---------------------- PROBLEMA
End If
Next F
Application.ScreenUpdating = True
End Sub
A única coisa que consigo, é que ele meta o mesmo valor em todas as células e não um em cada célula, visto que são pelo menos 100 valores diferentes para exportar...
Desde já as minhas desculpas pela extensão do tópico ser demasiada :\
Obrigado!
Editado pela última vez por laennder em 28 Jan 2016 às 10:11, em um total de 1 vez.
Razão: Remover a palavra ajuda do título.