Ir ao conteúdo
  • Comunicados

    • Gabriel Torres

      Seja um moderador do Clube do Hardware!   12-02-2016

      Prezados membros do Clube do Hardware, Está aberto o processo de seleção de novos moderadores para diversos setores ou áreas do Clube do Hardware. Os requisitos são:   Pelo menos 500 posts e um ano de cadastro; Boa frequência de participação; Ser respeitoso, cordial e educado com os demais membros; Ter bom nível de português; Ter razoável conhecimento da área em que pretende atuar; Saber trabalhar em equipe (com os moderadores, coordenadores e administradores).   Os interessados deverão enviar uma mensagem privada para o usuário @Equipe Clube do Hardware com o título "Candidato a moderador". A mensagem deverá conter respostas às perguntas abaixo:   Qual o seu nome completo? Qual sua data de nascimento? Qual sua formação/profissão? Já atuou como moderador em algo outro fórum, se sim, qual? De forma sucinta, explique o porquê de querer ser moderador do fórum e conte-nos um pouco sobre você.   OBS: Não se trata de função remunerada. Todos que fazem parte do staff são voluntários.
    • DiF

      Poste seus códigos corretamente!   21-05-2016

      Prezados membros do Fórum do Clube do Hardware, O Fórum oferece um recurso chamado CODE, onde o ícone no painel do editor é  <>     O uso deste recurso é  imprescindível para uma melhor leitura, manter a organização, diferenciar de texto comum e principalmente evitar que os compiladores e IDEs acusem erro ao colar um código copiado daqui. Portanto convido-lhes para ler as instruções de como usar este recurso CODE neste tópico:  
Igor F.

Visual Basic Pesquisa personalizada para excel VBA

Recommended Posts

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

Compartilhar este post


Link para o post
Compartilhar em outros sites

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. 

Compartilhar este post


Link para o post
Compartilhar em outros sites
  • Autor do tópico
  • @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

     

    Editado por Igor F.

    Compartilhar este post


    Link para o post
    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.

     

    Compartilhar este post


    Link para o post
    Compartilhar em outros sites
  • Autor do tópico
  •  

    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

    Compartilhar este post


    Link para o post
    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!

    Editado por Basole

    Compartilhar este post


    Link para o post
    Compartilhar em outros sites
  • Autor do tópico
  • 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

    Editado por Igor F.

    Compartilhar este post


    Link para o post
    Compartilhar em outros sites

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

    Segue com as alterações:

     

     

     

     

     

    RECIBO_.zip

    • Obrigado 1

    Compartilhar este post


    Link para o post
    Compartilhar em outros sites
  • Autor do tópico
  • 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.

    Compartilhar este post


    Link para o post
    Compartilhar em outros sites

    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

    Compartilhar este post


    Link para o post
    Compartilhar em outros sites
  • Autor do tópico
  • 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!

    Compartilhar este post


    Link para o post
    Compartilhar em outros sites

    Crie uma conta ou entre para comentar

    Você precisar ser um membro para fazer um comentário






    Sobre o Clube do Hardware

    No ar desde 1996, o Clube do Hardware é uma das maiores, mais antigas e mais respeitadas publicações 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

    ×