Explicar código de listbox por que se le resta 1

Me gustaría saber por que al ingresar datos en un listbox este se le resta 1 en este código le resto 1 pero al ingresar una columna que no es consecutiva ya no le resta muchas gracias esto es con la finalidad de entender el pensamiento de un programador..

Dim i As Long
For i = 1 To 6 'inicia en el textbox 1 hasta el textbox 6
With Frm_userpro.listcargaproductos
Select Case i
Case 1 To 5
Frm_modificapro.Controls("TextBox" & i).Value = .List(.ListIndex, i - 1)
Case 6
Frm_modificapro.Controls("TextBox" & i).Value = .List(.ListIndex, i)
End Select
End With
Next i

1 respuesta

Respuesta
1

Los registros en el listbox, por default, se empiezan a almacenar en el contador 0

Es decir, el registro 1 se almacena en el contador 0, el registro 2 se almacena en el contador 1, etc.

Lo mismo sucede con las columnas, la primer columna del listbox es la 0, la segunda columna es la 1, etc.

Los textbox en tu ejemplo van del 1 al 6

Entonces la primer columna del listbox (0) la quieres en el textbox1

cuando i = 1

textbox & i, entonces textbox1

Del listbox(índice seleccionado, i - 1), entonces listbox(idx, 0), necesitamos la columna 0.

Y así con los demás textbox.

Excepto el textbox6

cuando i = 6 

textbox & 6 = listbox(idx, 6) , aquí ya no se resta para que así se obtenga la columna 7.

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas