none
Contador de colunas vazias RRS feed

  • Pergunta

  • Olá amigos. Sou iniciante no VBA e estou confeccionando um formulário de cadastro de empresas e gostaria de saber como eu poderia cadastrar varias chaves e senhas para cada empresa. Por exemplo: uma empresa X possui uma chave e uma senha para acessar um sistema Y, e possui também uma chave e uma senha para outro sistema, podendo ser mais de 10 sistemas diferentes com suas senhas e chaves. Até o momento, estava utilizando um esquema de armazenar as informações do meu formulário numa linha, ficando um linha para cada empresa. Mas agora que precisarei colocar mais informações, não tem como usar só essa linha. Pensei em talvez abrir uma nova planilha para o cadastro dessas senhas das empresas, deixando o nome das empresas em cada uma das linhas, e nas colunas, os nomes dos sistemas seguidos abaixo pelas chaves e senhas... mas não sei como fazer nada disso.... ja utilizo contador para as linhas em outras partes do meu form, mas agora simplesmente travei...por favor me ajudemmmmmmm.... abs
    quarta-feira, 2 de janeiro de 2013 14:20

Respostas

  • Suponha que a coluna A seja o nome da empresa, B seja login e C a senha. Você pode ter vários logins de várias empresas dessa forma, concorda?

    Para saber se o login é válido para uma determinada empresa, considere o exemplo abaixo:

    Sub Exemplo()
        Const csEmpresa As String = "Benzasoft"
        Const csLogin As String = "Felipe"
        Const csSenha As String = "123"
        
        Dim bLogin As Boolean
        Dim lRow As Long
        
        With ThisWorkbook.Sheets("Senhas")
            'Laço até a última linha:
            For lRow = 2 To .Cells(.Rows.Count, "A").End(xlUp).Row
                If .Cells(lRow, "A") = csEmpresa Then
                    If .Cells(lRow, "B") = csLogin Then
                        If .Cells(lRow, "C") = csSenha Then
                            MsgBox "Senha correta!", vbInformation
                            bLogin = True
                        Else
                            MsgBox "Senha incorreta!", vbCritical
                        End If
                    End If
                End If
            Next lRow
        End With
    
        If bLogin = True Then
            'Código que executa se senha estiver correta
        Else
            Exit Sub
        End If
    End Sub


    Felipe Costa Gualberto - http://www.ambienteoffice.com.br

    quinta-feira, 3 de janeiro de 2013 23:30
    Moderador

Todas as Respostas

  • Suponha que a coluna A seja o nome da empresa, B seja login e C a senha. Você pode ter vários logins de várias empresas dessa forma, concorda?

    Para saber se o login é válido para uma determinada empresa, considere o exemplo abaixo:

    Sub Exemplo()
        Const csEmpresa As String = "Benzasoft"
        Const csLogin As String = "Felipe"
        Const csSenha As String = "123"
        
        Dim bLogin As Boolean
        Dim lRow As Long
        
        With ThisWorkbook.Sheets("Senhas")
            'Laço até a última linha:
            For lRow = 2 To .Cells(.Rows.Count, "A").End(xlUp).Row
                If .Cells(lRow, "A") = csEmpresa Then
                    If .Cells(lRow, "B") = csLogin Then
                        If .Cells(lRow, "C") = csSenha Then
                            MsgBox "Senha correta!", vbInformation
                            bLogin = True
                        Else
                            MsgBox "Senha incorreta!", vbCritical
                        End If
                    End If
                End If
            Next lRow
        End With
    
        If bLogin = True Then
            'Código que executa se senha estiver correta
        Else
            Exit Sub
        End If
    End Sub


    Felipe Costa Gualberto - http://www.ambienteoffice.com.br

    quinta-feira, 3 de janeiro de 2013 23:30
    Moderador
  • Suponha que a coluna A seja o nome da empresa, B seja login e C a senha. Você pode ter vários logins de várias empresas dessa forma, concorda?

    Para saber se o login é válido para uma determinada empresa, considere o exemplo abaixo:

    Sub Exemplo()
        Const csEmpresa As String = "Benzasoft"
        Const csLogin As String = "Felipe"
        Const csSenha As String = "123"
        
        Dim bLogin As Boolean
        Dim lRow As Long
        
        With ThisWorkbook.Sheets("Senhas")
            'Laço até a última linha:
            For lRow = 2 To .Cells(.Rows.Count, "A").End(xlUp).Row
                If .Cells(lRow, "A") = csEmpresa Then
                    If .Cells(lRow, "B") = csLogin Then
                        If .Cells(lRow, "C") = csSenha Then
                            MsgBox "Senha correta!", vbInformation
                            bLogin = True
                        Else
                            MsgBox "Senha incorreta!", vbCritical
                        End If
                    End If
                End If
            Next lRow
        End With
    
        If bLogin = True Then
            'Código que executa se senha estiver correta
        Else
            Exit Sub
        End If
    End Sub


    Felipe Costa Gualberto - http://www.ambienteoffice.com.br


    Inicialmente, Benzadeus. Muito obrigado pela atenção.

    Desculpe por demorar a retornar, mas tive alguns problemas que inviabilizaram a continuidade do projeto. Estou voltando agora. Então, vou explicar melhor. Meu objetivo não é verificar se o login da empresa está correto. O que preciso é de uma tela de consulta, que precisa para tanto, ser alimentada. Exemplificarei agora.

    Tenho um cliente "X", esse cliente tem cadastro num sistema "Y", e para esse sistema preciso da chave "Z" e da senha "S". Apenas quero que o sistema me retorne esses valores previamente cadastrados para que eu os consulte. O problema é que esse cliente "X", possui vários sistemas "Y", sendo cada qual com sua respectiva chave "Z" e senha "S", entendeu? Queria saber como poderia montar minha planilha desse jeito, pois são vários clientes "X".

    Até o momento fiz assim, coloquei na coluna A, os nomes das empresas, pulando uma linha para cada uma, na coluna B, o nome de um sistema, na C, de outro e assim por diante. Sempre nas colunas de cada sistema queia adicionar a "chave "Z" e na célula abaixo, a senha "S", por isso pularia uma linha do nome da empresa... será que consegui ser claro o suficiente?

    Então, para colocar o nome das empresas, já tenho um checkbox com os nomes que possuo ja carregados e possuo outro checkbox com os nomes dos sistemas também já carregados. Agora tenho duas caixas de texto, uma para chave e outra para senha, que ao clicar num botão, gostaria que a informação fosse inserida no local correto.

    Ou seja, precisaria inicialmente, localizar em minha planilha, o nome da empresa "X", para que obtendo a linha em que ela se encontra, eu possa, ao selecionar na outra checkbox, o nome do sistema, obtendo agora a coluna, e por fim, receber os valores presentes nas duas células subsequentes, a da linha "Z" e a imediatamente abaixo "S".

    Será que isso tudo daria certo? Tem outra forma de fazer?

    segunda-feira, 7 de janeiro de 2013 19:48
  • Poderia disponibilizar sua pasta de trabalho como exemplo (com os formulários) numa pasta pública no SkyDrive e postar o link aqui para eu analisar?

    Felipe Costa Gualberto - http://www.ambienteoffice.com.br

    terça-feira, 8 de janeiro de 2013 15:47
    Moderador