Ir ao conteúdo

Posts recomendados

Postado
 

Boa tarde!

Alguém pode me dar uma ajudinha ?

Tenho uma planilha "PEDIDOS A FATURAR" que atualiza sozinha ( com os dados que vem do sistema TOTVS PROTHEUS ). Preciso de um código em VBA  ou EXCEL para retornar a data e horário automaticamente na coluna "ÚLTIMA ATUALIZAÇÃO" ( que inseri para saber qual pedido entrou )...

Obs.: os dados entram automaticamente após cada atualização e não são digitados manualmente

 

image.thumb.png.1d2d8486ee897ec25982fbf74efc9666.png

  • Obrigado 1
Postado

Nunca usei o protheus, ele está gerando esse excel ou você está puxando os dados automáticos de forma dinâmica?

está fazendo isso pelo power query? power bi? pelo vbs? por json? por xml? como é o ciclo de vida desse dashboard(se for um dashboard)?

Se isso reflete a ultima atualização da especifica tupla, esse dado deve vir junto com a entrada, ou seja, ser criado por qualquer que seja a forma que esteja entrando e não ser gerado na célula.

 

 

 

Postado

Caro @Swalls...

Obrigado pelo retorno...

Essa é uma planilha que retorna os dados do ERP Protheus , e atualiza automaticamente....Porém eu não tenho acesso as configurações de administrador para fazer alterações .
A coluna " ÚLTIMA ATUALIZAÇÃO " , eu inseri para que tentar consegui o horário automaticamente através de algum código em VBA.( de foram que não precise ser digitada manualmente,o código VBA que tentei só permite códigos digitados manualmente).

 

Segue o código que tentei utilizar , mas não deu certo:

 

Private Sub Worksheet_Change(ByVal Target As Range)
    Dim tbl As ListObject
    Dim updateCol As ListColumn
    Dim updateCell As Range
    Dim changedRow As ListRow
    
    ' Define a tabela e a coluna de atualização
    Set tbl = Me.ListObjects("Pedidos_a_Faturar")
    Set updateCol = tbl.ListColumns("ÚLTIMA ATUALIZAÇÃO")
    
    ' Verifica se a célula alterada está dentro da tabela
    If Not Intersect(Target, tbl.DataBodyRange) Is Nothing Then
        Application.EnableEvents = False
        ' Percorre cada célula alterada
        For Each updateCell In Target
            ' Se a célula alterada estiver em uma linha da tabela, atualize a coluna "ÚLTIMA ATUALIZAÇÃO"
            Set changedRow = tbl.ListRows(updateCell.Row - tbl.HeaderRowRange.Row)
            changedRow.Range(updateCol.Index).Value = Format(Now, "hh:mm:ss")
        Next updateCell
        Application.EnableEvents = True
    End If
End Sub
 

Grato!!!

 

 

 

Postado

@Emerson Lomas você está no excel,

A pergunta que eu lhe fiz foi: esses dados são tratados no excel (seja por power query ou qualquer outra forma) ou o ERP que gera esse arquivo excel pré pronto?

Postado

@Emerson Lomas O que eu faria seria editar a entrada desses dados pelo power query do excel adicionando a coluna now, ou(se você n tiver acesso a isso) clonar a "guia" e preencher a outra com dados tratados pela outra guia usando o power query.

 

(não sei se é a melhor forma, sou dev e não sei VBA de excel, que é mais área de quem faz análista de dados, você criou o tópico na área errada, aguarde o staff transferir seu tópico para que quem segue a área de excel possa lhe dar mais informações).

 

  • Pedroou alterou o título para Hora automática na planilha atualizável
Postado
9 horas atrás, Emerson Lomas disse:

Preciso de um código em VBA  ou EXCEL para retornar a data e horário automaticamente na coluna "ÚLTIMA ATUALIZAÇÃO"

Você quer data e hora ou somente hora, como está no código VBA que você postou?

 

( que inseri para saber qual pedido entrou )...

Você quer lançar data e hora (ou somente hora) em todos os registros após a atualização da planilha pelo programa externo ou quer lançar somente nos pedidos que entraram, ou seja, nos novos registros? Se for somente nos novos registros, como vamos reconhecer quais são os novos?

Se a coluna "ÚLTIMA ATUALIZAÇÃO" contiver dados (data e hora ou somente hora), a atualização feita na planilha pelo programa externo irá limpar aquela coluna?

Qual é a última coluna à direita que sofre alterações quando é feita a atualização pelo programa externo?

 

 

Para a elaboração e testes do código VBA, além das respostas acima, ajudaria a entender melhor a sua demanda se você anexar um arquivo Excel (prints não servem) com uma planilha com dados, apenas 4 ou 5 linhas, com data/hora lançados manualmente na coluna E nos devidos registros, e também uma cópia dessa mesma planilha como ela ficará após a atualização pelo programa externo e também uma terceira cópia mostrando como você quer que ela fique após a referida atualização.

 

Aproveite para verificar se algum dos códigos abaixo exibe a Caixa de Mensagem no momento em que a planilha é atualizada pelo programa externo. Lembrando que ambos devem ser colocados no módulo da planilha de interesse.

Private Sub Worksheet_Calculate()
 MsgBox "WS_Calculate"
End Sub
Private Sub Worksheet_Change(ByVal Target As Range)
 MsgBox "WS_Change"
End Sub

 

  • Curtir 1

Crie uma conta ou entre para comentar

Você precisa ser um usuário para fazer um comentário

Criar uma conta

Crie uma nova conta em nossa comunidade. É fácil!

Crie uma nova conta

Entrar

Já tem uma conta? Faça o login.

Entrar agora

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...

Ebook grátis: Aprenda a ler resistores e capacitores!

EBOOK GRÁTIS!

CLIQUE AQUI E BAIXE AGORA MESMO!