Necesito cargar el listbox en un formulario con los datos de tres cajas de texto.

Tengo un formulario con un listbox (ListBox1) 3 cajas de texto (TextBox1, TextBox2 y TextBox3) y un botón. Necesito que al hacer clic en el botón se cargue en el listbox los datos de las cajas, y al hacer clic de nuevo que se repita en la siguiente línea del listbox.

2 Respuestas

Respuesta
2

Prueba el siguiente código.

Private Sub CommandButton1_Click()
  With ListBox1
    .AddItem
    .List(.ListCount - 1, 0) = TextBox1.Value
    .List(.ListCount - 1, 1) = TextBox2.Value
    .List(.ListCount - 1, 2) = TextBox3.Value
  End With
End Sub

Nota: La propiedad ColumnCount del listbox1 deberá ser igual a 3.

¡Gracias!  Dante Amor.

Un detalle. Como puedo dar formato a una columna  más del listbox para que me coloque decimales? Es que solo me pone dos dígitos.

.List(.ListCount - 1, 4) = List(.ListCount - 1, 3) * List(.ListCount - 1, 2)

Hola Dante Amor.

Estoy viendo que si vuelvo a pulsar el botón con los mismo datos del anterior clic, no baja a la siguiente línea, registra siempre en la misma línea del list.  ?

No entiendo esto:

. List(.ListCount - 1, 4) = List(.ListCount - 1, 3) * List(. ListCount - 1, 2)

En el ejemplo que te puse solamente tienes 3 columnas.

Pero estás multiplicando la columna 4 * la columna 3 : List(.ListCount - 1, 3) * List(.ListCount - 1, 2)

No sé de dónde sacas la columna 4.



No baja a la siguiente línea

Tampoco entiendo eso.

En las pruebas que hice, cada que presiono el botón me genera una nueva línea al final del listbox.

Revisa los datos al final del listbox.


Tal vez debas poner aquí todo tu código para revisarlo.

Respuesta
1

Carolina, el Excel no es lo mío, pero por darte una idea. Si tengo el formulario con un cuadro de lista llamado Lista32 y en sus Propiedades-Datos-Origen de la fila le he puesto Lista de Valores y tres cuadro de texto y un botón

Escribo algo en los cuadros de texto

Cuando pulso el botón, me pasa los tres al cuadro de lista

En este caso, el código del evento Al hacer clic del botón es

Private Sub Comando40_Click()
Lista32.AddItem Texto34
Lista32.AddItem Texto36
Lista32.AddItem Texto38
End Sub

En caso de que quisieras que al pulsar el botón una vez sólo te pase el primero al cuadro de lista, que al pulsar una segunda vez sólo te pase al cuadro de lista el segundo cuadro de texto, etc, deberías añadirle un cuadro de texto oculto llamado, por ejemplo, Contador y el código del botón dejarlo, por ejemplo

Private Sub Comando40_Click()
Contador = Nz([CONtador]) + 1
If Contador = 1 Then
Lista32.AddItem Texto34
ElseIf Contador = 2 Then
Lista32.AddItem Texto36
ElseIf Contador = 3 Then
Lista32.AddItem Texto38
Contador = 0
End If
End Sub

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas