Como limpiar los valores de un ComboBox3 sin salir del formulario, cuyos valores están restringidos a los valores elegidos en lo
Tengo tres ComboBox de los cuales quiero que si al elegir determinados valores en los Combo1 y Combo2, sólo se puedan elegir determinados valores del Combo. Pero resulta que sin salir del formulario, si vuelvo a registrar los datos de los combos 1 y 2 se me queda los valores anteriores, es decir que el Combo3 no se limpia, dando la opción de elegir un valor que no está previsto que el usuario pueda elegir.
ComboBox1 valores= 1 a 5
ComboBox2 valores= 50, 250, 500, 750, 1000
ComboBox3 valores= 1 a 5
Lo he intentado poniendo ComboBox3 = "", tanto en el change o al hacer click en los otros dos combos, pero no me limpia.
El código que he utilizado es el siguiente:
Private Sub UserForm_Initialize() With ComboBox1 . AddItem "1" . AddItem "2" . AddItem "3" . AddItem "4" . AddItem "5" End With With ComboBox2 . AddItem "50" . AddItem "250" . AddItem "500" . AddItem "750" . AddItem "1000" End With End Sub Private Sub ComboBox1_change() ComboBox2 = "" ComboBox3 = "" End Sub Private Sub ComboBox2_Change() ComboBox3 = "" resultado = ComboBox1 & "-" & ComboBox2 If resultado = "1-50" Then With ComboBox3 .AddItem "1" End With ElseIf resultado = "2-50" Then With ComboBox3 .AddItem "1" End With ElseIf resultado = "3-50" Then With ComboBox3 .AddItem "1" End With ElseIf resultado = "4-50" Then With ComboBox3 .AddItem "1" .AddItem "2" End With ElseIf resultado = "5-50" Then With ComboBox3 .AddItem "1" .AddItem "2" End With ElseIf resultado = "1-250" Then With ComboBox3 .AddItem "2" End With ElseIf resultado = "2-250" Then With ComboBox3 .AddItem "2" End With ElseIf resultado = "3-250" Then With ComboBox3 .AddItem "2" End With ElseIf resultado = "4-250" Then With ComboBox3 .AddItem "2" .AddItem "3" End With ElseIf resultado = "5-250" Then With ComboBox3 .AddItem "2" .AddItem "3" End With ElseIf resultado = "1-500" Then With ComboBox3 .AddItem "3" End With ElseIf resultado = "2-500" Then With ComboBox3 .AddItem "3" End With ElseIf resultado = "3-500" Then With ComboBox3 .AddItem "3" End With ElseIf resultado = "4-500" Then With ComboBox3 .AddItem "3" .AddItem "4" End With ElseIf resultado = "5-500" Then With ComboBox3 .AddItem "3" .AddItem "4" End With ElseIf resultado = "1-750" Then With ComboBox3 .AddItem "4" End With ElseIf resultado = "2-750" Then With ComboBox3 .AddItem "4" End With ElseIf resultado = "3-750" Then With ComboBox3 .AddItem "4" End With ElseIf resultado = "4-750" Then With ComboBox3 .AddItem "4" .AddItem "5" End With ElseIf resultado = "5-750" Then With ComboBox3 .AddItem "4" .AddItem "5" End With ElseIf resultado = "1-1000" Then With ComboBox3 .AddItem "5" End With ElseIf resultado = "2-1000" Then With ComboBox3 .AddItem "5" End With ElseIf resultado = "3-1000" Then With ComboBox3 .AddItem "5" End With ElseIf resultado = "4-1000" Then With ComboBox3 .AddItem "5" End With ElseIf resultado = "5-1000" Then With ComboBox3 .AddItem "5" End With End If End Sub
1 Respuesta
Respuesta de Dante Amor
2