Notifications
Clear all

Combobox Additem

3 Posts
2 Usuários
0 Reactions
700 Visualizações
Lorenzon
(@lorenzon)
Posts: 355
Reputable Member
Topic starter
 

Prezados,

No meu projeto de Controle de Despesas Pessoais, eu utilizo um combobox com additem para selecionar o Centro de Custo da programação, exemplo:

Combobox1.additem "RENDA"
Combobox1.additem "EDUCAÇÃO"
Combobox1.additem "TRANSPORTE"
Combobox1.additem "VESTIMENTA"

Para que nenhuma programação tenha algum centro de custo errado, eu impedi que o usuário o digite dentro do combobox o centro de custo desejado, ou seja, o usuário deve, obrigatoriamente, selecionar um valor. Isso se faz necessário, pois caso alguma programação, por exemplo, tenha um centro de custo digitado como TRANSPORTES, ao invés de TRANSPORTE, ocasionaria em erros nos relatórios/gráficos que o próprio projeto gera. Para isto, utilizo o abaixo:

Private Sub ComboBox1_KeyPress(ByVal KeyAscii As MSForms.ReturnInteger)
KeyAscii = 0
End Sub

Mas, para facilitar o cadastro, eu quero que o usuário possa digitar o centro de custo no combobox, mas se o mesmo for inexistente, eu quero que o usuário seja informado por uma msgbox, mas ou menos assim:

Private Sub ComboBox1_Exit(ByVal Cancel As MSForms.ReturnBoolean)

if combobox1.text <> combobox1.additem then

msgbox "Prezado, este centro de custo é inexistente. Por favor, verifique-o e tente novamente", vbcritical, "Atenção!"

combobox1.text = ""

combobox1.backcolor = &H80000018

exit sub

end if

Como fazer isto?

 
Postado : 29/05/2014 12:05 pm
Fernando Fernandes
(@fernandofernandes)
Posts: 43750
Illustrious Member
 

Pelo que entendi, você não quer mais deixar o ComboBox bloqueado para Digitação e colocar uma verificação se o que foi digitado pertence a um dos Centros de Custo, se for isto, pode estar utilizando o Select Case :

Private Sub ComboBox1_Exit(ByVal Cancel As MSForms.ReturnBoolean)
    Dim sSelecao

    sSelecao = ComboBox1.Value

    Select Case sSelecao
        
        Case "RENDA"
        Case "EDUCAÇÃO"
        Case "TRANSPORTE"
        Case "VESTIMENTA"
    
        Case Else    ' Outros valores.
            MsgBox "Prezado, este centro de custo é inexistente. Por favor, verifique-o e tente novamente", vbCritical, "Atenção!"

        ComboBox1.Text = ""
    
        ComboBox1.BackColor = &H80000018
    
        Exit Sub

    End Select

End Sub

Pelo menos foi isto que entendi.

[]s

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

 
Postado : 29/05/2014 4:45 pm
Lorenzon
(@lorenzon)
Posts: 355
Reputable Member
Topic starter
 

Perfeito!

 
Postado : 30/05/2014 9:10 am