none
Pesquisa em VBA Excel. RRS feed

  • Pergunta

  • E ai galera!

    Estou desenvolvendo um trabalho em VBA com cadastro de funcionários, onde os dados ficam armazenados na planilha do mesmo trabalho. Preciso de um outro formulário possibilite uma pesquisa através do CPF ou outro tipo de chave cadastrada, porém não estou encontrando os códigos necessários.

    Os códigos para salvar os dados dos formulários são esses:

      

    Sub Gravar()

    Dim Cracha

    Plan2.Rows("3:3").Select
        Selection.Insert Shift:=xlDown, CopyOrigin:=xlFormatFromLeftOrAbove
        Range("A3").Select
     Plan2.Range("a3").Value = lblCracha.Caption
     Plan2.Range("b3").Value = txtNome.Value
     Plan2.Range("c3").Value = txtCPF.Value
     Plan2.Range("d3").Value = txtEndereco.Value
     Plan2.Range("e3").Value = txtBairro.Value
     Plan2.Range("f3").Value = cmbCidade.Value
     Plan2.Range("g3").Value = txtNumero.Value
     Plan2.Range("h3").Value = txtTelefone.Value
     Plan2.Range("i3").Value = txtCelular.Value
     Plan2.Range("j3").Value = txtAdmissao.Value
     Plan2.Range("k3").Value = txtSalario.Value
     Plan2.Range("l3").Value = cmbFuncao.Value
     Plan2.Range("m3").Value = cmbUnidade.Value
     Plan2.Range("n3").Value = txtObservacao.Value

    End Sub

    Agora preciso de uma Sub que permita eu realizar uma pesquisa através do Crachá do funcionário, e me retorne os dados da linha cadastrastrada na planilha.

    Abraços.

    domingo, 23 de dezembro de 2012 13:36

Respostas

  • Segue abaixo um metódo de busca, onde é passado como parametro, o intervalo onde está localizado o dado a ser buscado, o valor a ser buscado e o tipo, se tipo 1 retorna a linha se tipo 2 retorna a coluna, se não localiza o valor buscado retorna 0.

    Com o exemplo abaixo é retornado a linha em que está o crachá passado como parametro.

    Sub retornaValor()

    linha = buscar(2,"a3:a1000",cstr(lblCracha.Caption),1)

    if linha<> 0 then

    txtNome.Value = cells(linha,"b")

    txtCPF.Value =  cells(linha,"c")

    else

    msgbox("Crachá não Localizado")

    end if

    end sub


    Function buscar(planilha as integer,intervalo As String, busca As String, tipo As Integer) As Integer
    buscar = 0
        For Each c In sheets(planilha).Range(intervalo)
            If c = busca Then
                If tipo = 1 Then
                    buscar = c.Row
                ElseIf tipo = 2 Then
                    buscar = c.Column
                End If
                Exit For
            End If
        Next
    End Function

    domingo, 23 de dezembro de 2012 20:56