Ir ao conteúdo
  • Cadastre-se

Gabriel.Rizzatto

Membro Pleno
  • Posts

    53
  • Cadastrado em

  • Última visita

posts postados por Gabriel.Rizzatto

  1. Queria saber algo assim, quando eu logar ele irá inciar na planilha senha em uma nova coluna chamada status, onde fala se eu vou estar online e offline, só que ao lado da coluna status irá ter um botão para cada usuário chamado depurar igual o link abaixo, quando eu incio a macro depurar ele fecha a planilha de outro usuário. 

     

    https://imasters.com.br/artigo/4223/banco-de-dados/encerrando-sessoes-de-usuario/?trace=1519021197&source=single

  2. 7 minutos atrás, CasaDoHardware disse:

    Nao era pra subistituir todo o codigo era apenas para alterar o que indiquei.

     

     

    Não tirei todo o código,

    adicionado 0 minutos depois
    Private Sub Workbook_Deactivate()
    Application.Visible = True
    lsDesligarTelaCheia
    End Sub
    Private Sub Workbook_Open()
        Dim W As Workbook
        Set W = Workbooks("DATA-STATION.xlsm")
        W.Application.Visible = False
        MayCauseAnError
        Application.DisplayAlerts = False
        Application.AskToUpdateLinks = False
        Application.Visible = False
        lsDesabilitar
        frmLogin.Show
        'Atualização
        Application.CalculateFull
        GravarUsuario
    End Sub
    Private Sub Workbook_Activate()
    Application.CalculateFull
    Limroll_on
    GravarUsuario
    End Sub
    Public Sub Workbook_BeforeClose(Cancel As Boolean)
    If Workbooks.Count = 1 Then
        Application.Quit
            Else
            ThisWorkbook.Close savechanges:=False
           End If
           Application.DisplayAlerts = False
           Application.Save
    End Sub
    
    


     

  3. Deu erro 424

    adicionado 5 minutos depois

    Queria algo assim, se o usuario estiver logado irá aparecer na planilha login: Usuario Status, o status irá falar 2 variáveis 1 LOGADO, 2 OFFLINE 

    adicionado 18 minutos depois

    Olhe esse código

    Private Sub Workbook_SheetChange(ByVal Sh As Object, ByVal Target As Range)
        Dim wsHist As Worksheet, Rng As Range
        Dim Usuario As String
                   
            Set wsHist = Sheets("Login")
        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(, 3) = txtUsuario.Value
        End With
        

     

  4. Bom tenho uma planilha com alguns problemas que estou solucionando aos poucos,  que é um controle de acesso, no caso um login e senha, com diversos usuários, porém ela não compartilhada, pois quando eu compartilho ela, algumas macros não funcionam, então decidi deixar assim mesmo, irei deixar logado como admin e as outras pessoas irá ver somente como leitura porém como login para entrar na planilha funciona. 

     

    Porém queria ter o controle quais usuários estão logados na planilha. exemplo ter uma aba onde aparece usuários logados na planilha 

     

    Todas as senha: 123
     
    Login:  admin
    Senha:  admin

     

    outro usúario

     

    Login: F4403134

    Senha: M18831

     

    DATA-STATIONN.zip

  5. 16 horas atrás, CasaDoHardware disse:

    Uma coisa que nao entendi se todos os usuarios são admin qual o objetivo?

     

    De qualquer maneira tente essa alteração

     

    Em esta pasta de trabalho cole estes codigos

     

     

    Private Sub Workbook_Deactivate()
    Application.Visible = True
    lsDesligarTelaCheia
    End Sub

     

     

    Private Sub Workbook_Open()
        Application.DisplayAlerts = False
        Application.AskToUpdateLinks = False
        ThisWorkbook.Application.Visible = False
        lsDesabilitar
        frmLogin.Show
        'Atualização
        Application.CalculateFull
    End Sub

     

     

     

    Não, a diversos usuários na planilha senha, só que as linhas estão ocultadas, so desocultar todas, ou criar um novo usuário 

     

    Testei ainda continua dando aquele erro 9

     

    Teste o usuário seguinte:

     

    Lgoin> F4403134

    Senha> M18831

    adicionado 11 minutos depois
    11 minutos atrás, Gabriel.Rizzatto disse:

    Não, a diversos usuários na planilha senha, só que as linhas estão ocultadas, so desocultar todas, ou criar um novo usuário 

     

    Testei ainda continua dando aquele erro 9

     

    Teste o usuário seguinte:

     

    Lgoin> F4403134

    Senha> M18831

    Não sei porque mas esse erro só dar se eu estiver com alguma outra planilha da rede aberta

  6. Segue planilha no zip, te peço uma ajudar se é possível criar uma macro ativar o mouse of e on de acordo com usuário também, exemplo se for admin ele ativar o mouse direito se não for ele desativa , e também esse problema se eu estiver com alguma planilha da rede aberta e iniciar o data station ele não entra e da o erro 9,  e também se eu abrir uma planilha nova ele incia  a tela cheia para todos os trabalhos é porque essa planilha está no servidor não sei se interfere em algo, consegue colocar um tempo de conectado a planilha, exemplo se usuário estiver inativo por 8 min a planilha fecha automaticamente, mas não se aplicara a o usuário admin, acho se puder melhor o máximo essa planilha agradeço, eu deixo ela no servidor onde vários usuários entre somente na sua planilha podendo visualizar dados de vendas etc..

     

    Todas as senha: 123

     

    Login:  admin

    Senha:  admin

    DATA-STATIONN.zip

    adicionado 0 minutos depois
    agora, Gabriel.Rizzatto disse:

    Segue planilha no zip, te peço uma ajudar se é possível criar uma macro ativar o mouse of e on de acordo com usuário também, exemplo se for admin ele ativar o mouse direito se não for ele desativa , e também esse problema se eu estiver com alguma planilha da rede aberta e iniciar o data station ele não entra e da o erro 9,  e também se eu abrir uma planilha nova ele incia  a tela cheia para todos os trabalhos é porque essa planilha está no servidor não sei se interfere em algo, consegue colocar um tempo de conectado a planilha, exemplo se usuário estiver inativo por 8 min a planilha fecha automaticamente, mas não se aplicara a o usuário admin, acho se puder melhor o máximo essa planilha agradeço, eu deixo ela no servidor onde vários usuários entre somente na sua planilha podendo visualizar dados de vendas etc..

     

    Todas as senha: 123

     

    Login:  admin

    Senha:  admin

    DATA-STATIONN.zip

    Acho que ira solucionar todos os meus problemas.

    adicionado 4 minutos depois

    Tenho mas um mas acho que é impossível eu queria deixar esse trabalho compartilhado, só que as macros não funcionam então o usuario admin no caso Eu deixo a planilha sempre aberta, assim quando outro usuario logar ele entra no login mas como leitura. é possível deixar compartilhado ou exemplo quando inciar a planilha não aparecer a mensagem se quer somente leitura, ou uma macro que iniciar sempre modo leitura sem aparecer a mensagem e tal 

  7. 25 minutos atrás, Crafteribanez disse:

    Para informar:

    Neste post "Mudar de textbox usando TAB ou ENTER" neste fórum encontrei um código que aparentemente está funcionando nos tabs.

    Depois de várias entradas no sistema, até agora não teve a tabulação dentro do textbox.

     

    
    Private Sub UserForm_KeyDown(ByVal KeyCode As MSForms.ReturnInteger, ByVal Shift As Integer)
        If KeyCode = 13 Then
            SendKeys "{TAB}"
        End If
    End Sub[/code]

     

    adicionado 2 minutos depois

    Aliás erro, encontrei esta resposta no fórum scriptbrasil.

     

    Então, eu estava com o mesmo problema, foi passado o seguinte procedimento e resolvido.

     

    Tente dessa forma: Esse código deve estar dentro do formulário!

    Private Sub TxtMatricula_KeyDown(ByVal KeyCode As MSForms.ReturnInteger, ByVal Shift As Integer)
    If KeyCode = 13 Then
             Label1_Click
        End If
    End Sub
    Private Sub Label1_Click()
    ' Coloque seu codigo de condicao para acesso
    CmdPesquisar 
    End Sub


    Entenda que TxtMatricula será o ultimo dado preenchido no formulário, então no caso se for outro substitui pelo nome do ultimo formulário.

     

    Agora em  Label1_Click

     

    Veja que coloquei CmdPesquisar, mas você deve substituir para o botão que deseja "ir" Exemplos, entrar, login, pesquisar etc.. de acordo com está o seu formulário.

     

    Acho que isso, mas me mandar mais informações que tento se der algum erro..

     

     

  8. 2 horas atrás, Gabriel.Rizzatto disse:

    Continua dando o erro 424...

    Agora funcionou. 

     

    Eu eu retirei da  EstaPasta_de_trabalho

    e coloquei dentro do formulário de login 

     

    Perfeito agradecido!

    adicionado 2 minutos depois

    Aproveitando, como poderia fazer com que a planilha fechar sozinha depois de alguns minutos inativos, porém o usuário admin ele não se aplicar a planilha inativa ?

  9. 2 horas atrás, CasaDoHardware disse:

    Mas nao no evento desactive, provavelmente no auto open e no before close

     

    O evento desactive vai rodar quando você desativar (trocar) a planilha. 

    Já tentei ainda ele continua executando o lsLigarTelaCheia nas outras planilhas, 

     

    eu testei algo parecido assim: 

     

    If Workbooks.Count = 1 Then
        lsLigarTelaCheia
         Else
         lsDesligarTelaCheia
         End If

     

    Funcionou quando eu abro uma nova planilha agora, se eu estiver com alguma planilha aberta e não abre a planilha e da o

     

    Erro em tempo de execução '9':

    Subscrito fora do intervalo 

  10. 13 horas atrás, CasaDoHardware disse:

    Estou partindo do principio que você tem um codigo (ja postado) para fazer todas as configurações que você postou 

    que sao esses:

     

     lsDesabilitar
        lsLigarTelaCheia
        Mouse_Off

     

     

    Acredito que você tenha os codigos (vou supor os nomes) abaixo

     

    lshabitar

    lsdesligartelacheia

    Mouse_on

     

    Onde lshabilitar é o oposto do lsdesabilitar, lsdesligartelacheia é o oposto do lsligartelacheia, e mouse_on é o oposto do mouse_off.

     

    Esses codigos devem ser colocados ou chamados no evento desative da planilha em esta pasta de trabalho.

    Então eles já estão na pasta de trabalho.

  11. 12 horas atrás, CasaDoHardware disse:

    Faça assim em um modulo

     

    Sub telacheia()

     

    codigo que coloca a planilha em tela cheia

     

    end sub

     

    Sub desativatelacheia()

     

    codigo para desativar a tela cheia

     

    end sub

     

    Provavelmente quando você fecha a planilha o codigo que fecha a tela cheia e deixa o excel normal roda, ou deveria

     

    Dentro do formulario no codigo do Login insira um teste if

     

    Se o usuario for diferente de admin o codigo pra tela cheia executa

     

     

    if textboxusuario.value <> "admin" then

     

    call telacheia

     

    end if

     

     

    Não tem muito misterio

     

     

     

     

     

     

     

     

     

     

     

     

    Eu tentei funcionou mas está dando dando erro em tempo de execução "424"

    O objeto é obrigatório 

     

    Eu fiz da seguinte forma

     

    Criei um modulo:

     

    Sub refencia()
              If txtUsuario.Value <> "admin" Then
    Call lsLigarTelaCheia
    Else
    Call lsDesligarTelaCheia

    End If
    End Sub

     

    depois atribui esse modulo a Workbook_Open em EstaPasta_de_trabalho

     

    A logica funcionou mas da a mensagem de erro 424.

     

    ________________________________________________

    Irei te explicar melhor os códigos. Para me ajudar.

     

    Eu tenho uma "Workbook_Open()" em EstaPasta_de_trabalho

     

    Que quando eu abro meu trabalho ele sempre irá inciar a tela cheia!

    No caso a macro " lsLigarTelaCheia "

     

    Dentro do meu formulário de login, existe os seguintes códigos

    Private Sub CommandButton1_Click()
      Dim rgNomePlans As Range, cél As Range
      Dim usuario As String, Senha As String
      
        'Verifica se os campos estão preenchidos
        If txtUsuario = "" Then
            MsgBox "Preencha o campo usuário!", vbCritical, "Atenção"
            txtUsuario.SetFocus: Exit Sub
        ElseIf txtSenha = "" Then
             MsgBox "Preencha o campo senha!", vbCritical, "Atenção"
            txtSenha.SetFocus: Exit Sub
        End If
      
      With Sheets("Senha")
      
         .AutoFilterMode = False
         .Range("$A$1").CurrentRegion.AutoFilter Field:=1, Criteria1:="=" & txtUsuario.Text
         .Range("$A$1").CurrentRegion.AutoFilter Field:=2, Criteria1:="=" & txtSenha.Text
         Set rgNomePlans = .AutoFilter.Range.Columns(3)
         
      End With
      If rgNomePlans.SpecialCells(xlCellTypeVisible).Cells.Count > 1 Then
        Set rgNomePlans = rgNomePlans.Offset(1, 0).Resize(rgNomePlans.Rows.Count - 1, 1).SpecialCells(xlCellTypeVisible)
        ActiveWorkbook.Unprotect Password:="159753852"
        
          Unload frmLogin
          For Each cél In rgNomePlans
            Sheets(cél.Value).Visible = True
          Next cél
        ActiveWorkbook.Protect Password:="159753852", Structure:=True, Windows:=False
      Else
        MsgBox "Usuário e/ou Nome Incorreto!" 'O auto-filtro resultou vazio
      End If
      
          ActiveWorkbook.Protect Password:="159753852", Structure:=True, Windows:=False
     
    End Sub

    Agora repare o seguinte em With Sheets("Senha")

     

     With Sheets("Senha")
      
         .AutoFilterMode = False
         .Range("$A$1").CurrentRegion.AutoFilter Field:=1, Criteria1:="=" & txtUsuario.Text
         .Range("$A$1").CurrentRegion.AutoFilter Field:=2, Criteria1:="=" & txtSenha.Text
         Set rgNomePlans = .AutoFilter.Range.Columns(3)

     

    Veja que os usuários e senha estão localizado na planilha "senha" 

    Veja que ele vai procurar na planilha "senha" se os usuários digitados nos no txtUsuario e txtSenha condiz com que foi digitado.

     

    No caso txtUsuario e  txtSenha são uma TextBox do formulário.

     

    Como devemos resolver sabendo?

     

     

     

     

     

     

     

     

     

     

     

     

     

     

     

     

     

     

     

  12. Eu tenho uma planilha, porém tem diversas macros que executa quando incia a planilha, mas o problema é que quando eu abro "outro planilha" as macros inciam. por exemplo: 

     

    Private Sub Workbook_Open()
        Application.DisplayAlerts = False
        Application.AskToUpdateLinks = False
        Application.Visible = False
        lsDesabilitar
        lsLigarTelaCheia
        Mouse_Off
        frmLogin.Show
        'Atualização
        Application.CalculateFull
    End Sub

     

     

    Veja o  "lsLigarTelaCheia" faz com que ligue a tela cheia. porém ele executa nas outras planilha que abro.

    Veja também o  "Mouse_Off" ele desabilita o mouse direito porém quando eu abro outra planilha a macro está executada.

     

    Alguém, poderia ajudar?

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!