Pesquisa por Form e...
 
Notifications
Clear all

Pesquisa por Form em retornar Textbox com hora

22 Posts
2 Usuários
0 Reactions
8,435 Visualizações
Fernando Fernandes
(@fernandofernandes)
Posts: 43750
Illustrious Member
Topic starter
 

Segue o codigo em que estou utilizando mais não consiguo que me retorne o formato hora no textbox3 como na planilha , alguem pode me ajudar neste codigo ?

Public MatrizResultados As Variant
Public Total_Ocorrencias As Long

Private Sub btn_Procurar_Click()
If Me.txt_Procurar.Text = "" Then
MsgBox "Digite um valor para a pesquisa"
Else
Call ProcuraPersonalizada(Me.txt_Procurar.Text)
End If
End Sub

Private Sub SpinButton1_Change()
Dim Linha As Long
Dim TotalOcorrencias As Long

TotalOcorrencias = SpinButton1.Max + 1
Linha = MatrizResultados(SpinButton1.Value)

Label_Registros_Contador.Caption = SpinButton1.Value + 1 & " de " & TotalOcorrencias
TextBox1.Text = Plan1.Cells(Linha, 1).Value
TextBox2.Text = Plan1.Cells(Linha, 2).Value
TextBox3.Text = Plan1.Cells(Linha, 3).Value
TextBox4.Text = Plan1.Cells(Linha, 4).Value
TextBox5.Text = Plan1.Cells(Linha, 5).Value
TextBox6.Text = Plan1.Cells(Linha, 6).Value
TextBox7.Text = Plan1.Cells(Linha, 7).Value
TextBox8.Text = Plan1.Cells(Linha, 8).Value
TextBox9.Text = Plan1.Cells(Linha, 9).Value
TextBox10.Text = Plan1.Cells(Linha, 10).Value
TextBox11.Text = Plan1.Cells(Linha, 11).Value
TextBox12.Text = Plan1.Cells(Linha, 12).Value
TextBox13.Text = Plan1.Cells(Linha, 13).Value
TextBox14.Text = Plan1.Cells(Linha, 14).Value
TextBox15.Text = Plan1.Cells(Linha, 15).Value
TextBox16.Text = Plan1.Cells(Linha, 16).Value
TextBox17.Text = Plan1.Cells(Linha, 17).Value
TextBox18.Text = Plan1.Cells(Linha, 18).Value

End Sub

Private Sub ProcuraPersonalizada(ByVal TermoPesquisado As String)
Dim Busca As Range
Dim Primeira_Ocorrencia As String
Dim Resultados As String

'Executa a busca
Set Busca = Plan1.Cells.Find(What:=TermoPesquisado, After:=Range("A1"), LookIn:=xlFormulas, _
LookAt:=xlPart, SearchOrder:=xlByRows, SearchDirection:=xlNext, _
MatchCase:=False, SearchFormat:=False)

'Caso tenha encontrado alguma ocorrência...
If Not Busca Is Nothing Then

Primeira_Ocorrencia = Busca.Address
Resultados = Busca.Row 'Lista o primeiro resultado na variavel

'Neste loop, pesquisa todas as próximas ocorrências para
'o termo pesquisado
Do
Set Busca = Plan1.Cells.FindNext(After:=Busca)

If Not Busca.Address Like Primeira_Ocorrencia Then
Resultados = Resultados & ";" & Busca.Row
End If
Loop Until Busca.Address Like Primeira_Ocorrencia

MatrizResultados = Split(Resultados, ";")

SpinButton1.Max = UBound(MatrizResultados) 'Valor maximo do seletor de registros

SpinButton1.Enabled = True

Label_Registros_Contador.Caption = "1 de " & UBound(MatrizResultados) + 1

TextBox1.Text = Plan1.Cells(MatrizResultados(0), 1).Value
TextBox2.Text = Plan1.Cells(MatrizResultados(0), 2).Value
TextBox3.Text = Plan1.Cells(MatrizResultados(0), 3).Value
TextBox4.Text = Plan1.Cells(MatrizResultados(0), 4).Value
TextBox5.Text = Plan1.Cells(MatrizResultados(0), 5).Value
TextBox6.Text = Plan1.Cells(MatrizResultados(0), 6).Value
TextBox7.Text = Plan1.Cells(MatrizResultados(0), 7).Value
TextBox8.Text = Plan1.Cells(MatrizResultados(0), 8).Value
TextBox9.Text = Plan1.Cells(MatrizResultados(0), 9).Value
TextBox10.Text = Plan1.Cells(MatrizResultados(0), 10).Value
TextBox11.Text = Plan1.Cells(MatrizResultados(0), 11).Value
TextBox12.Text = Plan1.Cells(MatrizResultados(0), 12).Value
TextBox13.Text = Plan1.Cells(MatrizResultados(0), 13).Value
TextBox14.Text = Plan1.Cells(MatrizResultados(0), 14).Value
TextBox15.Text = Plan1.Cells(MatrizResultados(0), 15).Value
TextBox16.Text = Plan1.Cells(MatrizResultados(0), 16).Value
TextBox17.Text = Plan1.Cells(MatrizResultados(0), 17).Value
TextBox18.Text = Plan1.Cells(MatrizResultados(0), 18).Value

