Forums Últimos mensajes - Powered by IBM
 
Tags Palabras claves

Perdon...

27/01/2007 - 11:28 por Javichu | Informe spam
**Perdonad, pero en el anterior post que he colgado me he explicado mu
mal, en éste hago la corrección pertinente. Perdonad por el lío.**


Hola amigos, estoy intentando crear dos ComboBox. En la primera teng
una matriz dónde toma los datos, fija, pero en el segundo, quiero qu
los datos que muestra (la matriz) varía, dependiendo del valor de un
celda. He intentado hacerlo mediante fórmulas =Si(), pero no d
resultado. Haber si podeis ayudarme... Ésto es lo que quiero hace
básicamente:

Ejemplo:

Si en ComboBox1, elijo el valor "1", que los datos que muestra e
ComboBox2 sean la matriz A.
Si en ComboBox1, elijo el valor "2", que los datos que meustre e
ComboBox2 sean la matriz B
Si en ComboBox1, elijo el valor "3", que el ComboBox2, se desactive.

Gracias por vuestra atención y por vuestro tiempo

Javich
Javichu's Profile: http://www.msusenet.com/member.php?useridB9
View this thread: http://www.msusenet.com/t-187482928
 

Leer las respuestas

#1 Ivan
28/01/2007 - 02:25 | Informe spam
hola Javichu

no acabo de entender tu explicación, sobre todo esta parte ->

"> los datos que muestra (la matriz) varía, dependiendo del valor de una
celda."

ni donde/como tienes/creas las matrices, pero lo que quizás puedas hacer es
usar la propiedad Listindex del combo a modo de índice (por llamarlo de
alguna manera), osea que si seleccionas el 1er elemento del combo1 el combo2
se cargue con el contenido de la 1ª matriz, si seleccionas el 2º se cargue
con la 2ª, etc

este ej, un poco cutre a lo mejor te da una idea. Solo ten en cuenta que
tanto el listindex como el ¿item? de la matriz van de -1 a el nro de
elementos -1, pero si tuvieras puesto Option Base en 1 (y si no me
equivoco), la cosa cambia y deberías cambiar ->

esto ->> .List = MatrizNro(ComboBox1.ListIndex)

por esto->> .List = MatrizNro(ComboBox1.ListIndex +1)

pues (de nuevo creo) el cambio de option base no afecta a las propiedades de
los controles ( y lo mismo estoy diciendo una burrada) pero si a la de las
matrices

Option Explicit
Dim MatrizNro As Variant
''***************
Private Sub ComboBox1_Change()
If ComboBox1.ListIndex = -1 Then Exit Sub
With ComboBox2
.Clear: .List = MatrizNro(ComboBox1.ListIndex)
End With
End Sub
''*****************
Private Sub UserForm_Activate()
Dim matriz1 As Variant, matriz2 As Variant, matriz3 As Variant, _
matriz4 As Variant, matriz5 As Variant
matriz1 = Array("Dato1.1", "Dato1.2", "Dato1.3", "Dato1.4", "Dato1.5")
matriz2 = Array("Dato2.1", "Dato2.2", "Dato2.3", "Dato2.4", "Dato2.5")
matriz3 = Array("Dato3.1", "Dato3.2", "Dato3.3", "Dato3.4", "Dato3.5")
matriz4 = Array("Dato4.1", "Dato4.2", "Dato4.3", "Dato4.4", "Dato4.5")
matriz5 = Array("Dato5.1", "Dato5.2", "Dato5.3", "Dato5.4", "Dato5.5")
MatrizNro = Array(matriz1, matriz2, matriz3, matriz4, matriz5)
ComboBox1.List = ActiveSheet.Range("a1:a5").Value
End Sub

espero te ayude en algo
un saludo y hasta pronto

Ivan

Preguntas similares