Ir ao conteúdo

Posts recomendados

Postado

Olá,

Boa tarde.

 

Estou criando um sistema e um dos comandos que acrescentei foi o "Pesquisar"
Até agora ele realiza uma pesquisa de acordo com o código digitado e trás na tela, onde o registro pode ser alterado.

O que eu gostaria de fazer agora é: conseguir realizar essa pesquisa digitando qualquer um dos campos do formulário. Por exemplo: O número de expediente ou nome do responsável.

Porém, se existirem mais de um registro com o mesmo dado ele traria uma lista com os registros, onde poderia escolher aquele que eu desejo visualizar e alterar.

Alguém pode me ajudar?

Exemplo.xlsm

Postado

Eu gostaria que fosse possível utilizar qualquer coluna e que quando existirem mais de um registro com aquele nome, que eles fossem visualizados e pudessem ser selecionados.

Postado

@Ma como disse o colega CasaDoHardware, o ideal seria indicar qual o campo que voce deseja pesquisar. 

 

Bom mas como disse nao quer usar esta opcao, então eu fiz de uma forma que a rotina ira pesquisar o campo de acordo com o textbox que estiver preenchido.

Ex se o textbox "txtID" estiver vazio a macro pesquisará pelo "txtExpediente" e assim seguindo esta sequencia, o que estiver preenchido ira pesquisar. 

E para exibir mais de um registro eu inseri um Listbox e ao cliclar duas vezes sobre o registro a macro insere o registro em usas respectivas textbox.

Veja se lhe atende

Exemplo-Basole.xlsm

  • Curtir 1
Postado

Tenho só mais uma dúvida:

 

Me.cboStatus.Text = Me.ListBox1.List(ListBox1.ListIndex, 9)

 

Quando coloco essa linha do comando, ele dá o seguinte erro:

 

Como eu posso definir o "cboStatus"?

erro.PNG

Postado

No meu post, no seu exemplo no Listbox eu inseri 6 campos. De acordo com que voce postou, agora esta com 10 campos ->    "  Me.ListBox1.List(ListBox1.ListIndex, 9) " 

Pode ser que o erro esteja ai. 

Se puder postar seu exemplo com as alteracoes que ja fez, fica mais fácil de entender o que esta gerado esse error. 

Postado

Olá,

 

Então...o que eu fiz foi inserir o código em um outro form que eu tinha. O que eu percebi é: Se o registro ainda não possui informações nesse campo, quando eu realizo a busca e dou um duplo clique ele aparece esse erro.

Caso já tenha informações ele passa sem problemas.

Postado

@Ma Coloque uma condicao no evento Double-Clck, para se o listbox estiver vazio a rotina encerra: 

Isso vai evitar o error que voce citou 

Private Sub ListBox1_DblClick(ByVal Cancel As MSForms.ReturnBoolean)
If Me.ListBox1.ListCount = 0 Then Exit Sub ' condicao p se estiver vazio o listbox a rotina e encerrada
Me.txtID.Text = ListBox1.List(ListBox1.ListIndex, 0)
Me.txtDataRecebimento.Text = ListBox1.List(ListBox1.ListIndex, 1)
Me.txtExpediente.Text = ListBox1.List(ListBox1.ListIndex, 2)
Me.txtDataEntrega.Text = ListBox1.List(ListBox1.ListIndex, 3)
Me.txtResponsavel.Text = ListBox1.List(ListBox1.ListIndex, 4)
Me.cbostatus = Me.ListBox1.List(ListBox1.ListIndex, 5)

End Sub

 

Postado

Olá,

Bom dia.

 

Infelzimente não funcionou. Ainda está dando um erro no "cboStatus"
Quando no registro não tem nada escrito e dou um duplo clique na listbox ele não aceita.

Postado

@Ma pode ser "n" possibilidades, que esta causando este error.

Como disse anteriormente o ideal seria se você compartilhasse sua planilha ou um modelo, facilitaria a quem possa lhe ajudar.  

Postado

Boa noite,

 

Eu removi a propriedade "Text" do Comobobox "Me.cbostatus" no codigo, era isto que estava gerando o error.

Acrescentei tb. uma condicao para que se o listbox estiver vazio ao inserir o double-Click nao gere error: 

"If Me.ListBox1.ListCount = 0 Then Exit Sub"

Eu desabilitei a funcao "fMatch" pois esta funcao estava impedindo a pesquisa por outros campos que nao fosse o Me.txtID.

E tb. alterei na funcao Find de XlWhile para XlParts para ter a possibilidade tb. de pesquisar por parte do termo, e nao pelo nome exato. 

 

teste-Basole.xlsm

Postado

Galera,

Boa tarde.

 

Estou com outros dois problemas no meu código e já tentei de todas as formas e não dá certo.

Um deles é na hora de pesquisar um registro (Erro na aba Demandas Internas) e o outro no botão de excluir. (Aba Auditoria).

Segue exemplo.

 

Obrigada mais uma vez!

teste_vba.xlsm

O problema em excluir o registro acontece as vezes, no seguinte trecho do código:

Private Sub btnExcluir_Click()

     'Declarar a variável Resp para receber uma resposta
     Dim Resp As Integer
    
     'Fazer a busca do registro digitado pelo usuário
     With Worksheets("Auditoria").Range("A:A")
         Set c = .Find(txtID.Value, LookIn:=xlValues, LookAt:=xlWhole)
     End With
    If Not c Is Nothing Then
         Resp = MsgBox("Tem certeza que deseja excluir o " & _
         "Registro?", vbYesNo, "Confirmação")
         If Resp = vbYes Then
            c.Select
             Selection.EntireRow.Delete
             'Limpar as caixas de texto
            txtID = Empty
            txtDataRecebimento = Empty
            txtNomeEmpresa = Empty
            txtCNPJ = Empty
            txtDataSolicitada = Empty
            txtNCarta = Empty
            txtAuditores = Empty
            txtDataEnvio = Empty
            txtResponsavel = Empty
            cbostatus = Empty
            ListBox1.Clear
         End If
     End If
End Sub

Postado

Bom dia @Ma

Um dos erros que esta apresentando aqui pra mim quando pesquisa, esta aqui:   .List(y, 10) = ws1.Range("K" & i).Value

O motivo é que o Listbox suporta no maximo 10 campos(colunas). Talvez a solucao seria descartar algum campo da planilha que sera mostrado no listbox. Outra opção caso as maquinas que serão rodados esta planilha tenha instalados o "Listview". O Listview nao tem esta limitacao.

 

Segue em anexo com as alteracoes: 

A pesquisa e a exclusão agora nao estão apresentando erros.

 

teste_vba-Basole.xlsm

Postado

Olá, bom dia.
O meu continua dando um erro na exclusão dos registros.
Sempre na parte do código "c.select"

  • 2 anos depois...
Postado

Olá pessoal!

Tudo bem? 

 

Utilizei esta última planilha de exemplo, porque é realmente o que eu preciso.

No entanto, eu não sei se faz alguma diferença entre excel para mac e windows, mas aqui, no mac, se abro a planilha não há como acessar o formulário. E se crio um botão pra acessar o formulário, aparece o erro 1004 (tempo de execução). Estou usando essa planilha do Basole, logo acima ( a última que ele postou).

 

Desde já, agradeço muito, porque se rodar aqui é tudo o que eu preciso. :) 

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

LANÇAMENTO!

eletronica2025-popup.jpg


CLIQUE AQUI E BAIXE AGORA MESMO!