Página 3 de 4

Re: Log com as Alterações nas Planilhas v 2003 - v 2007

Enviado: Qui Mar 01, 2012 6:09 pm
por Celso Silvério
Boa tarde caros colegas!

Não entendo bem de programação, por isso gostaria de uma ajuda de vocês. Como fazer para alterar e fazer aparecer o nome do usuário na TextBox "TxUsuario" do formulário Log, sendo que o nome desse usuário vai estar na Planilha TESTE, Célula "G2" do mesmo arquivo???????

Abraços,


Celso

Re: Log com as Alterações nas Planilhas v 2003 - v 2007

Enviado: Qui Mar 01, 2012 8:29 pm
por Mauro Coutinho
Viviane escreveu:Caros colegas, não sou programadora mas consegui, por meio das excelentes explicações do Coutinho 'instalar o log na v 2010', muito obrigada. O que eu quero mudar, e peço ajuda de vocês: como esconder ou colocar em outra pasta os arquivos gerados pelo LOG para que ninguem os veja, e consequentemente os delete?
Viviane, primeiramente, para que ninguem saiba onde está o arquivo "log" gerado, é necessário proteger o projeto VBA, se alguem tiver acesso, irá ver o caminho definido na rotina.

Como disse que adaptou na v 2010, e eu não tenho esta versão, fiz o ajuste na v 2007 que acredito ser a que utilizou, e tambem na v2003, se alguem pensar em fazer o mesmo que você, as alterações necessárias estão comentadas nos códigos :

Excel 2007

Código: Selecionar todos

Sub Log(Pos As Integer, NewValue, Ende, Planilha As String)

    Dim Arquivo2 As String
    Dim QtdArq As Integer
    Dim objFSO    As Object
    Dim objFolder As Object
    Dim objFile   As Object
    Dim strPath   As String
    Dim strName   As String
    Dim contador

    'juste o Caminho na linha abaixo
    'strPath = ActiveWorkbook.Path- Atribui o Caminho onde está o arquivo atualmente
    strPath = "C:\SuaPasta" 'Ajustar o Caminho-Atribui o Caminho par o Diretorio  que você definir
    
    contador = 0

    If GlbOLdValue(Pos) = Empty Then
        GlbOLdValue(Pos) = "VAZIO"
    End If

    If NewValue = Empty Then
        NewValue = "VAZIO"
    End If

    If NewValue = GlbOLdValue(Pos) Then
        Exit Sub
    End If

    'Use Microsoft Scripting runtime.
     Set objFSO = CreateObject("Scripting.FileSystemObject")
     Set objFolder = objFSO.GetFolder(strPath)
    
    'Check type of file in the folder and open file.
    For Each objFile In objFolder.Files
        If objFile.Name Like "Log*.txt" Then
           strName = objFile.Name
               contador = contador + 1
        End If
    Next
    QtdArq = contador

    'Arquivo2 = ActiveWorkbook.Path & "\Log" & QtdArq & ".txt"
    'Ajustamos a linha acima alterando "ActiveWorkbook.Path" para a Variavel "strPath"
    Arquivo2 = strPath & "\Log" & QtdArq & ".txt"

    Open Arquivo2 For Append As #1
        Write #1, Encripta(Planilha), Encripta(Ende), Encripta(GlbOLdValue(Pos)), Encripta(NewValue)
    Close #1
    
    GlbOLdValue(Pos) = Empty

    'Cleanup
     Application.ScreenUpdating = True
     Set objFSO = Nothing
     Set objFolder = Nothing
     Set objFile = Nothing
    
End Sub
Excel 2003

Código: Selecionar todos

Sub Log(Pos As Integer, NewValue, Ende, Planilha As String)
    On Error Resume Next
    Dim Arquivo2 As String
    Dim QtdArq As Integer
    Dim FolderName As String
    
        If GlbOLdValue(Pos) = Empty Then
            GlbOLdValue(Pos) = "VAZIO"
        End If
        
        If NewValue = Empty Then
            NewValue = "VAZIO"
        End If
        
        If NewValue = GlbOLdValue(Pos) Then
            Exit Sub
        End If
        
        'Ajuste o Caminho na linha abaixo
        FolderName = "C:\SuaPasta"
        
        With Application.FileSearch
            '.LookIn = ActiveWorkbook.Path
            'troque a linha decima por esta
            .LookIn = FolderName
            .Filename = "Log*.txt"
            .Execute
            QtdArq = .FoundFiles.Count
        End With
    
        'Arquivo2 = ActiveWorkbook.Path & "\Log" & QtdArq & ".txt"
        'Ajustamos a linha acima alterando "ActiveWorkbook.Path" para a Variavel "FolderName"
        Arquivo2 = FolderName & "\Log" & QtdArq & ".txt"
    
        Open Arquivo2 For Append As #1
            Write #1, Encripta(Planilha), Encripta(Ende), Encripta(GlbOLdValue(Pos)), Encripta(NewValue)
        Close #1
        
        GlbOLdValue(Pos) = Empty
