Página 1 de 1

VBA - Criar Campo Histórico

Enviado: Qua Ago 21, 2019 5:28 pm
por Amezzalira79
Boa tarde! Preciso da ajuda de vocês!

Procurei na internet mas não achei nada :(

Tenho uma planilha com um formulário de cadastro em que preciso ter um campo de histórico das ações tomadas com o contrato, então cada ação feita com o contrato, tem que ser registrada na mesma célula acumulativamente, inclusive data e hora.

Alguém sabe me dizer se é possivel? Se sim, como?
Se não, alguma sugestão?

Obrigado!

Re: VBA - Criar Campo Histórico

Enviado: Qui Ago 22, 2019 10:07 am
por Tov Elen Shau
Colega, não sei se é bem isso que você quer, também não sei a quem dar créditos pela rotina, mas não fui eu quem a criou.

Crie uma planilha com o nome “Historico”, e cole a rotina em EstaPasta_de_Trabalho no VBA.
Private Sub Workbook_SheetChange(ByVal Sh As Object, ByVal Target As Range)

Application.ScreenUpdating = False

'REGISTRA AS ALTERAÇÕES DA PLANILHA
Dim VarUsuario
Dim ObjNetwork
Set ObjNetwork = CreateObject("WScript.Network")
VarUsuario = ObjNetwork.UserName
UsuarioRede = VarUsuario
Dim wsHist As Worksheet, Rng As Range
Set wsHist = Sheets("Historico")
If Sh Is wsHist Then Exit Sub
Set Rng = wsHist.Range("A" & Rows.Count).End(xlUp).Offset(1)
With Rng
.Value = Now
.Offset(, 1) = Sh.Name
.Offset(, 2) = Target.Address
.Offset(0, 4) = UsuarioRede
If Target.Cells.Count > 1 Then
.Offset(, 3) = "Valores Alterados"
Else
.Offset(, 3) = Target.Formula
End If
End With

Application.ScreenUpdating = True
End Sub

Atenciosamente

Tov Elen Shau

Re: VBA - Criar Campo Histórico

Enviado: Sex Ago 23, 2019 9:57 am
por Amezzalira79
Olá Tov!

obrigado pela ajuda, mas pelo que li no código isso vai gerar um relatório de acesso a planilha.
Porém o que eu preciso é ter um registro com intervenção do usuário, informando os movimentos do contrato, por exemplo, contato com o responsável, email encaminhado, renovação do contrato, dentre outras, e que isso fique registrado na mesma célula, sendo que cada ação incremente e não exclua os dados anteriores.

Re: VBA - Criar Campo Histórico

Enviado: Sex Ago 23, 2019 11:22 am
por Reinaldo
Pelo que entendi, você deseja um local para anotações diversas, feitas pelo usuário, não exatamente um histórico.
Possível; em teoria; ter em uma unica célula é, contudo vale lembrar que uma célula tem suas limitações;
https://support.office.com/pt-br/articl ... ffice_2010
não é um campo "memo" ;
limite de +/-32760 caracteres, largura x altura (máxima para visualização) 255 caractere x 409 pontos
Particularmente, por ser muito mais complicado gravar/ler as infomações, não julgo algo pratico.

Re: VBA - Criar Campo Histórico

Enviado: Sex Ago 23, 2019 5:33 pm
por Amezzalira79
Reinaldo, realmente cada vez que penso nisso, vejo o quão complicado será, até porque não vejo literatura sobre isso.
Penso, mas ainda não sei como rrsrs, ter uma plan que eu possa ter essas anotações amarradas por algum índice, do tipo número do contrato, e assim pesquisar todas as anotações feitas e trazer num único campo do user form classificado por ordem do + novo para + o antigo.
Se tiver alguma sugestão eu agradeço