Este fórum está sendo desativado

Depois de 9 anos, este fórum será desativado. Mas calma.... estamos migrando para uma comunidade no DISCORD. Junte-se a nós.

ENTRAR PARA DISCORD

Tópicos relacionados a códigos VBA, gravação de macros, etc.
  • Avatar do usuário
Por rit
Posts
#39878
Bom dia Amigos,

Tenho uma planilha que marca a hora em que uma determinada coluna é alterada e joga essa data em outra planilha, isso dentro de uma mesma pasta, o problema é que toda vez que eu altero uma linha ele substitui a ultima alteração, gostaria de saber se tem como eu gerar o historico de alterações gravando até 3 datas por linha, ou seja as tres primeiras alterações na linha que eu alterar ele gere um historio..

Alguem consegue me ajudar com isso?

Obrigado!
Avatar do usuário
Por Jimmy
Avatar
#39903
Rit,

Não parece difícil mas você tem que passar mais detalhes.

Anexe um modelo da planilha funcionando da forma atual, uma explicação desse funcionamento, e como você gostaria que ela passasse a funcionar.

Assim ficará mais fácil te ajudar.

Jimmy San Juan
Por rit
Posts
#39935
Não existe um modelo ainda estou moldando isso, mas eu apenas preciso armazenar uma data de modificação para ter um historico da forma que eu estou fazendo ele sempre altera a data não existe um armazenamento, ja viu algo parecido com isso?

Preciso que quando uma determinada celula seja alterada seja registrado essa data e fique armazenada e se for alterada no mesmo dia não registre mais, apenas se for alterado em outro dia ai sim registre..
Por babdallas
#39946
Só verificar se a data atual (sem as horas, somente dia, mês e ano) é diferente da data da célula. Se for diferente, registra a data. Se for igual, não registra.
Por rit
Posts
#39974
Consegue me escrever a linha de código que faria isso? um exemplo?

Eu estou usando o evento Worksheet_Change(ByVal Target As Range) quando ele altera a coluna O ele registra a data da alteração cruzando linha e coluna

Exemplo:
Código: Selecionar todos
If Target.Column = 15 Then
If Plan1.Range("O" & Target.Row).Value <> "" Then

Planilha4.Range("B" & Target.Row).Value = Plan1.Range("E" & Target.Row).Value
Avatar do usuário
Por Jimmy
Avatar
#39976
Olá Rit,

Coloque a macro abaixo no evento CHANGE da planilha a ser monitorada.

Altere a quantidade (variável QTD da macro) e o nome da planilha que receberá o registro. (objeto ONDE).

Quando algo é alterado na coluna "O" da planilha monitorada, a macro olha para a mesma linha da planilha Plan4. Se já tiver a quantidade de registros máximo (no meu exemplo, 5), ela apaga a mais antiga, da coluna A, e registra. Se o conteúdo a ser registrado foi igual ao anterior, ele não registra (mesma data, por exemplo).
Código: Selecionar todos
Private Sub Worksheet_Change(ByVal Target As Range)

Set Inter = Intersect(Target, Range("O:O"))
If Not Inter Is Nothing Then
    Qtd = 5  'Define a quantidade de colunas de registro
    Set Onde = Sheets("Plan4")
    For Each Cel In Inter
        Lin = Cel.Row
        Col = Onde.Cells(Lin, Columns.Count).End(xlToLeft).Column
        
        Cont = Int(Now())                                       'Define o conteúdo a ser registrado
        If Onde.Cells(Lin, Col).Value <> Cont Then   'Não faz registro igual ao anterior
            If Col >= Qtd Then                                  'Vai precisar apagar células
                Onde.Range(Cells(Lin, 1), Cells(Lin, Col - Qtd + 1)).Delete Shift:=xlToLeft
                Col = Qtd
            Else
                If Cells(Lin, Col) <> "" Then Col = Col + 1
            End If
            Onde.Cells(Lin, Col).Value = Cont        'Registra conteúdo
        
        End If
    Next
End If
End Sub
Teste e de retorno.

Jimmy San Juan
Por rit
Posts
#39979
Cara desculpa meu baixo conhecimento mas eu não consegui adaptar a minha necessidade, estou anexando um "exemplo" do que eu preciso, se puder me ajudar com isso ficaria agradecido.

Essa planilha em anexo faz o seguinte: Quando alguma linha da coluna O possui um texto especifico ele grava na planilha HISTORICO e abre uma tela de e-mail, quando eu retiro esse item ele apaga da planilha historico, queria manter esse historico... se possivel.
Você não está autorizado a ver ou baixar esse anexo.
long long title how many chars? lets see 123 ok more? yes 60

We have created lots of YouTube videos just so you can achieve [...]

Another post test yes yes yes or no, maybe ni? :-/

The best flat phpBB theme around. Period. Fine craftmanship and [...]

Do you need a super MOD? Well here it is. chew on this

All you need is right here. Content tag, SEO, listing, Pizza and spaghetti [...]

Lasagna on me this time ok? I got plenty of cash

this should be fantastic. but what about links,images, bbcodes etc etc? [...]

Estamos migrando para uma comunidade no Discord