none
Form de Pesquisa em PLanilha e textbox RRS feed

  • Pergunta

  • Caros Amigos podem me ajudar neste codigo para que o mesmo me retorne no textbox3 valor em hora, tentei o format mais não deu certo segue o codigo para analise;

     

    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)
           
                '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 = 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    '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 = ""
            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

    quinta-feira, 8 de abril de 2010 16:50

Respostas

  • Não entendi ao certo o que quer fazer, mas veja como o código pode ser mais simples:

     

    Dim i As Integer
    
    For i = 1 To 18
        Me.Controls("Textbox" & i).Text = Plan1.Cells(MatrizResultados(0), i).Value
    Next i
    

     

    Por acaso o conteúdo da célula 3 está no formato hora e você quer trazer assim para a caixa de texto? Se for, você pode usar a propriedade Text no lugar da propriedade Value:

    Plan1.Cells(MatrizResultados(0), 3).Text


    Luiz Cláudio Cosenza Vieira da Rocha - http://msmvps.com/blogs/officedev - IT Lab www.itlab.com.br
    sábado, 10 de abril de 2010 01:31
    Moderador

Todas as Respostas

  • Não entendi ao certo o que quer fazer, mas veja como o código pode ser mais simples:

     

    Dim i As Integer
    
    For i = 1 To 18
        Me.Controls("Textbox" & i).Text = Plan1.Cells(MatrizResultados(0), i).Value
    Next i
    

     

    Por acaso o conteúdo da célula 3 está no formato hora e você quer trazer assim para a caixa de texto? Se for, você pode usar a propriedade Text no lugar da propriedade Value:

    Plan1.Cells(MatrizResultados(0), 3).Text


    Luiz Cláudio Cosenza Vieira da Rocha - http://msmvps.com/blogs/officedev - IT Lab www.itlab.com.br
    sábado, 10 de abril de 2010 01:31
    Moderador
  • Claudio obrigado pela dica, está funcionado...  so mais uma duvida mais por curiosidade, se eu quiser que o textbox retorne a cor que esta na planilha como faço? EX; o textbox3  retorna valor em hora, esta celula esta com formatação condicional que preenche a mesma na cor verde se a hora for maior que 1 e vermelho se menor que 0 (hora negativa), o textbox me retorna esta cor? a formatação da Celula independente se esteja em formatação condicional ?
    terça-feira, 13 de abril de 2010 21:34