Notifications
Clear all

Combobox popular textbox

6 Posts
3 Usuários
0 Reactions
1,096 Visualizações
(@rui-maciel)
Posts: 0
New Member
Topic starter
 

Boa noite
tenho um problema no meu aplicativo, queria-o mais atualizado, e não consigo resolver um problema. Esse problema consiste no seguinte: tenho o userform5 que tem uma combobox1, esta combobox tem que ser preenchida pela primeira data das plan2, plan3 e plan4 e lançar os valores nas textobox1, textbox2 e textbox3 com a soma na textbox4. Por favor preciso de ajuda não consigo resolver, obrigado. Segue em anexo o aplicativo.
Abraça,
Rui

 
Postado : 26/09/2016 3:57 pm
(@mprudencio)
Posts: 0
New Member
 

Troque em cada linha do codigo do formulario o .text no final por .value, com isso vc talvez consiga dar continuidade do codigo.

 
Postado : 26/09/2016 5:50 pm
(@fernandofernandes)
Posts: 43750
Illustrious Member
 


Não sei se entendi corretamente a questão da ComboBox, porém, segue sugestão:

Private Sub UserForm_Initialize()

ComboBox1.AddItem Sheets("026810000015").Range("A4")
ComboBox1.AddItem Sheets("026810000049").Range("A4")
ComboBox1.AddItem Sheets("026810002326").Range("A4")

TextBox1 = ThisWorkbook.Worksheets("Lista").Range("B2").Value
TextBox2 = ThisWorkbook.Worksheets("Lista").Range("B3").Value
TextBox3 = ThisWorkbook.Worksheets("Lista").Range("B4").Value
TextBox4 = CDbl(TextBox1) + CDbl(TextBox2.Text) + CDbl(TextBox3.Text)

TextBox1 = Format(TextBox1, "#0.00")
TextBox2 = Format(TextBox2, "#0.00")
TextBox3 = Format(TextBox3, "#0.00")
TextBox4 = Format(TextBox4, "#0.00")

End Sub

 
Postado : 26/09/2016 5:51 pm
(@rui-maciel)
Posts: 0
New Member
Topic starter
 

Bom dia EF
Antes de mais obrigado pela resposta. No entanto, o que eu pretendia era na combobox1 inserir as datas de A4 da plan2(026810000015) e os valores da coluna C nas textbox do formulário5 das três plans. Obrigado.
Abraço,
Rui

 
Postado : 27/09/2016 2:31 am
(@rui-maciel)
Posts: 0
New Member
Topic starter
 

Agora queria é que conforme selecionasse a data na combobox aparecesse os valores para aquela data das três plan´s 026810000015, 026810000049 e 026810002326. Obrigado.

 
Postado : 27/09/2016 6:21 am
(@rui-maciel)
Posts: 0
New Member
Topic starter
 

Boa tarde
Consegui resolver com o seguinte código:

Public MatrizResultados As Variant
Public Total_Ocorrencias As Long

Private Sub btn_Procurar_Click()

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

    '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 CommandButton1_Click()
Unload frmBusca
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 = Plan2.Cells(Linha, 3).Value
    TextBox2.Text = Plan3.Cells(Linha, 3).Value
    TextBox3.Text = Plan4.Cells(Linha, 3).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 = Plan2.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 = Plan2.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 = Plan2.Cells(MatrizResultados(0), 3).Value
        TextBox2.Text = Plan3.Cells(MatrizResultados(0), 3).Value
        TextBox3.Text = Plan4.Cells(MatrizResultados(0), 3).Value
        TextBox4 = CDbl(TextBox1.Text) + CDbl(TextBox2.Text) + CDbl(TextBox3.Text)
        ComboBox1 = ""
        
    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 = ""
        MsgBox "Nenhum resultado encontrado para '" & TermoPesquisado & "'."
    
    End If
    ComboBox1 = ""
End Sub

Private Sub UserForm_Initialize()

    Dim r As Range
    For Each r In ThisWorkbook.Worksheets("Folha2").Range("A1:A2500").Rows
        Me.ComboBox1.AddItem Format(r.Cells(1, 1))
    Next r

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

Obrigado, abraço,

RM

 
Postado : 29/09/2016 6:25 am