Tengo una tabla con 18 columnas, agrupo esa información en un listbox, todo bien, puedo manipularlo filtrarlo y seleccionar el registro deseado, el problema surge al momento de seleccionar con Data_OT_Click solo me deja captar hasta 9 registros y son 18, es aquí donde quede trabado..
Muy agradecido si me pudiesen facilitar las herramientas pistas para seguir adelante con mi proyecto,
Gracias de antemano,
Heberto Ramos
Enlace del archivo:
https://www.dropbox.com/s/vxygu1fedfj53cr/MODELO%20PARA%20PRESENTACION%20CLASE.xlsm?dl=0
Adjunto | Tamaño |
---|---|
modelo_para_presentacion_clase.xlsm | 1.21 MB |
Las 10 columnas es una limitación del control de lista cuando se añaden elementos con AddItem
Es una limitación de Excel.
Tu problema está al cargar la lista con datos en el procedimiento OT_CHANGE, no al consultar los datos existentes
Para conseguir cargar en una lista más columnas se puede hacer mediante una matriz, un array, en el que almacenes tus datos provisionalmente. luego , con el método .List o .Column puedes asignar toda la matriz de golpe a la lista y respetará las dimensiones. (lo de List o Column depende de si quieres transponer filas o columnas)
Así que en tu caso, podría ser algo así:
cuando encuentro un valor que pasar a la lista, lo copio en mi matriz auxiliar
n = n + 1
'redimensiono la matriz con un elemento más
ReDim Preserve mimatrizauxiliar(1 To numerocolumnas, 1 To n)
'hago un bucle para leer las 18 columnas (numerodecolumnas es una constante donde guardo este número)
For contador = 1 To numerocolumnas
mimatrizauxiliar(contador, n) = .Cells(i, contador).Value
Next
Por último, asigno toda la matriz a la lista con una única instrucción.
DATA_OT.Column = mimatrizauxiliar
Adjunto ejemplo modificado
------
Ya sé Excel, pero necesito más.