Presentar "N" lineas de registros en un formulario

Estoy haciendo un formulario para el calculo de costos, el cual contiene materia prima, maquinaria a utilizar y empleados, todos ellos aportan costos a la elaboración de un producto. Los ingreso 1 a uno en la primera parte del formulario y los guardo de la misma forma en una tabla, utilizando un numero correlativo que los agrupa, por ejemplo:
Orden0001 harina libras 5 0.25 1.25
Orden0001  azucar         onzas                  10   0.15    1.50
Orden0001  amazadora  horasMaquina     0.5  2.00    1.00
Orden0001  Juan Perez  horasHombre       3    3.50    10.50
¿En la segunda parte del formulario quiero ver todos los productos ingresados para esa orden y en la tercera parte del formulario totalizare (14.25). Como puedo presentar esos N registros en el formulario? Si exceden la cantidad de espacio que muestre una barra de desplazamiento. Por favor ruego su ayuda.

1 respuesta

Respuesta
1
Se me ocurre que cargues un control ListBox de 6 col.
Si tenés alguna dificultad en cargar un listbox, indicame el rango donde estarán guardados los datos y si estás en un formulario 'en la hoja' o en un Userform.,
Estoy usando un formulario userform2, el listbox es listbox1, la hoja desde donde traerá datos sera inventario, deberá cargar los registros que en la columna que inicia en B2 tengan el valor que esta en el textbox1 de ese mismo formulario. la hoja traerá las columnas C - H.
Espero que con estos datos sea suficiente
No encuentro documentación donde aprender más de este control.
Gracias por tu ayuda
Bien, aquí va la rutina para un botón de comando dentro del Userform. También podrías colocarlo en un evento del textbox...
Private Sub CommandButton1_Click()
'x Elsamatilde
'carga el listbox con datos de col C:H si la col B contiene el valor de Textbox1
Sheets("Inventario").Select
ActiveSheet.Range("B2").Select
'inicio el bucle hasta encontrar celda vacía en col B, imaginando fin de rango
While ActiveCell.Value <> ""
If ActiveCell = TextBox1 Then   'ver *
    ListBox1. AddItem ActiveCell.Offset(0, 1)  '1er col = col C
    'establezco el índice del listbox
    i = ListBox1. ListCount - 1
    ListBox1.List(i, 1) = ActiveCell.Offset(0, 2) '2da col = col D
    ListBox1.List(i, 2) = ActiveCell.Offset(0, 3)
    ListBox1.List(i, 3) = ActiveCell.Offset(0, 4)
    ListBox1.List(i, 4) = ActiveCell.Offset(0, 5)
    ListBox1.List(i, 5) = ActiveCell.Offset(0, 6)
End If
'paso al registro sgte y repito el bucle
ActiveCell.Offset(1, 0).Select
Wend
End Sub
No olvides que los textbox guardan sus datos como texto, si la col B tiene datos numéricos comparalos con:
If Activecell = val(textbox1)  then
Y si necesitas aprender más de este control y de cada uno de los usados en un Userform, debo recomendarte mi manual de Formularios. Varias rutinas explicadas paso a paso para cada uno de los controles...

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas