Tópicos relacionados a códigos VBA, gravação de macros, etc.
Por RahelCunha 24 Jun 2020 às 21:53
Membro Novato
Mensagens: 21
Reputação: 0
#56448
Boa noite pessoal, tudo bem?

Podem me ajudar por favor?

Referente a este projeto, poderiam me ajudar com as formulas das células “O13” e “S13” da aba “GERENCIAL”? Acredito que seria a mesma linha de raciocínio da fórmula existente na célula "O9", porém sem o critério de data. Mas quando tentei excluir esse critério, a fórmula retorna o erro “ND”.

Por exemplo,

Na célula “S13” gostaria de contar por vba de forma que não se repita(exclusiva) todos os “cd_produto” da coluna “C” da aba “S.Cont.Valid.” em que a coluna “J” esteja vazia, ou seja, sem data de validade e que a coluna “B” a letra inicial seja diferente de “D” e diferente “T”(O resultado seriam 237 registros exclusivos).

Na célula “O13” gostaria de contar de forma que não se repita(exclusiva) todos os “cd_produto” da coluna “C” da aba “S.Cont.Valid.” em que os valores da coluna “H” sejam iguais a “picking” e que o "CD_ENDEREÇO"(COLUNA B) não inicie com a letra "D".(O resultado seria 15, pois 1 a coluna B começa com "D")

Após inserir o resultado nas células “S13” e “O13”, gostaria de dar um duplo clique e os valores que estiverem contando retornem as mesmas informações existentes na aba “S.Cont.Valid.”.

Por exemplo, ao retornar os 237 registros exclusivos, eu daria um duplo clique e seria exibida uma nova aba apenas com as informações desses 237 registros.

Muito obrigado.

Segue a planilha para análise.

https://drive.google.com/file/d/14hE6E4ZWs5spOKNNcHhzJ0rEXaRhPWW9/view?usp=sharing
Por babdallas 25 Jun 2020 às 08:19
Excel Expert
Mensagens: 2941
Reputação: 1280
#56463
Veja se é isso.
Apenas usuários registrados podem ver ou baixar anexos.
Por babdallas 25 Jun 2020 às 12:01
Excel Expert
Mensagens: 2941
Reputação: 1280
#56490
Fui na coluna B, filtrei tudo que não começa com D e T. Na coluna J filtrei todos os vazios. Peguei a coluna C, copiei em uma planilha em branco. Removi as duplicatas e resultou em 243 exclusivos e não 237. Como você chegou ao 237?
Por RahelCunha 25 Jun 2020 às 12:44
Membro Novato
Mensagens: 21
Reputação: 0
#56493
Eu copiei toda a planilha para uma planilha em branco, excluí tudo que começa com "d" e "t" e somente depois removi as duplicatas..Filtrei a coluna "j" em branco e retornou 237 conforme imagem abaixo. Mas fazendo da sua maneira retornaram 243 tbem. Vou fazer o teste novamente.
Por RahelCunha 25 Jun 2020 às 15:07
Membro Novato
Mensagens: 21
Reputação: 0
#56500
babdallas,

Consegue disponibilizar como ficaria por vba por favor?
O duplo clique seria por exemplo, esses 243 resultados que retornaram...Pra eu não ter de ficar filtrando e removendo duplicatas..Eu daria um duplo clique na célula que conta os 243("O13") e exibiria uma aba com esse 243 itens que estão sem data na coluna J. O mesmo para os 15 itens da célula "s13"..daria um duplo clique e esses 15 itens seriam exibidos.

Valeu.
Por babdallas 26 Jun 2020 às 10:30
Excel Expert
Mensagens: 2941
Reputação: 1280
#56512
Substitui as 4 funções que estavam complexas por funções feitas no VBA.

Quanto ao duplo clique, você quer apareça um formulário em VBA com os itens únicos. Deseja também que haja alguns campos para fazer filtro (Ex: código produto, linha, família, etc)?
Apenas usuários registrados podem ver ou baixar anexos.
Por RahelCunha 26 Jun 2020 às 11:49
Membro Novato
Mensagens: 21
Reputação: 0
#56515
Muito bom.
Isso..Por favor...Ficaria ótimo esse filtro...O objetivo é verificar os produtos que são bens de consumo que não estão controlando validade e ir lá e corrigir o cadastro...E por exemplo...Toda vez que filtrarmos esse relatório os vinhos e aparelhos de barbear vão aparecer sem validade...Porque eu nunca vou lançar validade neles pq eles não controlam a validade...Mas aparecem nesse relatório pq a família deles é de bens de consumo...É possível excluir tudo que contenha a palavra vinho e aparelho de barbear automaticamente tbem quando atualizar?
Ou excluir os códigos desses produtos? Por exemplo...eu lançaria no vba todos os códigos da coluna "C" "CD_PRODUTO" que estão com validade vazia na coluna "J" mas que não precisa controlar validade e excluiria esses do formulário/listagem.
Por exemplo.. o código..6493134 é do VINHO SALTON INTENSO PINOT NOIR COLO NA, então eu excluiria esse item da minha base de dados...
E aew...sempre que eu for conferir um item que a validade for indeterminada...eu incluo ele nessa listagem do vba para que também seja excluído da minha base de dados "S.Cont.Valid.".
Talvez fui um pouco confuso...Qualquer coisa me fala que tento explicar de outra maneira.
Obrigado.
Por babdallas 26 Jun 2020 às 12:06
Excel Expert
Mensagens: 2941
Reputação: 1280
#56517
A minha ideia é, ao dar o duplo clique na célula, trazer a lista de itens em um listbox dentro de um userform no VBA. Também imaginei em trazer 2 combobox, uma de linha e outra de família do produto. Assim você fazer filtros e ir restringindo os valores exibidos na listbox.
Caso queira retirar alguns produtos cujas validades não precisam ser monitoradas validadas, o ideal seria ter uma coluna na base de dados indicando quais produtos devem ter check de validade e quais não. Ou então criar uma lista de produtos cuja validade não importa.
Por babdallas 29 Jun 2020 às 10:42
Excel Expert
Mensagens: 2941
Reputação: 1280
#56594
Dê um duplo clique nas células O13 e S13. Veja se ajuda.

