Pasar datos de Excel a listbox

Ya estoy por terminar pero ahora necesito que casi todas las celdas desde b1:b249 se muestren fila por fila en el listbox y sólo las que tengan información, si están vacías se debe saltear esa celda.

Intente hacerlo con listbox1. Additem cells(i, 2) usando i desde 1 hasta 249 pero tengo dos problemas:

*Por ejemplo la celda b5 dice sólo 10 pero en formato especial he puesto que salga como "10 líneas" entonces al momento de pasarlo al listbox sólo sale 10 y necesito que diga líneas, no quiero usar & porque en otras celdas hay otros formatos se haría muy largo y pesado, necesito que al copiar al listbox se copie tal cual el valor de la celda con todo y el formato de número.

*Aun usando for no he podido saltear las celdas vacías, puse el siguiente código pero me falta algo:

For i = 1 To i = 249
If Cells(i, 2) = "" Or Cells(i, 2) = 0 Then
i = i + 1
Else
i = i
End If

ListBox1.AddItem Cells(i, 2)
i = i + 1
Next

1 Respuesta

Respuesta
3

Puedes enviarme tu archivo con el formulario, para revisar lo de las celdas vacías y también lo del formato.

Sorry pero no puedo enviarte el archivo, es simple tienes por ejemplo una tabla de 5 columnas 10 filas y algunas celdas tienen formato de moneda (S/.) otras son solo letras necesito que esa tabla de 5x10 se pase al listbox con el mismo formato please

No te preocupes por el archivo, ¿entonces vas a cargar las 5 columnas? Y todos las filas, bueno, mencionas 10 filas, pero en la macro tienes esto:

For i = 1 To i = 249

Entonces debería ser for i = 1 to 249

Te preparo la macro para cargar las 5 columnas, supongo que son las columnas B, C, D, E y F y todas las filas hacia abajo, ¿te parece?

SI POR FAVOR, te agradeceré también no incluir imágenes de los archivos que te he enviado. Gracias por todo. En espera de tu respuesta

De esta forma cargas el listbox

Private Sub UserForm_Activate()
'Por.Dante Amor
    For i = 1 To 249
        ListBox1. AddItem
        ListBox1. List(ListBox1.ListCount - 1, 0) = Cells(i, "B")
        ListBox1.List(ListBox1.ListCount - 1, 1) = Format(Cells(i, "C"), """(S/.)""#,##0.00")
        ListBox1. List(ListBox1.ListCount - 1, 2) = Cells(i, "D")
        ListBox1. List(ListBox1.ListCount - 1, 3) = Cells(i, "E")
        ListBox1. List(ListBox1.ListCount - 1, 4) = Cells(i, "F")
    Next
End Sub

El resultado se presenta así

solamente tienes que poner el mismo formato en la columna que vas a cargar:

ListBox1.List(ListBox1.ListCount - 1, 1) = Format(Cells(i, "C"), """(S/.)""#,##0.00")

En mi ejemplo lo utilice en la columna "C" que se va a cargar en la columna 1 del listbox.


Añade tu respuesta

Haz clic para o

Más respuestas relacionadas