Dato contenido en un ComboBox

18/02/2008 - 02:02 por ElProfe | Informe spam
Amigos del grupo:

Estoy usando un ComboBox que denomino "CtaCon" y que tiene las
siguientes características:

1) El "ListFillRange" hacer referencia a un rango (CtaCtas) que
contiene una pequeña lista de 20 datos, distribuidos en tres columnas
(articulo, color y precio)

2) El "BoundColumn" está definido con el valor "2" Es decir que con
base en la primera columna (articulo), me mostrará los datos
contenidos en la segunda (color)

3) No tengo definido "LinkedCell" porque a cambio utilizo un código
sustituto (sugerido hace algún tiempo por Héctor Miguel y mas
eficiente para mi caso) en "ThisWorkbook", que es el siguiente:
Private Sub CtaCon_Change()
[_SelCta] = CtaCon.Value
End Sub

Con base en lo anterior debo producir un documento en el cual se deben
concatenar, en un rango, el nombre del articulo con su color
respectivo. El color si está en una celda, pero no se con que código
VBA puedo tomar el nombre del articulo que queda visualizandose en el
ComboBox.

Gracias anticipadas por su atención.

Cordialmente,

Manuel (hiniciado)
 

Leer las respuestas

#1 Héctor Miguel
18/02/2008 - 04:30 | Informe spam
hola, manuel !

ya te comenta Ivan acerca de utilizar directamente las propiedades .Text y .Value del combo
(lo siguiente es solo como informacion complementaria)...

puedes rescatar los elementos correspondientes a la seleccion en el combo de otras dos maneras:
a) usando la propiedad .ListIndex y buscando en las columnas del combo (desde 0 hasta n_columnas MENOS una)
b) usando la propiedad .ListIndex MAS uno y la propiedad .Cells(fia,columna) del rango donde se toman los datos

Private Sub CtaCon_Change()
Dim Fila As Integer
With CtaCon
If .ListIndex < 0 Then Exit Sub
MsgBox "Lectura del combo:" & vbCr & _
"Valor del combo: " & .Value & vbCr & _
"Texto del combo: " & .Text
MsgBox "Elementos del combo:" & vbCr & _
"Columna 1: " & .List(.ListIndex, 0) & vbCr & _
"Columna 2: " & .List(.ListIndex, 1) & vbCr & _
"Columna 3: " & .List(.ListIndex, 2)
Fila = .ListIndex + 1
End With
With [CtaCtas]
MsgBox "Desde el Rango de datos:" & vbCr & _
"Columna 1: " & .Cells(Fila, 1) & vbCr & _
"Columna 2: " & .Cells(Fila, 2) & vbCr & _
"Columna 3: " & .Cells(Fila, 3)
End With
End Sub

si cualquier duda (o informacion adicional)... comentas ?
saludos,
hector.

__ la consulta original __
Estoy usando un ComboBox que denomino "CtaCon" y que tiene las siguientes características:
1) El "ListFillRange" hacer referencia a un rango (CtaCtas) que contiene una pequena lista de 20 datos
distribuidos en tres columnas (articulo, color y precio)
2) El "BoundColumn" esta definido con el valor "2" Es decir que con base en la primera columna (articulo)
me mostrara los datos contenidos en la segunda (color)
3) No tengo definido "LinkedCell" porque a cambio utilizo un codigo sustituto... que es el siguiente:
Private Sub CtaCon_Change()
[_SelCta] = CtaCon.Value
End Sub
Con base en lo anterior debo producir un documento en el cual se deben concatenar, en un rango
el nombre del articulo con su color respectivo.
El color si esta en una celda, pero no se con que codigo... tomar el nombre del articulo que queda visualizandose en el ComboBox.

Preguntas similares