La Web del Programador: Comunidad de Programadores
https://www.lawebdelprogramador.com/foros/Visual-Basic/972609-Error-en-Propiedad-List-del-control-Combobox.html

Error en Propiedad List del control Combobox

Error en Propiedad List del control Combobox

Publicado por Rubén (2 intervenciones) el 08/05/2008 05:26:59
Buenas programadores:
Tengo un problema, en el cual estoy hace algunos días estancado. Voy a copiar el código y con literales explicar lo que intento hacer.
' el nombre del combo es Players
' Código:
' primero pregunto si no ha seleccionado ningún valor de la lista
If Players.ListIndex = -1 Then
' luego agrego un elemento, en este caso el texto ingresado en el cuadro de texto del combo
' esto funciona
Players.AddItem Trim(CargaJugada.Players.Text)

End If
' Cargo en unas celdas de una hoja en excel los valores que tienen otros controles llamados
' resultado1, resultado2, etc...)

For i = 1 To 10
' cargo los valores de mis controles en las celdas que quiero. Esto funciona
ActiveSheet.Cells(fila, i + 2) = Val(CargaJugada.Controls("resultado" & Trim(Str(i))))
' intento cargar a partir de la columna 1 los mismos valores en mi combo
' cuando mi índice i = 10, es decir en la columna 10 me da el error que despues voy a mencionar
Players.Column(i, 0) = Val(CargaJugada.Controls("resultado" & Trim(Str(i))))

Next

Bueno como mencioné el error me da en el código que dice
Players.Column(i, 0) = Val(CargaJugada.Controls("resultado" & Trim(Str(i))))
pero solo cuando mi índice i = 10

El error que me da dice lo siguiente:
Se ha producido el error '380' en tiempo de ejecución
No se puede configurar la propiedad Column. Valor de Propiedad no válido.

Bueno, he hecho una depuración paso por paso, y hasta que el índice i = 9 va cargando sin problemas mi combo con los valores que quiero en las columnas mencionadas,
pero después en la columna 11 sería o índice i = 10, ahí sale el error.
Por favor que alguien se apiade y me ayude, Gracias de todos modos.

RE:Error en Propiedad List del control Combobox

Publicado por Adrian (35 intervenciones) el 08/05/2008 15:26:30
Por lo que pude ver es VBA, y no VB, en tiemnpo de diseño en VBA (El VB de Excel) selecciona un listbox, una ves que aparecen los puntos de agarre, presiona F1, aparece la ayuda para ese control, clic en donde dice Propiedades, elige Column, luego mira ese ejemplo, esto lo que se ve.

Control ListBox. Ejemplo de las propiedades Column, ColumnCount y List

'

El siguiente ejemplo carga una matriz bidimensional con datos y, por turnos, carga dos controles ListBox utilizando las propiedades Column y List. Observe que la propiedad Column transpone los elementos de la matriz durante la carga.

Para utilizar este ejemplo, copie este código de ejemplo en la parte Declaraciones de un formulario. Asegúrese de que el formulario contiene dos controles ListBox llamados ListBox1 y ListBox2.

Dim MyArray(6,3)

Private Sub UserForm_Initialize()
Dim i As Single
'The 1st list box contains 3 data columns
ListBox1.ColumnCount = 3
'The 2nd box contains 6 data columns
ListBox2.ColumnCount = 6

'Load integer values into first column of MyArray
For i = 0 To 5
MyArray(i, 0) = i
Next i

'Load columns 2 and three of MyArray
MyArray(0, 1) = "Zero"
MyArray(1, 1) = "One"
MyArray(2, 1) = "Two"
MyArray(3, 1) = "Three"
MyArray(4, 1) = "Four"
MyArray(5, 1) = "Five"

MyArray(0, 2) = "Zero"
MyArray(1, 2) = "Un ou Une"
MyArray(2, 2) = "Deux"
MyArray(3, 2) = "Trois"
MyArray(4, 2) = "Quatre"
MyArray(5, 2) = "Cinq"

'Load data into ListBox1 and ListBox2
ListBox1.List() = MyArray
ListBox2.Column() = MyArray

End Sub

Propiedad List

Publicado por ruben (2 intervenciones) el 09/05/2008 04:55:40
Gracias Adrián por contestar mi post. Efectivamente es VBA y trabajo en Excel.
Solucioné de la siguiente forma:
' Cree una matriz dinámica

Dim Players_Jugadas() As Variant

' luego la redimensioné
' siendo k una variable que indica la cantidad de celdas que están cargadas (recorriendo '
' con un for las celdas e incrementando esta variable
' mi matriz tiene tantas filas como celdas cargadas existen, y once columnas que son valores
ReDim Players_Jugadas(k, 11)

' luego con la propiedad list() del combobox asigné la matriz creada

Players.List() = Players_Jugadas

' y listo ahora puedo utilizar y recorrer todas las columnas que están en mi combo
' de la siguiente manera

If Players.ListIndex = -1 Then
Players.AddItem Trim(Players.Text)
End If

For i = 1 To 10
ActiveSheet.Cells(fila, i + 2) = Val(CargaJugada.Controls("resultado" & Trim(Str(i))))

' Cargar todas las columnas de valores
Players.Column(i, Players.ListIndex) = Val(CargaJugada.Controls("resultado" & Trim(Str(i))))
Next

Supongo que no se puede tener más de 10 columnas en un combo (porque yo tenía por cada ítem (fila) del combo 11 valores (desde el 0 hasta el 10 inclusive), al utilizar la matriz asignandola al combo con la propiedad list() (sin parámetros) se puede colocar más columnas.
En realidad en la ayuda no dice que no se puedan utilizar más de 10 columnas.
De todos modos, ya solucioné con el código anterior.
Un abrazo y gracias por ayudarme Adrián, cualquier cosa estamos a disposición.