Página 1 de 1

Atualizar data da célula com duplo clique

Enviado: 08 Jan 2021 às 18:23
por SandroLima
Boa tarde, pessoal.

Poderiam me ajudar com isso?

Preciso de uma macro que atualize as datas da Coluna Data da tabela TB_ExpMatematica com um duplo clique em cada célula.

Segue planilha para aplicação e teste.

Re: Atualizar data da célula com duplo clique

Enviado: 12 Jan 2021 às 11:16
por SandroLima
Bom dia, pessoal.

Alguém poderia ajudar com isso?

Re: Atualizar data da célula com duplo clique

Enviado: 13 Jan 2021 às 14:54
por SandroLima
Boa tarde, colegas.

Tentei resolver com a seguinte macro:
Código: Selecionar todos
Private Sub Worksheet_BeforeDoubleClick(ByVal Target As Range, Cancel As Boolean)
    
    Dim Tabela As ListObject
    Dim Rng As Range
    
    Set Tabela = Wsh_EMi.ListObjects("TB_ExpMatematica")
    Set Rng = Tabela.ListColumns("Data").DataBodyRange
    
    If Target.Address <> Rng Then Exit Sub
        Target.Value = Date: Cancel = True
    
    Set Rng = Nothing
    Set Tabela = Nothing
        
End Sub
Porém não obtive êxito.

Alguém pode verificar?

Segue planilha com a macro.

Re: Atualizar data da célula com duplo clique

Enviado: 14 Jan 2021 às 20:10
por SandroLima
Boa noite, colegas.

Alguém sabe como faço isso?

Re: Atualizar data da célula com duplo clique

Enviado: 15 Jan 2021 às 20:29
por GENECI
Boa noite.
Sou novo no VBA, veja se resolve o seu problema, ajuste o código para a sua necessidade.

Geneci.

Re: Atualizar data da célula com duplo clique

Enviado: 21 Jan 2021 às 12:53
por SandroLima
Fiz uma pequena alteração aqui para apontar o range da coluna data e deu certo.
Código: Selecionar todos
Private Sub Worksheet_SelectionChange(ByVal Target As Range)
    
    Dim Plan As Worksheet
    Dim Tabela As ListObject
    Dim Col_Data As Range
    
    Set Plan = Wsh_EMi
    Set Tabela = Plan.ListObjects("TB_ExpMatematica")
    Set Col_Data = Tabela.ListColumns("Data").DataBodyRange
    
    Application.ScreenUpdating = False

    If Not Intersect(Target, Col_Data) Is Nothing Then
    
        Cancel = True
        ActiveCell = Date
        ActiveCell.Offset(0, 0).Select
    
    End If
    
    Application.ScreenUpdating = True

End Sub
Muito obrigado.