End Sub
[]s

Re: Log com as Alterações nas Planilhas v 2003 - v 2007

Enviado: Qui Mar 01, 2012 8:38 pm
por Mauro Coutinho
Celso Silvério escreveu:Boa tarde caros colegas!

Não entendo bem de programação, por isso gostaria de uma ajuda de vocês. Como fazer para alterar e fazer aparecer o nome do usuário na TextBox "TxUsuario" do formulário Log, sendo que o nome desse usuário vai estar na Planilha TESTE, Célula "G2" do mesmo arquivo???????
Abraços,
Celso
Celso, acho que não entendi o que pretende, uma vez que o nome de usuário que aparece no "TxtUsuario", não é definido diretamente e sim é captado por meio de API do Windows pela "Private Declare Function GetUserName" o nome do usário que está Logado no sistema e armazenado na variável "UserName"pela instrução abaixo :
UserName = Left(lpBuff, InStr(lpBuff, Chr(0)) - 1)

Favor dar maiores detalhes do que pretende.

[]s

Re: Log com as Alterações nas Planilhas v 2003 - v 2007

Enviado: Qui Mar 01, 2012 9:37 pm
por Celso Silvério
É que estou tentando adaptar a planilha através de senhas com usuários, e gostaria de saber se tem como, ao inserir um nome na Célula "G2" da Planilha TESTE esse nome aparecer na TextBox "TxUsuario" do formulário Log??????

Sds,

Celso

Re: Log com as Alterações nas Planilhas v 2003 - v 2007

Enviado: Qui Mar 01, 2012 10:26 pm
por Mauro Coutinho
Celso Silvério escreveu:É que estou tentando adaptar a planilha através de senhas com usuários, e gostaria de saber se tem como, ao inserir um nome na Célula "G2" da Planilha TESTE esse nome aparecer na TextBox "TxUsuario" do formulário Log??????
Sds,
Celso
Eu ainda não compreendi direito, mas se quer que apareça no "TxUsuario" o nome que está na Célula "G2" da Planilha TESTE, na rotina "Private Sub UserForm_Initialize()", adicione :

TxUsuario = Worksheets("Teste").Range("G2").Value

[]s

Re: Log com as Alterações nas Planilhas v 2003 - v 2007

Enviado: Qui Mai 03, 2012 4:30 pm
por Melo
Fala, rapazeada

Muito boa . . .,

Estive observando e surgiu uma dúvida que tentei fazer as adaptações:

1º. Em vez de salvar como Log, salvar com outro nome, eu alterei para Relatório na Linha

Código: Selecionar todos

Arquivo2 = ActiveWorkbook.Path & "\Log" & QtdArq & ".txt"
Funcionou perfeitamente, ok,

2º. Surge a segunda dúvida, como gerar o Relatorio com a data?

Então Fiz:
Dim GerarDataHora As String

GerarDataHora = Format(Now, "dd_mm_yyyy_ hh:mm:ss")

Código: Selecionar todos

Arquivo2 = ActiveWorkbook.Path & "\Log" & QtdArq + GerarDataHora & ".txt"
Não funcionou,

Agora a pergunta aos amigos, como seria para gerar Relatório + a data (EX: Relatorio03_05_20012_16:29:32) + ou - isso
Ainda não consegui adaptar, podem dar uma ajudinha

Desde já agradeço.

Re: Log com as Alterações nas Planilhas v 2003 - v 2007

Enviado: Ter Mai 08, 2012 3:19 pm
por webmaster
Melo,

Só de olhar, seria porque o Windows não aceita nomes de arquivos com o caracter ":" ?

Abraços

Re: Log com as Alterações nas Planilhas v 2003 - v 2007

Enviado: Qua Mai 09, 2012 9:33 pm
por Melo
webmaster,

Obrigado, até o momento não consegui adaptar, mas continuo na persistência.

Re: Log com as Alterações nas Planilhas v 2003 - v 2007

Enviado: Qui Out 25, 2012 10:19 pm
por Edudinha
Caro amigo Mauro, sou novato no excel e primeiramente queria te parabenizar pela sua planilha muito boa, mais tenho uma duvida onde devo alterar para por outro caminho para salvar o arquivo log. para não ficar na mesma pasta da planilha.

Atenciosamente,

Eduardo..

Re: Log com as Alterações nas Planilhas v 2003 - v 2007

Enviado: Sex Out 26, 2012 9:00 pm
por Mauro Coutinho
Eduardo, se verificar nos posts acima, eu já havia respondido esta questão a Viviane, está bem explicado, mas se ainda tiver alguma duvida estamos ai para ajudar.

[]s