Notifications
Clear all

Data de "Hoje" de acordo com a inserção dos dados

12 Posts
1 Usuários
0 Reactions
1,881 Visualizações
(@fernandofernandes)
Posts: 43750
Illustrious Member
Topic starter
 

Boa Noite Pessoal!

Tenho acompanhado o fórum e tem sido muito enriquecedor para mim ler sobre todas as discussões aqui. Porém, me veio uma dúvida que não encontrei resposta, gostaria que me ajudassem.

Tenho uma planilha onde diariamente os colaboradores inserem dados sobre produtos. Simplifiquei-a à baixo:

[/URL]

De modo à agilizar a inserção de dados, é possível que a primeira coluna (Coluna A) seja preenchida automaticamente com a data do dia da inserção do dado da "Coluna B"? O simples uso da fórmula =HOJE() não funciona visto que os dados da primeira coluna sempre se atualizarão e não é isso o que procuro.

Será que exite alguma maneira de fazer com que a "Coluna A" seja automaitcamente preenchida com o valor de "hoje" com relação à data de inserção dos dados da "Coluna B" e sem se atualizar a cada dia que passa? No caso do exemplo acima, o dado a ser preenchido na B4 gerará automaticamente o "hoje" (dia 21/10) na A4. Valor este, que não se atualizará na inserção do valor da B5.

Espero ter sido claro, mas gostaria de saber se há alguma solução para esta situação.
Aguardo comentários.

Muito Obrigado!

 
Postado : 20/10/2012 10:15 pm
(@fernandofernandes)
Posts: 43750
Illustrious Member
Topic starter
 

Bom dia Rocks

Clique com o lado direito do mouse no nome da Aba da Planilha --> Exibir código --> vai abrir um módulo em branco no evento change da planilha --> copie e cole este código:

Private Sub Worksheet_Change(ByVal Target As Range)
    'alteração na coluna "B" gera uma inclusão de data na coluna "A"
    If Target.Column = 2 Then Cells(Target.Row, 1).Value = Date
End Sub

Para fechar o editor de VBA ==> clique em ALT+Q
Para testar digite na coluna B que a data será inserida na coluna A.

Dê retorno.

Se a resposta foi útil, clique na mãozinha que fica ao lado da ferramenta Citar.

Um abraço.

 
Postado : 21/10/2012 7:02 am
(@fernandofernandes)
Posts: 43750
Illustrious Member
Topic starter
 

Bom dia!!

Me lembro que eu ha muito tempo respondi um tópico com a mesma necessidade que a sua, porém os títulos, para vocês que irão pesquisar, não ajuda, pois na ultima postagem a pessoa tinha um título que não estava de acordo com o que precisava!!

Lembre-se sempre de utilizar um título adequado.

Att

 
Postado : 21/10/2012 7:58 am
(@fernandofernandes)
Posts: 43750
Illustrious Member
Topic starter
 

Boa Tarde!

Era exatamente isso que estava procurando! Muito obrigado!!
Só uma última coisa, essa planilha tem que ser salvo em "Habilitada para Macros", certo? Então, sempre que for aberta o usuário deve clicar em "Habilitar/Permitir Macros" para que este código funcione ou há uma outra maneira para que esta função seja automatica ao se abrir a planilha?

Valeu!

 
Postado : 21/10/2012 12:31 pm
(@fernandofernandes)
Posts: 43750
Illustrious Member
Topic starter
 

Boa tarde!!

Por segurança não é bom deixar habilitado, mas você pode configurar ...
http://office.microsoft.com/pt-br/excel ... 54316.aspx
Att

 
Postado : 21/10/2012 12:35 pm
(@fernandofernandes)
Posts: 43750
Illustrious Member
Topic starter
 

Olá Alexandre,

Valeu pela resposta.
Não é nem por mim, mas para os demais colaboradores. Sei do risco das Macros em documentos, mas teria de explicar que sempre deveriam habilitar as macros quando forem inserir dados. Apenas pensei que apenas pensei que houvesse um jeito mais fácil, porém sem expôr nenhum PC. Algo que fosse inserido só nesta planilha que se tornasse padrão, sei lá... Apenas divago sobre as possibilidades, entende?

Abraço!

 
Postado : 21/10/2012 1:00 pm
(@fernandofernandes)
Posts: 43750
Illustrious Member
Topic starter
 

Boa tarde!!

Quando se abre um determinado arquivo, isso independe de qual.

Ao configurar sua habilitação de macro, isso é feito no Office, ou seja, qualquer arquivo, recebera tal configuração, até que seja modificada.
Existem algumas maneiras...
http://office.microsoft.com/pt-br/excel ... 31781.aspx
Att

 
Postado : 21/10/2012 1:05 pm
(@fernandofernandes)
Posts: 43750
Illustrious Member
Topic starter
 

Oi,

Entendi o ponto e me serviu perfeitamente. Era exatemente isso que queria! Mas sabe como é quando se está desenvolvendo algo e você se vê querendo fechar todos os nós? Assim me surgiu mais uma questão, espero que possa novamente me ajudar.

Estou tentando bloquear a coluna A para edição (para evitar-se equívocos) só que quando bloqueio a mesma a função do macro não é carregada e gera um erro. É possível bloquear de alguma maneira tal coluna sem afetar a inserção autamática da data?

Muito Obrigado novamente!!

 
Postado : 21/10/2012 1:39 pm
(@fernandofernandes)
Posts: 43750
Illustrious Member
Topic starter
 

Rocks

Você pode bloquear normalmente a coluna A depois que acrescentar algumas linhas de código na macro:

Private Sub Worksheet_Change(ByVal Target As Range)
'comando que desprotege a planilha, no caso a senha é TESTE
ActiveSheet.Unprotect "TESTE"
    If Target.Column = 2 Then Cells(Target.Row, 1).Value = Date
'comando que protege a planilha
ActiveSheet.Protect "TESTE"
End Sub

Substitua a palavra TESTE pela senha que vc colocar na planilha.

Um abraço.

 
Postado : 21/10/2012 1:47 pm
(@fernandofernandes)
Posts: 43750
Illustrious Member
Topic starter
 

Boa Noite,

Perfeito Patropi!! Obrigado mesmo! Pra mim isso soa como um mestre de Excel de fato.
Me surgiu mais uma questão agora, pode soar como preciosismo mas não é. Se por acaso um Dado for lançado na Coluna B por engano e depois ser excluido, a data permanecerá da Coluna A, mesmo com a Coluna B em branco agora. Há como retornar a Coluna A em branco novamente caso tenha que deletar o dado da Coluna B?
Falo isso, pois pode ocorrer em massa no meu caso e para não gerar equívocos pensei em ter uma coluna acompanhando a outra sempre. Se uma está em branco a outra também sempre estará.

Existe uma maneira de se fazer isso possível?

Grato!!

 
Postado : 21/10/2012 5:14 pm
(@fernandofernandes)
Posts: 43750
Illustrious Member
Topic starter
 

Bom dia Rocks

Tente assim:

Private Sub Worksheet_Change(ByVal Target As Range)
 ActiveSheet.Unprotect "TESTE" 
If Target.Column <> 2 Then Exit Sub
  Application.EnableEvents = False
   If Target.Value <> "" Then
    Target.Offset(, -1) = Date
   Else: Target.Offset(, -1).ClearContents
   End If
 Application.EnableEvents = True
ActiveSheet.Protect "TESTE"
End Sub

Um abraço.

 
Postado : 22/10/2012 5:10 am
(@fernandofernandes)
Posts: 43750
Illustrious Member
Topic starter
 

Hey,

Nada menos do que além do esperado. Obrigado Patropi!

 
Postado : 31/10/2012 8:03 pm