Ir ao conteúdo
  • Cadastre-se

Visual Basic Pesquisa personalizada para excel VBA


Posts recomendados

Estou fazendo um recibo pelo excel, e pretendo facilitar as coisas kk, como por exemplo fazer um programa dentro do próprio excel para ser mais eficiente, pois no meu local de trabalho é muito movimentado.

Queria um código que ao pesquisar o número do recibo gerasse as informações pedidas...

 

Grato!

VBA1.png

VBA12.png

222.png

Link para o comentário
Compartilhar em outros sites

@Basole Eu só preciso de um código que ao pressionar o botão pesquisar me dê as informações que eu quero. Em relação a textbox e essas coisas eu altero aqui... (:

 

@Edit

Achei esse código na internet e fiz, antes tinha dado certo depois fui abrir a planilha e deu erro... O que tem de errado?

Private Sub btnpesquisar_Click()
With Worksheets(2).Range("A:A")
Set c = .Find(txtcodigo.Value, LookIn:=xlValues, lookat:=xlPart)
If Not c Is Nothing Then
    c.Activate
    txtcodigo.Value = c.Value
    txtcliente.Value = c.Offset(0, 1).Value
    txtcpf.Value = c.Offset(0, 2).Value
    txtveiculo.Value = c.Offset(0, 3).Value
    txtplaca.Value = c.Offset(0, 4).Value
    txtvalor.Value = c.Offset(0, 5).Value
    txtemitente.Value = c.Offset(0, 6).Value
    txtdata.Value = c.Offset(0, 7).Value
Else
    MsgBox "Digite o número do recibo!", vbCritical, ""
End If
End With
End Sub

 

Link para o comentário
Compartilhar em outros sites

Ok, então vamos lá, se voce baixou o modelo que fiz do link que coloquei, tem os seguintes codigos: 

 

No seu botão [ Pesquisar ] => voce cola o codigo abaixo: 

 

    Dim i As Integer
    If Not Me.TextBox1.Text = Empty Then ' considerando q o TextBox seja o nº do recibo
        i = Excel.WorksheetFunction.Match(Val(Me.TextBox1.Value), Sheet("dados").Range("A1:A500"), 0)
            MoveRegistro i + 0, 0
    End If

E cola esta sub em qq lugar do formulario: 

Sub MoveRegistro(iLinha As Long, x As Integer)
    Dim varArray As Variant
    Dim v        As Variant
    Dim i        As Long
    Dim vCell    As Variant

    ' Define uma matriz e ativa a planilha
    varArray = Array("A", "B", "D", "E", "F", "G", "H")
    Set m_xlPlan = ThisWorkbook.Worksheets("Dados")
    m_xlPlan.Activate

    ' Lê na planilha os valores dos campos
    For Each v In varArray
        vCell = m_xlPlan.Range(v & iLinha).Value
        Select Case v
        Case "A"
            'txtCodigo = Selection
        Case "B"
            txtNomeCliente = vCell
        Case "D"
            txtEmpresa = vCell
        Case "E"
            txtEndereço = vCell
        Case "F"
            txtCEP = vCell
        Case "G"
            txtCidade = vCell
        Case "H"
            txtEstado = vCell
        Case Else
        End Select

        m_xlPlan.Range("A" & iLinha).Select
        
    Next v

End Sub

Altere os nomes das textbox(s) de acordo como os seus

* Acrescente a coluna "C" no codigo acima, pois não esta sendo referenciada.

 

Link para o comentário
Compartilhar em outros sites

 

10 minutos atrás, Basole disse:

Ok, então vamos lá, se voce baixou o modelo que fiz do link que coloquei, tem os seguintes codigos: 

 

No seu botão [ Pesquisar ] => voce cola o codigo abaixo: 

 


    Dim i As Integer
    If Not Me.TextBox1.Text = Empty Then ' considerando q o TextBox seja o nº do recibo
        i = Excel.WorksheetFunction.Match(Val(Me.TextBox1.Value), Sheet("dados").Range("A1:A500"), 0)
            MoveRegistro i + 0, 0
    End If

E cola esta sub em qq lugar do formulario: 


Sub MoveRegistro(iLinha As Long, x As Integer)
    Dim varArray As Variant
    Dim v        As Variant
    Dim i        As Long
    Dim vCell    As Variant

    ' Define uma matriz e ativa a planilha
    varArray = Array("A", "B", "D", "E", "F", "G", "H")
    Set m_xlPlan = ThisWorkbook.Worksheets("Dados")
    m_xlPlan.Activate

    ' Lê na planilha os valores dos campos
    For Each v In varArray
        vCell = m_xlPlan.Range(v & iLinha).Value
        Select Case v
        Case "A"
            'txtCodigo = Selection
        Case "B"
            txtNomeCliente = vCell
        Case "D"
            txtEmpresa = vCell
        Case "E"
            txtEndereço = vCell
        Case "F"
            txtCEP = vCell
        Case "G"
            txtCidade = vCell
        Case "H"
            txtEstado = vCell
        Case Else
        End Select

        m_xlPlan.Range("A" & iLinha).Select
        
    Next v

End Sub

Altere os nomes das textbox(s) de acordo como os seus

* Acrescente a coluna "C" no codigo acima, pois não esta sendo referenciada.

 

 

Sem título.png

Link para o comentário
Compartilhar em outros sites

É por isso que geralmente o pessoal que se propõe a ajudar incluindo eu, pede para enviar um modelo, para antes de postar um codigo de ajuda, testar, para detectar qualquer erros que possa apresentar.

 

Altere Sheet  => para Sheets e certifique-se que a nº 2 seja a que contem os dados 

 

Se tivesse enviado um modelo, acredito que ja tinha resolvido!

Link para o comentário
Compartilhar em outros sites

3 minutos atrás, Basole disse:

É por isso que geralmente o pessoal que se propõe a ajudar incluindo eu, pede para enviar um modelo, para antes de postar um codigo de ajuda, testar, para detectar qualquer erros que possa apresentar.

 

Altere Sheet  => para Sheets e certifique-se que a nº 2 seja a que contem os dados 

 

Deu mais ou menos certo, deu alguns bugs abaixo segue o arquivo exemplo.

 

RECIBO (version 1).rar

Link para o comentário
Compartilhar em outros sites

13 horas atrás, Basole disse:

Eu inclui uma alternativa, um combobox para selecionar um nº do recibo ao invés de digitar.

Segue com as alterações:

 

 

 

 

 

RECIBO_.zip

Rapaz, muito obrigado!

Agora sobre formatação como eu faço para personalizar a numeração do CPF, tipo 10054685601 para 100.546.856-01, o mesmo para valor.

Link para o comentário
Compartilhar em outros sites

Crie uma conta ou entre para comentar

Você precisa ser um usuário para fazer um comentário

Criar uma conta

Crie uma nova conta em nossa comunidade. É fácil!

Crie uma nova conta

Entrar

Já tem uma conta? Faça o login.

Entrar agora

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...

 

GRÁTIS: ebook Redes Wi-Fi – 2ª Edição

EBOOK GRÁTIS!

CLIQUE AQUI E BAIXE AGORA MESMO!