Vídeo recomendado
https://youtu.be/diWPPPhW-9E
https://youtu.be/diWPPPhW-9E
Atribuir um Status com base no valor de duas datas em uma listview
-
- Colaborador
- Mensagens: 12
- Registrado em: Sex Jul 12, 2019 2:44 pm
Atribuir um Status com base no valor de duas datas em uma listview
Olá pessoal.
Sou novo por aqui e muito leigo no assunto. Tudo que consegui até agora foi assistindo vídeos no Youtube e lendo matérias em fóruns. Não encontrei nada específico, então, resolvi escrever.
Tenho uma planilha de cadastro que possui duas colunas: Data de início de vigência e data de final de vigência. A diferença entre elas é de 3 anos.
Por meio de formatação condicional, consigo que o Excel me dê o status da vigência: Se até a data atual o documento estiver vigente, o Excel me retorna com "VIGENTE"; Se, com base na data atual, o documento estiver vencido, o Excel me retorna com "VENCIDO".
Essas informações são carregadas para uma listview. Acontece que a planilha possui muitos registros e está se tornando pesada para carregar.
Existiria alguma maneira, através de VBA, de realizar essa análise de diferença entra as duas datas e o retorno com o STATUS sem utilizar fórmulas na planilha?
Se ficar difícil de entender, me avisem que dou mais informações.
Obrigado desde já pela ajuda!
Sou novo por aqui e muito leigo no assunto. Tudo que consegui até agora foi assistindo vídeos no Youtube e lendo matérias em fóruns. Não encontrei nada específico, então, resolvi escrever.
Tenho uma planilha de cadastro que possui duas colunas: Data de início de vigência e data de final de vigência. A diferença entre elas é de 3 anos.
Por meio de formatação condicional, consigo que o Excel me dê o status da vigência: Se até a data atual o documento estiver vigente, o Excel me retorna com "VIGENTE"; Se, com base na data atual, o documento estiver vencido, o Excel me retorna com "VENCIDO".
Essas informações são carregadas para uma listview. Acontece que a planilha possui muitos registros e está se tornando pesada para carregar.
Existiria alguma maneira, através de VBA, de realizar essa análise de diferença entra as duas datas e o retorno com o STATUS sem utilizar fórmulas na planilha?
Se ficar difícil de entender, me avisem que dou mais informações.
Obrigado desde já pela ajuda!
- Reinaldo
- Jedi
- Mensagens: 1537
- Registrado em: Sex Ago 01, 2014 4:09 pm
- Localização: Garça - SP / SCS - SP
Re: Atribuir um Status com base no valor de duas datas em uma listview
Possível, em principio é, porem e preciso conhecer sua estrutura e distribuição de dados; modelo representativo de sua planilha, dados fictícios se necessário, com algo em torno de uns 50 registros para teste;
bem como descrever/mostrar como é hoje (formulas/condicional/etc..), e o que espera ter/quando.
Somente a condicional, que eu saiba não e motivo para a lentidão/demora informada
bem como descrever/mostrar como é hoje (formulas/condicional/etc..), e o que espera ter/quando.
Somente a condicional, que eu saiba não e motivo para a lentidão/demora informada
-
- Colaborador
- Mensagens: 12
- Registrado em: Sex Jul 12, 2019 2:44 pm
Re: Atribuir um Status com base no valor de duas datas em uma listview
Obrigado pelo retorno.
A formatação condicional em si, de fato, não é o problema.
O problemas, creio, está nas fórmulas e funções usadas.
Com o aumento dos registros, a planilha vai se tornando lenta.
Assim, sendo esse o problema ou não, a ideia é partir logo pro VBA.
A listview tem 3 colunas: Data inicial | Data final | Status
A data inicial e a final são carregadas da planilha.
O que quero é uma fórmula que preencha, na própria listview, o status de acordo com o valor de Data Final em relação a data de Hoje.
Se a data final for igual ou anterior a hoje, o status seria "VIGENTE"
Se a data final for superior a hoje, o status seria "RENOVAR"
O código seria executado toda vez que a listview fosse exibida.
Conseguiu entender?
EDIT
Estou anexando a planilha para análise. Ela está sem as fórmulas, funções. Creio que seja suficiente para ajudar a entender o que pretendo.
https://drive.google.com/file/d/1yt85to ... sp=sharing
A formatação condicional em si, de fato, não é o problema.
O problemas, creio, está nas fórmulas e funções usadas.
Com o aumento dos registros, a planilha vai se tornando lenta.
Assim, sendo esse o problema ou não, a ideia é partir logo pro VBA.
A listview tem 3 colunas: Data inicial | Data final | Status
A data inicial e a final são carregadas da planilha.
O que quero é uma fórmula que preencha, na própria listview, o status de acordo com o valor de Data Final em relação a data de Hoje.
Se a data final for igual ou anterior a hoje, o status seria "VIGENTE"
Se a data final for superior a hoje, o status seria "RENOVAR"
O código seria executado toda vez que a listview fosse exibida.
Conseguiu entender?
EDIT
Estou anexando a planilha para análise. Ela está sem as fórmulas, funções. Creio que seja suficiente para ajudar a entender o que pretendo.
https://drive.google.com/file/d/1yt85to ... sp=sharing
- Reinaldo
- Jedi
- Mensagens: 1537
- Registrado em: Sex Ago 01, 2014 4:09 pm
- Localização: Garça - SP / SCS - SP
Re: Atribuir um Status com base no valor de duas datas em uma listview
Entender ja havia entendido, precisava saber quando/onde.
voçe menciona ".. listview tem 3 colunas: Data inicial | Data final | Status..."
Bem a unica listview (que localizei)do modelo (frm.Pesquisa) enviado tem muito mais colunas e não tem data inicial.
"..Nome, DC50, Vencimento, Status, Email, Telefone, Funções, Documentos, Observações..."
Supondo que seja essa; e pela forma de "preenchimento", uma maneira seria:
Alterar a linha:
Para:
voçe menciona ".. listview tem 3 colunas: Data inicial | Data final | Status..."
Bem a unica listview (que localizei)do modelo (frm.Pesquisa) enviado tem muito mais colunas e não tem data inicial.
"..Nome, DC50, Vencimento, Status, Email, Telefone, Funções, Documentos, Observações..."
Supondo que seja essa; e pela forma de "preenchimento", uma maneira seria:
Alterar a linha:
Código: Selecionar todos
Status = .Cells(linha, 5).Value
Código: Selecionar todos
If CDate(Vencimento) >= Date Then
Status = "Vigente"
Else
Status = "Renovar"
End If
-
- Colaborador
- Mensagens: 12
- Registrado em: Sex Jul 12, 2019 2:44 pm
Re: Atribuir um Status com base no valor de duas datas em uma listview
Reginaldo, muito obrigado pela ajuda.
De fato, eu estava trabalhando em uma tabela "teste" para, por fim, implementar na tabela fina (a que compartilhei). Por isso, a descrição que fiz ficou diferente daquilo que efetivamente encontrou na tabela compartilhada.
Parece que o código funcionou perfeitamente.
A dúvida é: A medida que o tempo passar, o status da será atualizado?
Por exemplo: Hoje, realizei um registro cuja data de vencimento é 13/07/2019. Logo, o status é "VIGENTE".
No dia 14/07/2019, quando acessar a listview, este registro já estará vencido e, portanto, seu status deverá ser "RENOVAR".
O código que apresentou fará essa leitura?
Obrigado.
De fato, eu estava trabalhando em uma tabela "teste" para, por fim, implementar na tabela fina (a que compartilhei). Por isso, a descrição que fiz ficou diferente daquilo que efetivamente encontrou na tabela compartilhada.
Parece que o código funcionou perfeitamente.
A dúvida é: A medida que o tempo passar, o status da será atualizado?
Por exemplo: Hoje, realizei um registro cuja data de vencimento é 13/07/2019. Logo, o status é "VIGENTE".
No dia 14/07/2019, quando acessar a listview, este registro já estará vencido e, portanto, seu status deverá ser "RENOVAR".
O código que apresentou fará essa leitura?
Obrigado.
- Reinaldo
- Jedi
- Mensagens: 1537
- Registrado em: Sex Ago 01, 2014 4:09 pm
- Localização: Garça - SP / SCS - SP
Re: Atribuir um Status com base no valor de duas datas em uma listview
A coluna status é calculada, a cada abertura/carregamento do formulário/listview, portanto deverá apresentar essa "revisão"
-
- Colaborador
- Mensagens: 12
- Registrado em: Sex Jul 12, 2019 2:44 pm
Re: Atribuir um Status com base no valor de duas datas em uma listview
Muito obrigado Reginaldo!
Ficou perfeito.
Ficou perfeito.
-
- Colaborador
- Mensagens: 12
- Registrado em: Sex Jul 12, 2019 2:44 pm
Re: Atribuir um Status com base no valor de duas datas em uma listview
Aproveitando o post, fiz mais algumas implementações na planilha.
A dúvida agora é com respeito a impressão: Quando seleciono o item que desejo imprimir e clico no botão "Imprimir", a tela com as opções de impressão é exibida no fundo do userform, deixando o arquivo "congelado". Alguém poderia me ajudar com situação?
Segue link do arquivo: https://drive.google.com/file/d/1MEU5sv ... sp=sharing
A dúvida agora é com respeito a impressão: Quando seleciono o item que desejo imprimir e clico no botão "Imprimir", a tela com as opções de impressão é exibida no fundo do userform, deixando o arquivo "congelado". Alguém poderia me ajudar com situação?
Segue link do arquivo: https://drive.google.com/file/d/1MEU5sv ... sp=sharing
- Reinaldo
- Jedi
- Mensagens: 1537
- Registrado em: Sex Ago 01, 2014 4:09 pm
- Localização: Garça - SP / SCS - SP
Re: Atribuir um Status com base no valor de duas datas em uma listview
Bem sua duvida atual não tem nada haver como o titulo do post; assim creio que o ideal seria abertura de um novo post; mas...
Porque precisa do printPreview?
Porque não utiliza somente o print?
Porque precisa do printPreview?
Porque não utiliza somente o print?
-
- Colaborador
- Mensagens: 12
- Registrado em: Sex Jul 12, 2019 2:44 pm
Re: Atribuir um Status com base no valor de duas datas em uma listview
Obrigado Reginaldo.
Abri um novo tópico: https://www.tomasvasquez.com.br/forum/v ... =20&t=7160
Agradeço se puder me ajudar.
A ideia de usar o printview é poder pré visualizar o arquivo antes da impressão. O mesmo pode ser feito com o print? (Se desejar, pode responder no novo tópico...)
Abri um novo tópico: https://www.tomasvasquez.com.br/forum/v ... =20&t=7160
Agradeço se puder me ajudar.
A ideia de usar o printview é poder pré visualizar o arquivo antes da impressão. O mesmo pode ser feito com o print? (Se desejar, pode responder no novo tópico...)