Notifications
Clear all

Controle de demandas com datas criação e modificação

6 Posts
2 Usuários
0 Reactions
2,400 Visualizações
(@rafaelsc)
Posts: 15
Eminent Member
Topic starter
 

Apresentação
Primeiramente, meus cumprimentos, prazer em participar do fórum!
As planilhas, inclusive na gravação de códigos VBA sempre foram desafios há anos em tarefas de escritório e esse fórum, até então desconhecido, me parece interessante e motivador para cumprir com as tarefas. Pena é que, infelizmente, o tempo é escasso para participar mais e o trabalho atual não me permite tempo para empreendê-las, tendo que recorrer a algumas das horas de folga. Trabalho no ramo financeiro e ultimamente faço, principalmente, atendimento a solicitações e controle de demandas.
Ainda não conheço regramentos e objetivos, então por ora sigo pelo bom senso e peço compreensão por um possível excesso.

1. Desafio
- Visto o trabalho, tratei de criar uma planilha para controle delas, onde os dados por demanda discorrem nas linhas, por enquanto a partir da linha 2;
- Além de uns dados de identificação, mantenho na coluna "A" a entrada da demanda com data, e na coluna "E" a data e hora da modificação das colunas F ou G. Na primeira, formatei nº da célula com "dd/mmm" para apresentação mais simples e na segunda, formatei o nº da célula com "ddd dd, hh:mm" para melhor detalhamento.
- Para a maior agilidade distinguem-se as situações de inserção das de modificação de dados nas células sensíveis; na primeira, simplesmente ao inserir os dados de células em branco, o código tratará de colocar automaticamente a informação "PENDENTE" na coluna F, que descreverá a situação de cada demanda.

1.1. Tratamento das datas automáticas de criação e modificação
- Dada a planilha AVALIAÇÕES, o seguinte código foi criado:

Sub worksheet_change(ByVal faixa As Range)
Dim dados As Range
Set dados = Range("E1:G1000")
If dados.Cells(faixa.Row, -3).Value = "" Then
If Not Intersect(faixa, dados) Is Nothing Then
Application.EnableEvents = False
dados.Cells(faixa.Row, -3).Value = Now
ActiveSheet.Unprotect
dados.Cells(faixa.Row, 2).Value = "PENDENTE"
Application.EnableEvents = True
End If
Else
If Not Intersect(faixa, dados) Is Nothing Then
Application.EnableEvents = False
ActiveSheet.Unprotect
dados.Cells(faixa.Row, 1).Value = Now
Application.EnableEvents = True
ActiveSheet.Protect DrawingObjects:=True, Contents:=True, Scenarios:=False
End If
End If
End Sub

Funcionou bem. Mas aí surgiu uma primeira necessidade: Ao modificar dados nas colunas sensíveis (F, G) é atualizada a data de modificação imposta pelo código (na coluna E); Porém, ao inserir o dado na coluna sensível F, a data não é atualizada na coluna E: como resolver?

A seguir, talvez compartilhe o 2º desafio, trabalhando com as proteções, classificações práticas para controle das demandas e salvamento de células; outros desafios são a interação das datas com a atual, o arquivamento das informações antigas e qualquer ideia que der pé. Desde já, agradeço a quem puder auxiliar na solução do problema, em realce.

Valeu? Até mais!

 
Postado : 14/09/2013 9:01 am
(@fernandofernandes)
Posts: 43750
Illustrious Member
 

Bom dia!!

Eu não percebi muito bem sua dúvida, caso o pessoal não lhe responda precisamente, por favor poste seu arquivo modelo compactado!!

Att

 
Postado : 14/09/2013 9:18 am
(@rafaelsc)
Posts: 15
Eminent Member
Topic starter
 

Na realidade, a questão que postei já havia sido superada (me desculpe). A nova questão é considerar no código que atualize a coluna E se as colunas sensíveis F ou G forem criadas, como em A, e expresse o momento de modificação se F ou G forem modificadas. Como no arquivo anexo.

