Notifications
Clear all

Ajuda com o cadastro de Equipamentos-Condicional de datas

26 Posts
2 Usuários
0 Reactions
4,895 Visualizações
(@dunha22)
Posts: 17
Eminent Member
Topic starter
 

Pessoal boa tarde.. sou iniciante nessa área de VBA.. to fazendo um cadastro de equipamentos que conta também com um controle de datas de vencimento desses equipamentos, até o momento com a ajuda de alguns tópicos aqui do forum e alguns códigos de outros amigos eu já cosegui fazer o cadastro de equipamentos, porém eu preciso fazer uma espécie de campos pesquisa no formulário de cadastro de equipamentos para que os usuários consultem antes se o equipamento já esta cadastrado(pq provavelmente serão cadastrados mais de mil equipamentos) e o mais importante eu preciso que haja uma verificação de datas de vencimento por exemplo (se a data cadastrada é menor ou igual a hoje, a coluna (situação) ao lado da coluna de registro de data tem q receber a msg vencido, se a data é maior ou igual a 90 dias recebe atenção e se maior que 90 dias ok), e queria também que de acordo com essas informações o background da list view onde essas informações aparecem mudassem de cor (ex: vencido background: vermelho, atenção bg: amarelo, ok bg: verde). eu pesquisei isso que eu preciso aqui no forum e não achei, talvez pq eu ainda seja novato nessa área.

alguém pode me ajudar?? o arquivo esta em anexo caso alguém possa me ajudar.

 
Postado : 12/11/2012 1:19 pm
(@fernandofernandes)
Posts: 43750
Illustrious Member
 

Boa tarde dunha

Estou movendo teu tópico para o fórum VBA.

Att

 
Postado : 12/11/2012 2:16 pm
(@fernandofernandes)
Posts: 43750
Illustrious Member
 

dunha, aconselho separar suas duvidas, para podermos analisar uma a uma, achei um pouco confuso, mas de qualquer forma acredito que os tópicos abaixo ajudem :

Filtrar ListView Criterios Datas e Texto
viewtopic.php?f=21&t=3586

Function Pesquisar InputBox e TextBox
viewtopic.php?f=21&t=2877

Formatar Listview com Critério
http://www.tomasvasquez.com.br/forum/vi ... iew1#p3339

LISTVIEW ZEBRADO ou LISTRADO - EXCEL
http://www.tomasvasquez.com.br/forum/vi ... KGDXOQmfQQ

[]s

 
Postado : 12/11/2012 6:17 pm
(@dunha22)
Posts: 17
Eminent Member
Topic starter
 

Mauro ajudou, em partes avancei bastante desde a sua ajuda porém ainda estou enrrolado com o meu condicional de data por exemplo:

a minha antiga planilha onde eu preenchia a mão sem VBA eu utilizava a seguinte fórula :a coluna situação recebia =SE(M25-HOJE()<=0;"Vencido";SE(M25-HOJE()<=90;"**ATENÇÃO**";"OK")).
eu tinha uma coluna onde eu inseria a data de vencimento de um determinado equipamento e na coluna ao lado dependo da data aparecia se o equipamento estava vencido, atençao ou OK de acordo com a formula acima, porém como essa formula depende da célula onde eu ponho a data se a célula data tivesse em branco automaticamente a celula da coluna situação ficava como vencido ou então eu botava algo diferente de um numero para não ficar como vencido ai dava erro, era assim que eu usava, porém com o form de cadastro em VBA que eu comecei a usar prejudicou isso pq quando eu apago um Registro/Equipamento ele apaga a linha inteira e apagava a fomula tbm. ou seja eu preciso de algo que insira essa formula acima ao mesmo tempo que eu inserir um registro/equipamento novo..... não sei se eu fui bem didático.... ou enrrolei tudo de novo!? hauhaua

alguem pode me ajudar?????????????? Help!!!!!

 
Postado : 15/11/2012 3:25 pm
(@fernandofernandes)
Posts: 43750
Illustrious Member
 