Outra possível melhoria seria colocar alguns checkbox dizendo o início do código do produto (Ex: Todos os tipos; Não começa com D, Não começa com T, etc).
Apenas usuários registrados podem ver ou baixar anexos.
Por RahelCunha 29 Jun 2020 às 12:45
Membro Novato
Mensagens: 21
Reputação: 0
#56603
Ajuda demais. Ficou muito bom. Obrigado.
Agora para finalizar esse projeto ficaria pendente apenas a questão dos itens que mesmo a validade estando vazia, não deveriam ser somados ao meu resultado final...Como vinhos, giletes,etc.
Acredito que um filtro ideal para isso seja o código do produto(Coluna C).
Por exemplo...o vinho de código 6494186 está sem validade..Mas ele não deve controlar validade mesmo não..então eu não somaria ele nos sem validade..ao invés de ficar 243 itens sem validade..seriam apenas 242...E aew eu criaria uma lista com todos os produtos nessa situação e sempre que gerar o arquivo eles vão vir novamente, mas serão desconsiderados pra não ter que ficar olhando mais de 1 vez.
Por babdallas 29 Jun 2020 às 12:56
Excel Expert
Mensagens: 2941
Reputação: 1280
#56604
Envie uma tabela então com todos os produtos que de fato não precisam ter data de validade. Sem isso fica difícil de saber qual produto deve ser desconsiderado.
Por RahelCunha 29 Jun 2020 às 14:36
Membro Novato
Mensagens: 21
Reputação: 0
#56611
Segue tabela dos itens atuais. Porém, eles seriam variáveis..amanhã pode ter algum item novo. Aew eu teria que atualizar essa tabela.https://drive.google.com/file/d/1glmCLLvGNnBzHV8cRKbV1pe7GulHe_xd/view?usp=sharing
Por RahelCunha 29 Jun 2020 às 17:17
Membro Novato
Mensagens: 21
Reputação: 0
#56622
babdallas escreveu:Envie uma tabela então com todos os produtos que de fato não precisam ter data de validade. Sem isso fica difícil de saber qual produto deve ser desconsiderado.


No código abaixo, filtrei 2 i tens de exemplo e depois eu excluí a seleção...É mais ou menos isso..Aew eu só incluiria no filtro código a código que eu preciso desconsiderar.

Porém, ele está selecionando a célula "B41" porque é a primeira linha que existe 1 dos itens filtrados e nem sempre será ela. Como eu faço para excluir todos os códigos que filtrei independentemente da linha por favor?

Código: Selecionar todosActiveSheet.Range("$B$1:$J$2202").AutoFilter Field:=2, Criteria1:= _
        "=3154441", Operator:=xlOr, Criteria2:="=6482299"
    Range("B41").Select
    Range(Selection, Selection.End(xlToRight)).Select
    Range(Selection, Selection.End(xlDown)).Select
    Selection.EntireRow.Delete
    Selection.AutoFilter
Por babdallas 29 Jun 2020 às 17:30
Excel Expert
Mensagens: 2941
Reputação: 1280
#56623
1) Esta lista que você gerou foi de forma manual ou tem algum regra( Ex: Tudo que iniciar com a palavra vinho, etc)? Esta lista é gerada a partir da base de dados ou ela é fixa independente da base de dados?
2) Se estes itens você deseja excluir da base de dados, onde você escolheria esta opção de excluir? A exclusão seria verifcar quais itens da base de dados esta nesta lista auxiliar e deixar somente elas. Seria isso?

Creio que oq está faltando eu entender melhor é o fluxo dos seus dados, ou seja, de onde eles vêm, o que deseja fazer com eles, como deseja interagir com os dados (formulário VBA, Excel nativo, etc).
Por babdallas 01 Jul 2020 às 10:49
Excel Expert
Mensagens: 2941
Reputação: 1280
#56673
Fiz algumas melhorias. Veja se te agrada.
Apenas usuários registrados podem ver ou baixar anexos.
Por RahelCunha 01 Jul 2020 às 21:27
Membro Novato
Mensagens: 21
Reputação: 0
#56708
babdallas escreveu:Fiz algumas melhorias. Veja se te agrada.

Ficou simplesmente perfeito.
Sem palavras para agradecer o apoio, a dedicação e por não ter desistido de ajudar apesar dos obstáculos.
Essas melhorias irão somar muito, pois irão facilitar muito o filtro.

Projeto concluído com sucesso graças ao amigo. Vlwww.