Ir ao conteúdo
  • Cadastre-se

Macro: regista data de alteração da célula i3 da plan2 na célula d3 da plan1


Ir à solução Resolvido por Basole,

Posts recomendados

Boa Tarde Pessoal!

Estou com um problema ao tentar executar uma macro que registe a data de alteração feita nas células da Coluna I (ou 9) da Planilha 2 nas células da Coluna D (ou 4) da Planilha 1.

Alguém sabe alguma macro com essa função?

Obrigado

Eu estou usando Excel 2007

Link para o comentário
Compartilhar em outros sites

@Glaiciane Perim veja se o exemplo (abaixo) leh ajuda: 

Cole o codigo Exemplo, no modulo de EstaPasta_de_trabalho: (vide img)

 

auto_ca2.gif

 

Private Sub Workbook_SheetChange(ByVal Sh As Object, ByVal Target As Range)
    Dim lngCol As Long

    If Target.Count > 1 Then Exit Sub

    Select Case ActiveSheet.Name
    Case Is = "Plan1"  ' Altere o nome da sua planilha(aba) * coluna D
        lngCol = 4
    Case Is = "Plan2"   ' Altere o nome da sua planilha(aba) * coluna I
        lngCol = 9
    End Select

    If lngCol = 0 Then Exit Sub

    If Target.Column = lngCol Then
        ActiveSheet.Range("A" & Target.Row).Value = VBA.Now
    End If

End Sub

 

Link para o comentário
Compartilhar em outros sites

@Basole, Não sei qual foi o problema mas não estou conseguindo fazer executar a macro.

Estou testando a macro em uma planilha vazia do excel, na qual tem 3 planilhas (Plan1, Plan2 e Plan3)

Ao digitar na coluna I da Plan2 não aparece a data na Coluna D da Plan1.

 

Pode me ajudar de novo ? ^^

codigo.PNG

Link para o comentário
Compartilhar em outros sites

  • Solução

@Glaiciane Perim vendo a imagem que voce postou, me parece que a macro esta em um modulo padrão, como disse anteriormente para a macro ser executada automaticamente, voce precisa inserir esse codigo no vbe da EstaPasta_de_trabalho (vide img q postei). * (Dee 2 click sobre EstaPasta_de_trabalho p/ abrir o modulo e cole)..

 

Eu alterei o codigo (abaixo), pois não tinha entendido exatamente o que queria: 

 

Private Sub Workbook_SheetChange(ByVal Sh As Object, ByVal Target As Range)
    Dim lngCol As Long

    Const w1 As String = "Plan1"    ' Altere o nome da sua planilha(aba) * coluna D
    Const w2 As String = "Plan2"    ' Altere o nome da sua planilha(aba) * coluna I

    If Target.Count > 1 Then Exit Sub

    Select Case ThisWorkbook.ActiveSheet.Name

    Case Is = w2
        lngCol = 9
    Case Else
        Exit Sub
    End Select

    If lngCol = 0 Then Exit Sub

    If Target.Column = lngCol Then
        ThisWorkbook.Worksheets(w1).Range("D" & Target.Row).Value = VBA.Now
    End If

End Sub

 

 

 

  • Curtir 1
Link para o comentário
Compartilhar em outros sites

Visitante
Este tópico está impedido de receber novas respostas.

Sobre o Clube do Hardware

No ar desde 1996, o Clube do Hardware é uma das maiores, mais antigas e mais respeitadas comunidades sobre tecnologia do Brasil. Leia mais

Direitos autorais

Não permitimos a cópia ou reprodução do conteúdo do nosso site, fórum, newsletters e redes sociais, mesmo citando-se a fonte. Leia mais

×
×
  • Criar novo...