Boa noite!!!

Já seu arquivo modelo está todo restrito.

Sub teste()
ActiveCell.Formula = "=IF(M25-today()<=0,""Vencido"",IF(M25-today()<=90,""**ATENÇÃO**"",""OK""))"
End Sub

Att

 
Postado : 15/11/2012 6:07 pm
(@dunha22)
Posts: 17
Eminent Member
Topic starter
 

Obrigado pela ajuda mas ainda não resolvel, na verdade eu preciso que essa fórmula seja aplicada a toda coluna "K" da minha planilha dados, ou seja se eu ponho uma data na célula "J2" na célula "K2" mostra se a data ta vencida à vencer ou OK, se eu ponho uma data na célula "J10" altere a situação da "k10" por exemplo... e o melhor temos que lembrar que essa planilha será preenchida por um formulário então esta alteração só pode ocorrer depois que o furmulário preencher a linha.

estou enviando a planilha em enexo para que possa auxiliar possiveis ajudas.

valeu!!!

 
Postado : 15/11/2012 8:10 pm
(@fernandofernandes)
Posts: 43750
Illustrious Member
 

Bom dia!!

Não sei se é exatamente isso, mas se não for você conseguirá adaptar.
http://www.sendspace.com/file/gjr8oq

Att

 
Postado : 16/11/2012 6:36 am
(@dunha22)
Posts: 17
Eminent Member
Topic starter
 

alexandre meu caro..desde já obrigado por esse suporte, mas não funcionou a principio todas as datas que eu registro na planilha "Dados" coluna "J"(Validade Bat)
estão aparecendo "VENCIDO" na coluna "k"(Situação), eu gostaria que assim que eu lançasse uma data em "Dados" "J", através do Formulário, de acordo com a data de validade cadastrada, a coluna ao lado "K"(SItuação), apresentasse a situação, como por exemplo:

vamos supor que eu lancei no form a data : 10/10/2010 e o form salve esse registro na linha "J10", logo a célula "K10" tem que apresentar "Vencido"

vamos supor que eu lancei no form a data : 10/01/2013 e o form salve esse registro na linha "J11", logo a célula "K11" tem que apresentar "Atenção" (pq a data é menor que 90 dias).

vamos supor que eu lancei no form a data : 10/10/2016 e o form salve esse registro na linha "J12", logo a célula "K12" tem que apresentar "OK"

sei que vc e os outro companheiros são feras... aguardo as respostas...

abraço!

 
Postado : 16/11/2012 8:36 am
(@dunha22)
Posts: 17
Eminent Member
Topic starter
 

só para o conhecimento de vocês eu coloquei o código abaixo e ele funcionou do jeito que eu queria porém eu só consigo que ele funcione nas celulas "J2" e "K2" eu preciso fazer isso funcionar para toda a coluna "J" à partir de "J2" e "K" à partir de "K2" e preciso fazer também uma situação dessa para que ele me apresente também "atenção" caso vencimento menor que 90 dias e "OK" caso vencimento superior a 90 dias :

Private Sub Worksheet_SelectionChange(ByVal Target As Range)

If Range("J2").Cells < Date And Range("J2").Cells <> "" Then

Range("K2").Cells = "Vencido"

End If

End Sub

fico no aguardo!!!

 
Postado : 16/11/2012 8:47 am
(@fernandofernandes)
Posts: 43750
Illustrious Member
 

Boa tarde!!

Que tal você tentar adaptar a formula que a rotina joga na coluna "K"??

Att

 
Postado : 16/11/2012 11:38 am
(@dunha22)
Posts: 17
Eminent Member
Topic starter
 

cara eu sou prego nesse assunto de VBA eu tenho pouco conhecimento....não sei como fazer..e não entendí o que você me orientou....

 
Postado : 16/11/2012 12:13 pm
(@fernandofernandes)
Posts: 43750
Illustrious Member
 

Boa tarde!!

Me passe via função exatamente o que pretende.

Att

 
Postado : 16/11/2012 1:04 pm
(@dunha22)
Posts: 17
Eminent Member
Topic starter
 

