Ir ao conteúdo

Posts recomendados

Postado

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

Postado

Neste caso voce teria que enviar o arquivo ou um modelo bem próximo com alguns dados ficticios, para o pessoal inserir o codigo, e tambem fazer testes. 

Postado

@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

 

Postado

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.

 

Postado

 

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

Postado

É 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!

Postado
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

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

Postado

Substitua essas linhas abaixo no código do seu Form.:

 

Case "C"
     txtcpf = VBA.Format(vCell, "000"".""000"".""000-00") 'Cpf
Case "F"
     txtvalor = VBA.Format(vCell, "R$ #,##0.00") 'Valor monetário (se preferir delete o R$)

 

 

  • Obrigado 1
Postado
3 horas atrás, Basole disse:

Substitua essas linhas abaixo no código do seu Form.:

 


Case "C"
     txtcpf = VBA.Format(vCell, "000"".""000"".""000-00") 'Cpf
Case "F"
     txtvalor = VBA.Format(vCell, "R$ #,##0.00") 'Valor monetário (se preferir delete o R$)

 

 

 

Valeu!

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!