Notifications
Clear all

Armazenar o valor de uma célula numa determinada data.

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

Amigos, tenho um desafio dado pelo meu gerente. Pesquisei aqui no forum e não enconbtrei nada:

Temos uma planilha que no final me gera um indicador na celula A1.
Este valor é atualizado em cada sexta feira, ou seja, amanhã o valor da célula poderá ser outro.
Precisamos registrar este valor e mante-lo para formar uma série histórica para depois montar um gráfico (tempo x valor)
Seria assim, no dia 27/01/2012 tenho 3,18 em A1.
em 03/02/2012 tenho 3,00 em A1.
em 10/02/2012 tenho 2,56 em A1
em 17/02/2012 tenho 2,30 em A1
assim por diante......

como faço para registrar em B1, automaticamente, no inicio do dia 27/01 o valor de A1=3,18
em C1 o valor de 03/02, A1=3,00
em D1 o valor de 10/02, A1=2,56
em E1 o valor de 17/02, a1=2,30...

Preciso disso urgentemente espero contar com apoio de vocês.

Um forte abraço,

Willian Ramires

 
Postado : 26/01/2012 4:39 pm
(@fernandofernandes)
Posts: 43750
Illustrious Member
Topic starter
 

Boa noite,

De que forma é atualizado o valor?
Manualmente?
Fórmula?
Macro?
Link DDE?

Abraço

 
Postado : 26/01/2012 8:18 pm
(@fernandofernandes)
Posts: 43750
Illustrious Member
Topic starter
 

Bom dia!!

Willramires, baixe a planilha e veja se isso te ajuda.

 
Postado : 27/01/2012 5:24 am
(@fernandofernandes)
Posts: 43750
Illustrious Member
Topic starter
 

Prezado Alexandrevba, ela ajudou em partes, precisava tambem registrar a data atual referente ao valor registrado. Ou seja, ao lado do valor registrado precisava que viesse a data que aquilo mudou.

Mando a planilha, o que tenho que registrar é o indicador ICS e a data em que este indicador mudou.

Naveguem pela planilha para ver como o ICS foi calculado.

Agradeço pela colaboração de vocês....ainda estou engatinhando no Excel.....

Willramires

 
Postado : 27/01/2012 7:38 am
(@fernandofernandes)
Posts: 43750
Illustrious Member
Topic starter
 

Prezado Alexandrevba,

Estava analisando a plainha que vc enviou e identifiquei que ela armazena o histórico de qualquer célula. Mas o que preciso é armazenar o valor de duas células especificas: L36 e M36

Fico no aguardo da ajuda!!!

Willramires

 
Postado : 27/01/2012 8:03 am
(@fernandofernandes)
Posts: 43750
Illustrious Member
Topic starter
 

Bom dia!!!

Espero que até que eu chegue do serviço alguém possa te ajudar.

Não baixar seu anexo aqui, no trabalho!

Chego em casa as 20:30

Att..

 
Postado : 27/01/2012 8:20 am
(@fernandofernandes)
Posts: 43750
Illustrious Member
Topic starter
 

Alexandrea posso mandar pro seu email....

O duro é esperar até as 20:30, chefe está no meu encalço....

 
Postado : 27/01/2012 8:32 am
(@fernandofernandes)
Posts: 43750
Illustrious Member
Topic starter
 

Boa tarde!!

Tente assim.

Private Sub Worksheet_Change(ByVal Target As Range)
    If Target.Cells <> [M36] And [L36] Then Exit Sub
    If Target.Cells(1, 1).Count <> 1 Then Exit Sub
    Change.Cells(Rows.Count, 1).End(xlUp).Offset(1, 0) = Target.Value

End Sub
 
Postado : 27/01/2012 11:57 am
(@fernandofernandes)
Posts: 43750
Illustrious Member
Topic starter
 

Boa tarde!!

Tente assim.