Alexandre e outros amigos que nos leem.... como eu disse comecei a me aventurar no VBA "ontem" então não sei quase nada...isso que vc me pediu acima eu boei de novo então sendo assim vamos lá deixa eu tentar te dizer oq eu preciso:

1º eu tenho uma planilha com 4 forms sendo eles "Userform1"-(esta ok, consegui fazer tudo que eu queria), este form preenche a minha planilha "Dados".

2º preciso que no modo VBA a planilha "Dados" tenha uma instrução fazendo a alteração levando em consideração toda a coluna "J" (validade de bateria) à partir de "J2" e "K" (SItuação) À partir de "K2" e que a instrução fosse a seguinte se a coluna "J" (data de validade) for menor que hoje a coluna "K" receba "vencido", se "J" (data de validade) menos a data de hoje for menor que 90 dias a coluna "K" receba "atenção" e se a coluna "J" (data de validade) menos a data de hoje for maior que 90 dias a coluna "K" receba "OK', eu até fiz um aqui para a opção vencido, mas só funciona em "J2" e "K2" eu preciso que seja na coluna inteira e não sei como fazer, segue abaixo o exemplo:

Private Sub Worksheet_SelectionChange(ByVal Target As Range)

If Range("J2").Cells > Date And Range("J2").Cells <> "" Then

Range("K2").Cells = "OK"

End If

End Sub

3° no meu Form "Search" (ainda não OK), eu tenho uma listview que apresenta os equipamentos lançados na planilha "Dados", eu gostaria que a "backcolor dessa listview" mudasse de cor de acordo com a informação da coluna "k" (situação) da seguinte maneira se a celula da coluna ("K") tiver escrito "OK" gostaria que toda a linha dessa célula na listview ficasse verde, se a celula da coluna ("K") tiver escrito "atenção" gostaria que toda a linha dessa célula na listview ficasse amarela, se a celula da coluna ("K") tiver escrito "Vencido" gostaria que toda a linha dessa célula na listview ficasse vermelha, esse form possui três botoes um verde "OK" um amarelo "Atenção" e outro vermelho "vencido", preciso de uma solução para que quando eu pressionar o botão verde "OK" permaneça na listview só os equipamentos cuja a coluna "K" (Situação) esteja como OK (backcolor-verde), quando eu pressionar o botão Amarelo"Atenção" permaneça na listview só os equipamentos cuja a coluna "K" (Situação) esteja como Atenção(backcolor-amarela), quando eu pressionar o botão Vermelho"vencido" permaneça na listview só os equipamentos cuja a coluna "K" (Situação) esteja como Vencido (backcolor-vermelha).

já pesquisei muuuuuuuuuuuuuuuuuito e não consigo solução para isso......

eu sei que vc é cara alexandre vê se vc pode me ajudar com isso ai... eu vou postar minha planilha de novo para vc ver pq eu fiz pequenas mudanças...

 
Postado : 16/11/2012 4:49 pm
(@dunha22)
Posts: 17
Eminent Member
Topic starter
 

Senhores mestres do VBA!!!! alguém pode me ajudar com esse problema ???????????????????

estou no aguardo!!! abraço!!

 
Postado : 17/11/2012 9:20 am
(@fernandofernandes)
Posts: 43750
Illustrious Member
 

Experimente / teste

Private Sub Worksheet_SelectionChange(ByVal Target As Range)
Dim lRow As Long, I As Long
lRow = Cells(Rows.Count, "J").End(xlUp).Row
For I = 2 To lRow
    If CDate(Range("J" & I)) - Date >= 90 Then
        Range("K" & I) = "OK"
    ElseIf CDate(Range("J" & I)) - Date >= 0 And CDate(Range("J" & I)) - Date < 90 Then
        Range("K" & I) = "Atenção"
    Else
        Range("K" & I) = "Vencido"
    End If
Next
    
End Sub
 
Postado : 17/11/2012 9:57 am
Página 1 / 2