*Ctrl Shift S salva e desprotege para modificar a coluna situação, e volta a proteger quando o dado na referida coluna é modificado.

 
Postado : 14/09/2013 10:01 am
(@fernandofernandes)
Posts: 43750
Illustrious Member
 

Rafael, me desculpe, mas não consegui captar o que realmente pretende, a rotina em seu modelo faz algumas alterações dependendo de algumas CONDIÇÕES :

Se a Digitação for na Coluna F - Temos as seguinte CONDIÇÕES :
1°) Se A = Vazio - Coloca Data em A e E fica em Branco e F fica com a Expressão PENDENTE
2° Se A <> Vazio - Coloca Data em E e F fica com a Expressão da Alteração
3° Se A e E <> Vazias altera a Data em E e F fica com a Expressão da Alteração

Se a Digitação for na Coluna G - Temos as seguinte CONDIÇÕES :
1° Se A = Vazio - Coloca Data em A e F fica PENDENTE
2° Se A <> Vazio - Coloca Data em E e G fica com a Expressão da Alteração
3° Se A e E <> Vazias altera a Data em E e G fica com a Expressão da Alteração

Desta forma o ideal seria você postar qual ou quais seriam as outras "CONDIÇÕES", assim poderiamos montar um CASE para cada Situação.

Então não consegui assimilar sua duvida, pois você usou expressões como :
colunas sensíveis F ou G forem criadas - Como assim FOREM Criadas ? O que quer dizer com Colunas Senciveis ?

expresse o momento de modificação se F ou G forem modificadas - Aqui a Data é alterada quando se efetua alguma modificação de acordo com as condições citadas acima.

[]s

 
Postado : 14/09/2013 2:21 pm
(@rafaelsc)
Posts: 15
Eminent Member
Topic starter
 

Olá Alexandre, olá Mauro.

Cara, muito obrigado pela organização lógica!

Com base nela eu concluí nas condicionais o que segue, com grifo meu em sublinhado:

1. Durante digitação na coluna F, Na 1ª condição (Se A = Vazio), onde constou “e ‘E’ fica em Branco” passaria a constar “e ‘E’ fica com Data/Hora atual. Logo, assim ficaria: “Se A = Vazio - Coloca Data em A e E fica com Data/hora atual e F fica com a Expressão PENDENTE”
2. Durante digitação na coluna G, na 1ª condição (Se A = Vazio), acrescenta como resultante da função “e ‘E’ fica com Data/Hora atual". Logo, assim ficaria: “Se A = Vazio - Coloca Data em A e F fica PENDENTE e E fica com Data/hora atual.
3. Finalmente, acrescentar que se na digitação de F ou G ambas ficarem em branco, também em branco ficarão as células das colunas A e E.

Quis dizer por colunas sensíveis células nas colunas que ditam os argumentos para a função. Cara, eu não compreendo as linguagens e concatenações lógicas do código.

Bem, tenho alguns cases práticos para a planilha, tais como desenvolver a proteção e reparar a classificação de dados, implementar o arquivamento dos dados e implementar relatório diário.

Boa semana a todos!

 
Postado : 15/09/2013 8:34 pm
(@rafaelsc)
Posts: 15
Eminent Member
Topic starter
 

Olá pessoal,

Tentei substituir do código acima expresso Value de em branco " " por Now, mas não deu certo.
Basicamente, desejo que conste a data de modificação quando dados nas colunas F ou G são inseridos ou modificados e que quando ambas as colunas F e G forem apagados, também em branco sejam as colunas de data A e E. Acho que é algo nas condições lógicas expressas no post acima que não sei traduzir em VBAbês.
Quem puder auxiliar, desde já meus agradecimentos.

Cópia de tela da planilha

 
Postado : 18/09/2013 8:20 pm