Private Sub Worksheet_Change(ByVal Target As Range)
    If Target.Cells <> [M36] And [L36] Then Exit Sub
    If Target.Cells(1, 1).Count <> 1 Then Exit Sub
    Change.Cells(Rows.Count, 1).End(xlUp).Offset(1, 0) = Target.Value

End Sub
 
Postado : 27/01/2012 11:57 am
(@fernandofernandes)
Posts: 43750
Illustrious Member
Topic starter
 

Alexandre,

Onde ela vai armazenar, em que linha e célula?

 
Postado : 27/01/2012 12:02 pm
(@fernandofernandes)
Posts: 43750
Illustrious Member
Topic starter
 

Testei Alexandre,

Ele só esta pegando o primeiro valor da [M36],
se eu altero a formula "If Target.Cells <> [M36] And [L36] Then Exit Sub" para "If Target.Cells <> [L36] And [M36] Then Exit Sub" , ele só armazena o valor da [L36] .

Ele esta armazenando na coluna A os valores de M36 ou L36( se eu alterar como falei a linha do VBA);
Ele poderia armazenar ao mesmo tempo o valor M36 na coluna A e L36 na coluna B, um ao lado do outro, ou seja, A1 e B1.

Como podemos fazer?

Grato pela sua ajuda.

 
Postado : 27/01/2012 12:16 pm
(@fernandofernandes)
Posts: 43750
Illustrious Member
Topic starter
 

Boa noite!!

Então faça a alteração e veja se dar certo, retorne!

Att..

 
Postado : 27/01/2012 5:23 pm
(@fernandofernandes)
Posts: 43750
Illustrious Member
Topic starter
 

Bom dia!!

Veja se assim te ajuda..

Exemplo se tem a plan1, tudo que digitar nas células "L36", "M36", será armazenado em "A1".

Option Explicit
Private Sub Worksheet_Change(ByVal Target As Range)
    If Target.Cells.Count <> 1 Then Exit Sub
    If Intersect(Target, Range("L36: M36")) Is Nothing Then Exit Sub
    Cells(Rows.Count, 1).End(xlUp).Offset(1, 0) = Target.Value
End Sub

Dê retorno... ;)

 
Postado : 28/01/2012 8:34 am
(@fernandofernandes)
Posts: 43750
Illustrious Member
Topic starter
 

Prezados,

Resolvi meu problema utilizando um post anterior. viewtopic.php?f=20&t=2679

Tive que colocar dentro de uma macro e para rodar só consegui inserindo ela no botão slvar da planilha.
Não consegui fazer ela rodar automaticamente após a mudança do valor do indicador ICS (celula L36)

Segue a macro :

Sub SALVAR()
Dim Ultimalinha As Long
Dim Ultimalinha2 As Long
Dim sVal As Variant
Dim sVal2 As Variant

Ultimalinha = Range("O" & Rows.Count).End(xlUp).Row
Ultimalinha2 = Range("P" & Rows.Count).End(xlUp).Row

Set sVal = Cells(Ultimalinha, 15)
Set sVal2 = Cells(Ultimalinha2, 16)

If IsEmpty(sVal) Then
Worksheets("performance").Cells(Ultimalinha, 15).Value = [L36]
Else
Worksheets("performance").Cells(Ultimalinha + 1, 15).Value = [L36]
End If

If IsEmpty(sVal2) Then
Worksheets("performance").Cells(Ultimalinha2, 16).Value = [M36]
Else
Worksheets("performance").Cells(Ultimalinha2 + 1, 16).Value = [M36]
End If
ActiveWorkbook.Save
End Sub

Se alguem conseguir fazer rodar automaticamente fico muito agradecido.

 
Postado : 30/01/2012 3:41 pm
(@fernandofernandes)
Posts: 43750
Illustrious Member
Topic starter
 

Boa noite!!

Minha ultima versão também deu certo!

mas já que resolveu, meus parabéns, então marque o tópico como resolvido! ;)

 
Postado : 30/01/2012 5:12 pm