Agregar Combobox en Ejecución en formulario

¿Cómo están? Estoy teniendo un pequeño problema con un formulario que estoy intentando crear.
En el mismo necesito cargar datos para que luego los mismos se guarden en una base de datos de excel.
La idea es que en un combobox estén los nombres de los productos y al lado un textbox en blanco que me permita cargarle un valor. Como si fuera una factura donde agregue los productos y sus precios.
El problema es que quiero poder agregar a mano (durante la ejecución del formulario) cada combobox y textbox, uno por uno mediante un botón (1 combobox y 1 textbox por click). Pero no he encontrado ningún lugar que explique bien como armar el código.

Sino la otra que pensé era ya tener los combobox y textbox creados en el formulario pero mantenerlos ocultos e ir haciéndolos visibles uno por uno con un botón. Pero no se como hacer para que me haga visible solo 1 combobox y textbox a la vez...
Si alguno tiene idea me haría un gran favor ja ja

2 respuestas

Respuesta
2

Primero crea un formulario así, la macro para ocultar los combox y textbox se carga en automático y para ir haciendo visible el combo y el textbox, es a través del botón, se ira en orden y en cuanto llenes el textbox y des enter lo visible se hará invisible y los siguientes combo y textbox que están invisibles se harán visible y así sucesivamente cada que llenes un textbox y des enter, la instrucción la debes poner tal cual en cada textbox que uses haciendo referencia al textbox que estés usando y al siguiente que va a ser visible

Y esta es la macro

Private Sub CommandButton1_Click()
ComboBox1.Visible = True
TextBox1.Visible = True
End Sub
Private Sub TextBox1_AfterUpdate()
ComboBox2.Visible = True
TextBox2.Visible = True
ComboBox1.Visible = False
TextBox1.Visible = False
End Sub
Private Sub UserForm_Initialize()
For Each Control In UserForm1.Controls
    TIPO = UCase(TypeName(Control)) = "TEXTBOX" Or UCase(TypeName(Control)) = "COMBOBOX"
    If TIPO Then
        Control.Visible = False
    End If
Next Control
End Sub
Respuesta
1

Revisa las siguientes respuestas para crear controles (textbox o commandbutton)

Crear controles textbox en userform de acuerdo a ciertos registros.

Añadir controles con código VBA

Como colocar varias filas de textbox con un ciclo en un formulario de excel para entrar datos

Además de crear los controles, otro detalle que debes considerar, es cómo recuperar los datos que capturas dentro de los nuevos controles creados.

Cómo recuperar valor de un TextBox creado desde código


Realmente es complicado y se requiere de mucho código para controlar los nuevos y leer el contenido de los nuevos controles.

Tampoco es práctico que tengas 10 ó 20 ó 50 combobox y sus respectivos textbox en un formulario.

Si pones 10 combos, pensando en que tu factura es de 10 registros, pero si te llega una factura de 11 registros, entonces tu formulario ya no funcionaría y tendrías que modificarlo y crear otro botón y revisar nuevamente que todo funcione.


Lo recomendable podría ser, es que tengas solamente un combo y un textbox, te explico cómo funcionaría.

Creas un combo, un textbox y un listbox.

Capturas el producto y la cantidad y presionas un botón para pasar los datos al listbox:

En el listbox puedes almacenar todos los productos que requiera tu factura, si muchos, en automático el listbox crea la barra de desplazamiento vertical para que veas la lista de productos capturados.

Este es el ejemplo para pasar los datos del combo y del textbox al list:

Private Sub CommandButton1_Click()
    ListBox1.AddItem ComboBox1.Value
    ListBox1.List(ListBox1.ListCount - 1, 1) = TextBox1.Value
End Sub

Después de la captura, puedes poner otro botón para pasar los datos del listbox a la hoja.


'.[Sal u dos. Dante Amor. No olvides valorar la respuesta. 
'.[Avísame cualquier duda

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas