Ir ao conteúdo
  • Cadastre-se

Criar Lista de tarefas - Excel


Ir à solução Resolvido por Visitante,

Posts recomendados

Meus amigos, Bom Dia!

 

Tenho 5 guias na minha planilha com os seguintes dados, 

a1 produto

b2 fabricação

b3 validade

b4 30 dias apos a fabricação

b5 60 dias

b6 90 dias 

b7 120 dias

b8 180 dias

 

algumas dessas guias variam a data apos a fabricação.

quando vence o dia (30, 60, 90) preciso retirar essas amostras

 

Então fiz a seguinte formula =se(b2+30)<hoje();"Vencido";se(b2+30)=hoje();"Vence Hoje";se(b2+30)>hoje;"Em Dia";"")))

 

fiz isso para todos os itens 

 

sendo que essa lista é muito grande, ai tenho que anotar, em um papel, cada produto que vence todos os dias.

 

gostaria de criar uma aba que procurasse todos os produtos que estiverem "Vencido" e "Vence Hoje" paga eu poder imprimir a lista e me popuar de um trabalhão.

 

Necessito da ajudas dos senhores!!!!!

 

Muito obrigado.

 

 

gabriel Maia

Link para o comentário
Compartilhar em outros sites

Gabriel, posso lhe sugerir uma solução utilizando macro. Interessa? Se sim, esclareça as dúvidas abaixo.

 


Tenho 5 guias na minha planilha com os seguintes dados,

Provavelmente você quis dizer que tem 5 planilhas no seu arquivo/pasta de trabalho. Cada planilha tem a sua guia.

 

a1 produto >>  "A1" está vazia nas 2 planilhas do seu arquivo

b2 fabricação >> idem

b3 validade >> em uma planilha a tabela inicia em "B3", na outra em "B4", e nas outras 3 planilhas onde inicia ? Não é possível iniciar as tabelas em todas as 5 planilhas em "B3", por exemplo ?

 

Então fiz a seguinte formula =se(b2+30)<hoje();"Vencido";se(b2+30)=hoje();"Vence Hoje";se(b2+30)>hoje;"Em Dia";"")))

Na sua fórmula acima o último SE é desnecessário, experimente:

=SE((B2+30)<HOJE();"Vencido";SE((B2+30)=HOJE();"Vence hoje";"Em  dia"))

Como a sua fórmula acima faz referência a "B2" então existe outra tabela que inicia em "B1", é isso?

 

 

Link para o comentário
Compartilhar em outros sites

Bom Dia! Osvaldo,

 

Tenho 5 guias na minha planilha com os seguintes dados,

Provavelmente você quis dizer que tem 5 planilhas no seu arquivo/pasta de trabalho. Cada planilha tem a sua guia.

São 5 guias mesmos uma de 120, 180, 240, 280 e 360 dias de vencimento sendo que as amostragens são a cada 30 dias ( fiz aquele modelo rapidinho só para o exemplo)

 

a1 produto >>  "A1" está vazia nas 2 planilhas do seu arquivo

b2 fabricação >> idem

b3 validade >> em uma planilha a tabela inicia em "B3", na outra em "B4", e nas outras 3 planilhas onde inicia ? Não é possível iniciar as tabelas em todas as 5 planilhas em "B3", por exemplo ?

todas as planilhas começão em b7 produto b8 lote  b9 fabricação b10 validade b11 +30 b12 + 60 assim por diante até a validade

'

 

Então fiz a seguinte formula =se(b2+30)<hoje();"Vencido";se(b2+30)=hoje();"Vence Hoje";se(b2+30)>hoje;"Em Dia";"")))

Na sua fórmula acima o último SE é desnecessário, experimente:

Padrão valeu por dica!!!!

 se você poder enviar a macro agradeço d+

Link para o comentário
Compartilhar em outros sites

Gabriel, veja o arquivo anexo.

É uma sugestão que utiliza uma única planilha em lugar das 5 que você diz que utiliza, e uma única coluna para controlar a validade dos produtos.

Essa solução parte da premissa de que o que interessa é saber se cada produto está ou não no período de validade.

Apliquei na tabela o Auto Filtro, como você já havia feito no exemplo que postou. Aí você pode filtrar pelo critério "vencido" e imprimir.

Veja o que acha.

 

 

a Contr Venc.xlsx

Link para o comentário
Compartilhar em outros sites

  • Solução

Pode até ser, sendo que vou ter que "lançar" o mesmo produto 5 vezes.

Nesse caso o caminho que sugeri não vale a pena.

 

Então vamos voltar ao ponto de partida. Segue abaixo o código. Veja se ajuda.

 

Instale o código abaixo em um módulo comum, assim:

1. copie o código daqui

2. a partir da planilha em que estão os dados tecle 'Alt+F11' para acessar o editor de VBA

3. no menu do editor >> Inserir >> Módulo

4. cole o código na janela em branco que vai se abrir

5. feito! 'Alt+Q' para retornar para a planilha e testar

para rodar o código:

6. tecle 'Alt+F8' >> selecione a macro correspondente >> Executar, ou insira um botão em qualquer planilha e vincule-o à macro ou vincule-a a um atalho de teclado (Alt+F8 > Opções).

preparação - antes de rodar o código nomeie uma planilha vazia de "vencidos" (sem as aspas) e cole nela a partir de "B7" um cabeçalho igual ao cabeçalho das demais planilhas.

funcionamento - o código irá replicar na planilha "vencidos" a partir de "B8" todos os registros de todas as planilhas que tenham ao menos uma vez o termo "vencido".

Sub RelatVencidos() Dim ws As Worksheet, LR As Long, k As Long  With Sheets("vencidos")   LR = .Cells(Rows.Count, 2).End(xlUp).Row   If LR > 7 Then .Rows("8:" & LR).ClearContents  End With  For Each ws In ThisWorkbook.Worksheets   If ws.Name <> "vencidos" Then    With ws     LR = .Cells(Rows.Count, 2).End(xlUp).Row      For k = 8 To LR        If Application.CountIf(.Rows(k), "Vencido") Then         Sheets("vencidos").Range("B" & Rows.Count).End(xlUp).Offset(1).Resize(, 10).Value = _          .Cells(k, 2).Resize(, 10).Value        End If      Next k    End With   End If  Next wsEnd Sub
Link para o comentário
Compartilhar em outros sites

Osvaldo

 

Sou seu fã

 

ficou pica das galáxias

 

:joia:  :joia:  :joia:  :joia:  :joia:  :joia:

 

 

Muito Obrigado Mesmo


Opa só ta acontecendo um probleminha ta duplicando os valores tipo acredito que tá acontecendo isso

procura no 120 e joga para vencidos

procura na aba 180 e joga para vencidos

acredito que esta procurando no vencidos também, assim duplicando os valores

 

se não for pedir muito, poderia incluir "Vence Hoje" também?

 

 

Gabriel

Link para o comentário
Compartilhar em outros sites

Opa só ta acontecendo um probleminha ta duplicando os valores tipo acredito que tá acontecendo isso

procura no 120 e joga para vencidos

procura na aba 180 e joga para vencidos

acredito que esta procurando no vencidos também, assim duplicando os valores

É improvável a duplicação. :rolleyes: Veja direito aí. Se tiver dúvidas coloque aqui o arquivo com o resultado do código e o código instalado.

 

se não for pedir muito, poderia incluir "Vence Hoje" também?

Veja abaixo.

 

 

substitua esta linha

If Application.CountIf(.Rows(k), "Vencido") Then

por estas

If Application.CountIf(.Rows(k), "Vencido") Or _         Application.CountIf(.Rows(k), "Vence hoje") Then
Link para o comentário
Compartilhar em outros sites

 

O lance da duplicação tava rolando mesmo, foi facilmente corrigido colocando a aba de "Vencidos" como a primeira. (Tava na ultima)

 

 

Beleza, Gabriel. Que bom que você resolveu. :-BEER  Valeu pelo retorno. :)

 

O lance da duplicação você resolveu "por acaso", na verdade você "enganou" o código. :devil:

O Excel requer exatidão, se não, dá confusão! Assim, "V" (maiúsculo) é diferente de "v" (minúsculo). ;)

No post #10, na preparação, está escrito "nomeie uma planilha vazia de "vencidos"... "

No código coloquei o nome da planilha  "vencidos"!

No entanto, provavelmente você nomeou a planilha de "Vencidos". :confused:  Aí o código "se confunde". :tantan:

Altere o nome da planilha para "vencidos" e desloque a guia dela para qualquer posição, e rode o código. SEMPRE o código vai funcionar corretamente. Ou então altere no código, 2x, coloque "Vencidos". Também SEMPRE o código irá funcionar corretamente. ;)

Link para o comentário
Compartilhar em outros sites

Visitante
Este tópico está impedido de receber novas respostas.

Sobre o Clube do Hardware

No ar desde 1996, o Clube do Hardware é uma das maiores, mais antigas e mais respeitadas comunidades sobre tecnologia do Brasil. Leia mais

Direitos autorais

Não permitimos a cópia ou reprodução do conteúdo do nosso site, fórum, newsletters e redes sociais, mesmo citando-se a fonte. Leia mais

×
×
  • Criar novo...