Else

SpinButton1.Enabled = False
Label_Registros_Contador.Caption = ""

TextBox1.Text = ""
TextBox2.Text = ""
TextBox3.Text = ""
TextBox4.Text = ""
TextBox5.Text = ""
TextBox6.Text = ""
TextBox7.Text = ""
TextBox8.Text = ""
TextBox9.Text = ""
TextBox10.Text = ""
TextBox11.Text = ""
TextBox12.Text = ""
TextBox13.Text = ""
TextBox14.Text = ""
TextBox15.Text = ""
TextBox16.Text = ""
TextBox17.Text = ""
TextBox18.Text = ""

MsgBox "Nenhum resultado para '" & TermoPesquisado & "' foi encontrado."

End If

End Sub

Private Sub UserForm_Initialize()

SpinButton1.Enabled = False
Label_Registros_Contador.Caption = ""

End Sub

Existem mil maneiras de preparar Neston. Invente a sua!
http://www.youtube.com/ExpressoExcel

 
Postado : 06/04/2010 4:47 pm
Fernando Fernandes
(@fernandofernandes)
Posts: 43750
Illustrious Member
Topic starter
 

Olá a todos do Forum quero agradecer pela grande ajuda com relação a VBA, pois bem tenho uma duvida na rotina abaixo;

como faço para que a pesquisa faça a busca somente na coluna A da planilha ?

Public MatrizResultados As Variant
Public Total_Ocorrencias As Long


Private Sub btn_Procurar_Click()
    If Me.txt_Procurar.Value = "" Then
        MsgBox "Digite um valor para a pesquisa"
    Else
        Call ProcuraPersonalizada(Me.txt_Procurar.Value)
           End If
End Sub

Private Sub SpinButton1_Change()
Dim Linha As Long
Dim TotalOcorrencias As Long


    TotalOcorrencias = SpinButton1.Max + 1
    Linha = MatrizResultados(SpinButton1.Value)
    
    Label_Registros_Contador.Caption = SpinButton1.Value + 1 & " de " & TotalOcorrencias
    TextBox1.Text = Plan1.Cells(Linha, 1).Value
    TextBox2.Text = Plan1.Cells(Linha, 2).Value
    TextBox3.Text = Format(Plan1.Cells(Linha, 3).Value, "h:mm;@")
    TextBox4.Text = Plan1.Cells(Linha, 4).Value
    TextBox5.Text = Plan1.Cells(Linha, 5).Value
    TextBox6.Text = Plan1.Cells(Linha, 6).Value
    TextBox7.Text = Plan1.Cells(Linha, 7).Value
    TextBox8.Text = Plan1.Cells(Linha, 8).Value
    TextBox9.Text = Plan1.Cells(Linha, 9).Value
    TextBox10.Text = Plan1.Cells(Linha, 10).Text
    TextBox11.Text = Plan1.Cells(Linha, 11).Text
    TextBox12.Text = Plan1.Cells(Linha, 12).Text
    TextBox15.Text = Plan1.Cells(Linha, 15).Text
    TextBox16.Text = Plan1.Cells(Linha, 16).Value
    TextBox17.Text = Plan1.Cells(Linha, 17).Value
    TextBox18.Text = Plan1.Cells(Linha, 18).Value
    TextBox34.Text = Plan1.Cells(Linha, 34).Text
    TextBox36.Text = Plan1.Cells(Linha, 36).Text
    TextBox37.Text = Plan1.Cells(Linha, 37).Text
    TextBox38.Text = Plan1.Cells(Linha, 38).Text
    TextBox39.Text = Plan1.Cells(Linha, 39).Text
    TextBox40.Text = Plan1.Cells(Linha, 40).Text
    TextBox41.Text = Plan1.Cells(Linha, 41).Text


