none
Excel 2010 - Função que mostra a data em que uma célula foi alterada RRS feed

  • Pergunta

  • Bom dia,

    Tenho uma planilha com três colunas:

    Nome | E-mail | Data da alteração do e-mail

    Preciso que a colula "C" seja atualizada automaticamente quando a coluna "B" for alterada.

    Obrigada!!

    quinta-feira, 3 de março de 2011 14:53

Respostas

  • Ola Karine.

    Não sei se conseguiu alguma ajuda neste caso. O problema que vejo que está tendo é como informar ao Excel que o valor da coluna B foi alterado.

    Consegui algo mas utilizando programação em VBA da seguinte forma:

    Private Sub Workbook_Open()
    Email = Plan1.Range("B2").Value
    End Sub

    Ao abrir a planilha defino o valor da variável e-mail para o valor atual da planilha.

    Private Sub Worksheet_SelectionChange(ByVal Target As Range)
    If Email <> Range("B2").Value Then
    Range("C2").Value = Now
    End If
    End Sub

    Ao ocorrer qualquer mudança na planilha ativa é verificado se o valor da célula B2 (no caso o primeiro valor de e-mail) está igual ao valor armazenado quando a planilha foi aberta. Se este valor for diferente ele insere a data atual na célula C2.

    Este é apenas um rascunho da solução, por conta do seu caso estar em aberto a mais de dois meses. A lógica que vejo é criar uma forma de ler todos os valores existentes no campo "E-mail" e armazenar os mesmos em variaveis para efeito de comparação.

    Não consegui encontrar alguma forma deste cálculo automático sem ser por programação VBA.

    Espero te ajudado,


    Flavio Souza
    • Marcado como Resposta Diego Piffaretti quinta-feira, 14 de julho de 2011 23:53
    • Não Marcado como Resposta Karine Porton quinta-feira, 22 de novembro de 2012 18:25
    • Marcado como Resposta Karine Porton quinta-feira, 22 de novembro de 2012 18:26
    quinta-feira, 14 de julho de 2011 20:18

Todas as Respostas

  • Ola Karine.

    Não sei se conseguiu alguma ajuda neste caso. O problema que vejo que está tendo é como informar ao Excel que o valor da coluna B foi alterado.

    Consegui algo mas utilizando programação em VBA da seguinte forma:

    Private Sub Workbook_Open()
    Email = Plan1.Range("B2").Value
    End Sub

    Ao abrir a planilha defino o valor da variável e-mail para o valor atual da planilha.

    Private Sub Worksheet_SelectionChange(ByVal Target As Range)
    If Email <> Range("B2").Value Then
    Range("C2").Value = Now
    End If
    End Sub

    Ao ocorrer qualquer mudança na planilha ativa é verificado se o valor da célula B2 (no caso o primeiro valor de e-mail) está igual ao valor armazenado quando a planilha foi aberta. Se este valor for diferente ele insere a data atual na célula C2.

    Este é apenas um rascunho da solução, por conta do seu caso estar em aberto a mais de dois meses. A lógica que vejo é criar uma forma de ler todos os valores existentes no campo "E-mail" e armazenar os mesmos em variaveis para efeito de comparação.

    Não consegui encontrar alguma forma deste cálculo automático sem ser por programação VBA.

    Espero te ajudado,


    Flavio Souza
    • Marcado como Resposta Diego Piffaretti quinta-feira, 14 de julho de 2011 23:53
    • Não Marcado como Resposta Karine Porton quinta-feira, 22 de novembro de 2012 18:25
    • Marcado como Resposta Karine Porton quinta-feira, 22 de novembro de 2012 18:26
    quinta-feira, 14 de julho de 2011 20:18
  • Boa tarde Flavio Souza. Essa linguagem é válida para toda a coluna ou apenas para essas células. Se for apenas para as células, como tornar válida pra coluna inteira? Ex: Coluna A com datas inseridas automaticamente toda vez que os valores da Coluna B forem alterados. Obrigado.
    domingo, 14 de julho de 2013 15:18
  • Flavio, bom dia!

    Preciso colocar duas macros na mesma planilha, porem não estou conseguindo.

    segue abaixo:

    Sub Worksheet_Change(ByVal Target As Range)
        If Target.Column = 4 And Cells(Target.Row, 4).Value <> "" Then
            Cells(Target.Row, 18).Value = Str(Now)

        If Target.Column = 13 And Cells(Target.Row, 13).Value <> "" Then
            Cells(Target.Row, 19).Value = Str(Now)

        End If
    End Sub

    quinta-feira, 27 de julho de 2017 14:26