Página 1 de 1

iteração entre combobox

Enviado: 08 Jun 2017 às 10:17
por garciagarcia
Bom dia a todos.. tenho um problema e se alguem pode ajudar..agradeço!!!
tenho uma combobox com valores numericos e outra com palavras e tenho uma texbox que executara uma formula conforme as seleções da combo box....então
tudo parece funcionar...se eu seliciono o valor 20 na combox1 e uma palavra no combobox2 , texbox executa a ação....porém se eu novamente selecionar um valor na combobox1 e não mexe na combobox2 a texbox não altera....só altera se eu mexer na combobox2..


Private Sub Comboconcreto_Change()

TextBoxFCJ.Text = Comboconcreto.Value * 0.7

End Sub


Private Sub Comboagregado_Change()

If Comboconcreto.Value <> "" Then
Dim i As String
Dim j, µ As Double


i = Comboagregado.Text
j = Comboconcreto.Value

If i = "Basalto e diabásio" Then
TextBoxDeforincial = Round(1.2 * 5600 * Sqr(j), 2)
µ = (0.8 + (0.2 * (j) / 80))
TextBoxDeforsecante = Round(TextBoxDeforincial * µ, 2)

ElseIf i = "Granito e gnaisse" Then
' j = Comboconcreto.Value
TextBoxDeforincial = Round(1 * 5600 * Sqr(j), 2)
µ = (0.8 + (0.2 * (j) / 80))
TextBoxDeforsecante = Round(TextBoxDeforincial * µ, 2)

ElseIf i = "Calcario" Then
' j = Comboconcreto.Value
TextBoxDeforincial = Round(0.9 * 5600 * Sqr(j), 2)
µ = (0.8 + (0.2 * (j) / 80))
TextBoxDeforsecante = Round(TextBoxDeforincial * µ, 2)
'
ElseIf i = "Arenito" Then
' j = Comboconcreto.Value
TextBoxDeforincial = Round(0.7 * 5600 * Sqr(j), 2)
µ = (0.8 + (0.2 * (j) / 80))
TextBoxDeforsecante = Round(TextBoxDeforincial * µ, 2)

End If


End If


End Sub

Re: iteração entre combobox

Enviado: 08 Jun 2017 às 16:29
por alexandrevba
Boa tarde!!

Poderia postar seu arquivo modelo?

Att

Re: iteração entre combobox

Enviado: 08 Jun 2017 às 19:18
por garciagarcia
Segue ai Alexandre...valeu!!!

Re: iteração entre combobox

Enviado: 09 Jun 2017 às 08:34
por alexandrevba
Bom dia!!

Se eu entendi bem, você precisa recalcular suas textbox's independente do combobox.

Ou seja...dentro do
Código: Selecionar todos
Comboconcreto_Change()
use o mesmo calculo do
Código: Selecionar todos
Comboagregado_Change()
Código: Selecionar todos
Private Sub Comboconcreto_Change()
'Application.Volatile
'dim coloc As Double

TextBoxFCJ.Text = Comboconcreto.Value * 0.7
'Me.Comboagregado.MatchRequired

' coloc = Comboconcreto.List(Comboconcreto.ListIndex, 0)
' TextBoxFCJ.Text = coloc * 0.7

'%%%%%%% AleVBA %%%%%%%%%
Application.Volatile
If Comboconcreto.Value <> "" Then
Dim i  As String
Dim j, µ As Double

'Call Comboconcreto(Me.Comboagregado.List(Me.Comboagregado.ListIndex))

i = Comboagregado.Text
j = Comboconcreto.Value
   
 If i = "Basalto e diabásio" Then
        TextBoxDeforincial = Round(1.2 * 5600 * Sqr(j), 2)
        µ = (0.8 + (0.2 * (j) / 80))
        TextBoxDeforsecante = Round(TextBoxDeforincial * µ, 2)
 
 ElseIf i = "Granito e gnaisse" Then
 '       j = Comboconcreto.Value
         TextBoxDeforincial = Round(1 * 5600 * Sqr(j), 2)
         µ = (0.8 + (0.2 * (j) / 80))
         TextBoxDeforsecante = Round(TextBoxDeforincial * µ, 2)
        
 ElseIf i = "Calcario" Then
 '       j = Comboconcreto.Value
         TextBoxDeforincial = Round(0.9 * 5600 * Sqr(j), 2)
         µ = (0.8 + (0.2 * (j) / 80))
         TextBoxDeforsecante = Round(TextBoxDeforincial * µ, 2)
     '
 ElseIf i = "Arenito" Then
 '       j = Comboconcreto.Value
         TextBoxDeforincial = Round(0.7 * 5600 * Sqr(j), 2)
         µ = (0.8 + (0.2 * (j) / 80))
         TextBoxDeforsecante = Round(TextBoxDeforincial * µ, 2)
        
 End If
 

End If
    If TextBoxRelação.Value = "" Then
        Exit Sub
    Else
        TextBoxRelação = Round((TextBoxEp.Value / TextBoxDeforsecante.Value), 2)
    End If
End Sub


Att