End Sub
Private Sub ProcuraPersonalizada(ByVal TermoPesquisado As String)
Dim Busca As Range
Dim Primeira_Ocorrencia As String
Dim Resultados As String

    'Executa a busca
    Set Busca = Plan1.Cells.Find(What:=TermoPesquisado, After:=Range("A1"), LookIn:=xlFormulas, _
        LookAt:=xlPart, SearchOrder:=xlByRows, SearchDirection:=xlNext, _
        MatchCase:=False, SearchFormat:=True)
    
    'Caso tenha encontrado alguma ocorrência...
    If Not Busca Is Nothing Then
    
        Primeira_Ocorrencia = Busca.Address
        Resultados = Busca.Row  'Lista o primeiro resultado na variavel
    
        'Neste loop, pesquisa todas as próximas ocorrências para
        'o termo pesquisado
        Do
            Set Busca = Plan1.Cells.FindNext(After:=Busca)
        
            'Condicional para não listar o primeiro resultado
            'pois já foi listado acima
            If Not Busca.Address Like Primeira_Ocorrencia Then
                Resultados = Resultados & ";" & Busca.Row
            End If
        Loop Until Busca.Address Like Primeira_Ocorrencia
    
    
        MatrizResultados = Split(Resultados, ";")
        
        'Atualiza dados iniciais no formulário
        SpinButton1.Max = UBound(MatrizResultados)  'Valor maximo do seletor de registros
        
        'habilita o seletor de registro
        SpinButton1.Enabled = True
        
        'indicador do seletor de registros
        Label_Registros_Contador.Caption = "1 de " & UBound(MatrizResultados) + 1
        
        
        'Box com o conteudo encontrado
        TextBox1.Text = Plan1.Cells(MatrizResultados(0), 1).Value
        TextBox2.Text = Plan1.Cells(MatrizResultados(0), 2).Value
        TextBox3.Text = Format(Plan1.Cells(MatrizResultados(0), 3).Value, "h:mm;@")
        TextBox4.Text = Plan1.Cells(MatrizResultados(0), 4).Value
        TextBox5.Text = Plan1.Cells(MatrizResultados(0), 5).Value
        TextBox6.Text = Plan1.Cells(MatrizResultados(0), 6).Value
        TextBox7.Text = Plan1.Cells(MatrizResultados(0), 7).Value
        TextBox8.Text = Plan1.Cells(MatrizResultados(0), 8).Value
        TextBox9.Text = Plan1.Cells(MatrizResultados(0), 9).Value
        TextBox10.Text = Plan1.Cells(MatrizResultados(0), 10).Text
        TextBox11.Text = Plan1.Cells(MatrizResultados(0), 11).Text
        TextBox12.Text = Plan1.Cells(MatrizResultados(0), 12).Text
        TextBox15.Text = Plan1.Cells(MatrizResultados(0), 15).Text
        TextBox16.Text = Plan1.Cells(MatrizResultados(0), 16).Value
        TextBox17.Text = Plan1.Cells(MatrizResultados(0), 17).Value
        TextBox18.Text = Plan1.Cells(MatrizResultados(0), 18).Text
        TextBox34.Text = Plan1.Cells(MatrizResultados(0), 34).Text
        TextBox36.Text = Plan1.Cells(MatrizResultados(0), 36).Text
        TextBox37.Text = Plan1.Cells(MatrizResultados(0), 37).Text
        TextBox38.Text = Plan1.Cells(MatrizResultados(0), 38).Text
        TextBox39.Text = Plan1.Cells(MatrizResultados(0), 39).Text
        TextBox40.Text = Plan1.Cells(MatrizResultados(0), 40).Text
        TextBox41.Text = Plan1.Cells(MatrizResultados(0), 41).Text
    
    Else    'Caso nada tenha sido encontrado, exibe mensagem informativa
    
        SpinButton1.Enabled = False     'desabilita o seletor de registros
        Label_Registros_Contador.Caption = ""   'zera os resultados encontrados
        'limpa os campos do formulário
        TextBox1.Text = ""
        TextBox2.Text = ""
        TextBox3.Text = ""
        TextBox4.Text = ""
        TextBox5.Text = ""
        TextBox6.Text = ""
        TextBox7.Text = ""
        TextBox8.Text = ""
        TextBox9.Text = ""
        TextBox10.Text = ""
        TextBox11.Text = ""
        TextBox12.Text = ""
        TextBox15.Text = ""
        TextBox16.Text = ""
        TextBox17.Text = ""
        TextBox18.Text = ""
        TextBox34.Text = ""
        TextBox36.Text = ""
        TextBox37.Text = ""
        TextBox38.Text = ""
        TextBox39.Text = ""
        TextBox40.Text = ""
        TextBox41.Text = ""
        MsgBox "Nenhuma Ocorrencia para '" & TermoPesquisado & "'encontrado."

    End If
    
End Sub
Private Sub txt_Procurar_Change()

End Sub

Private Sub UserForm_Initialize()

    SpinButton1.Enabled = False
    Label_Registros_Contador.Caption = ""
    
End Sub

Existem mil maneiras de preparar Neston. Invente a sua!
http://www.youtube.com/ExpressoExcel

 
Postado : 20/01/2011 3:59 pm
Valderei
(@valderei)
Posts: 29
Eminent Member
 

