Vídeo recomendado
https://youtu.be/diWPPPhW-9E
https://youtu.be/diWPPPhW-9E
VBA - Criar Campo Histórico
-
- Acabou de chegar
- Mensagens: 3
- Registrado em: Qua Ago 21, 2019 3:09 pm
VBA - Criar Campo Histórico
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!
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!
-
- Manda bem
- Mensagens: 173
- Registrado em: Qua Mai 17, 2017 2:27 pm
Re: VBA - Criar Campo Histórico
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
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
-
- Acabou de chegar
- Mensagens: 3
- Registrado em: Qua Ago 21, 2019 3:09 pm
Re: VBA - Criar Campo Histórico
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.
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.
- Reinaldo
- Jedi
- Mensagens: 1537
- Registrado em: Sex Ago 01, 2014 4:09 pm
- Localização: Garça - SP / SCS - SP
Re: VBA - Criar Campo Histórico
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.
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.
-
- Acabou de chegar
- Mensagens: 3
- Registrado em: Qua Ago 21, 2019 3:09 pm
Re: VBA - Criar Campo Histórico
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
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