Mauro, veja se pode me ajudar.
Estou com o mesmo problema do colega anterior.
Tenho um formulario em VBA e um textbox onde insiro o valor em horas e salvo na planilha base, até ai tudo certo, porém quando faço uma pesquisa o valor me retorna como 04166666666667E-02.
O código que estou usando é o seguinte:

Private Sub txtduracaoretrabalho_Exit(ByVal Cancel As MSForms.ReturnBoolean)
Me.txtduracaoretrabalho.Value = Format(txtduracaoretrabalho.Value, "hh:mm")
End Sub

Vi em alguns tópicos algumas formas mas não consegui adaptar (sou meio leigo ainda).

Se puderes me ajudar te agradeço.

 
Postado : 29/01/2013 9:58 am
Fernando Fernandes
(@fernandofernandes)
Posts: 43750
Illustrious Member
Topic starter
 

Boa tarde!!

Valderei, não é legal usar as postagem de outras pessoas para expor sua dúvida, na próxima lembre se disso

Quanto a sua dúvida veja se te ajuda, lembre se de usar a pesquisa do fórum!
http://forum.clubedohardware.com.br/res ... ro/1072652

Att

Existem mil maneiras de preparar Neston. Invente a sua!
http://www.youtube.com/ExpressoExcel

 
Postado : 29/01/2013 10:10 am
Fernando Fernandes
(@fernandofernandes)
Posts: 43750
Illustrious Member
Topic starter
 

Concordo com o Alexande, pios inclusive sua duvida/erro creio que não se refere ao assunto deste post.

Mas vamos lá, creio que se refere a procura do frmcadastro. Essa rotina esta retornando os valores das celulas na linha onde o cursor estava parado anteriormente, e não da linha do registro procurado/encontrado.
nessa procura voce tem uma linha inibida ('c.activate), alterei para c.select, e nos teste que fiz, não houve problema de cadastro / exibição
Teste e retorne

Existem mil maneiras de preparar Neston. Invente a sua!
http://www.youtube.com/ExpressoExcel

 
Postado : 29/01/2013 12:04 pm
Valderei
(@valderei)
Posts: 29
Eminent Member
 

Boa noite senhores, peço desculpas por ter cometido este erro, quis usar o mesmo tópico para não abrir outro com uma dúvida semelhante, pois meu textbox estava com problema no retorno dos valores em horas, mas serve de aviso.
Alexandrevba infelizmente o link trata de outro assunto, algo sobre "erro de automação", mas mesmo assim obrigado por dispensar seu tempo em me ajudar.

Reinaldo muito obrigado pela ajuda, realmente se eu habilitar e alterar o comando quando solicito a visualização do conteúdo digitado a hora me é retornada de forma correta, mas achei que fica um tanto dificil de digitar no textbox, se reparar quando digito o primeiro número seja ele "zero" ou outro número ele automaticamente carrega "00:00", será que há uma forma de corrigir isso?

Sei que seria bem comodo apenas me passarem meu arquivo corrigido, mas se quiserem apenas me passarem dicas para que vá aprendendo fiquem a vontade. Não sei se mencionei mas tenho outro formulário que se encontra nas mesmas condições desse, com o problema das horas, então se corrigir este estarei corrigindo ambos.

Pessoal um muito obrigado a vocês e acho que já merecem um clique na "mãozinha" só por terem dispendido um tempo para verem meu problema/dúvida.

 
Postado : 29/01/2013 7:35 pm
Fernando Fernandes
(@fernandofernandes)
Posts: 43750
Illustrious Member
Topic starter
 

Veja se lhe atende.
Alterções:
Na rotina de pesquisa acrescentado linhas:
c.Select e txtduracaoretrabalho = Format(txtduracaoretrabalho, "hh:mm")
Eliminada a rotina : txtduracaoretrabalho_Change
Acrecentada a rotina :txtduracaoretrabalho_BeforeUpdate (adaptação codigo de http://www.tomasvasquez.com.br/blog/mic ... s-e-change)
Então é digitado o valor do tempo
10 (dez minutos) e ao sair do campo é "formatado" para 00:10
110(uma hora e 10 minutos) ao sair mostra 01:10

Existem mil maneiras de preparar Neston. Invente a sua!
http://www.youtube.com/ExpressoExcel

 
Postado : 30/01/2013 6:38 am
Valderei
(@valderei)
Posts: 29
Eminent Member
 

Boa tarde Reinaldo.
Quero lhe agradecer a ajuda que me deste, e não é a primeira vez.
Vejo que tenho um bom caminho a trilhar até chegar em um nível próximo do seu.

Suas alterações funcionaram corretamente.

Um muito obrigado a você.

 
Postado : 30/01/2013 9:28 am
Página 2 / 2