Lo que a continuación se va a mostrar es la forma de hacer un formulario que permita saber qué documentos han pasado por el encargado de almacén, así como qué movilidad lo llevó.
Para poder lograr el formulario hemos utilizado textbox para el ingreso de los datos y los datos ingresados que han hecho uso de un buscador a través de la fórmula Application.Vlookup (buscarv o consultav)
La idea es poder tener este formulario al final
(Para mayor visualización de la imagen, hacer click en la misma)
Como podemos observar tenemos nueve (9) textbox en los cuales vamos a llenar datos para proceder a llenarlos en la siguiente tabla
(Para mayor visualización de la imagen, hacer click en la misma)
como podemos observar todos los datos ingresados se van a llenar en las seis (6) columnas mostradas
En nuestro formulario notamos que existen espacio vacío al lado derecho, dichos espacios contienen label, los cuales muestran el avance de nuestro ingreso. Como el ingreso va a ser a través de códigos, los label internamente buscan un patrón otorgado para poder mostrar lo que significa el código otrogado
Para lograr ello cada vez que ingresemos un dato en una textbox y salgamos de ella, automáticamente se llenará el la label con el dato correspondiente por ejemplo en el caso del ruc tenemos en una hoja guardados los datos de nuestros clientes con sus ruc respectivos
(Para mayor visualización de la imagen, hacer click en la misma)
Y al nosotros llenar el ruc del cliente en nuestro formulario se verá de la siguiente manera
(Para mayor visualización de la imagen, hacer click en la misma)
Esto lo logramos con el siguiente código
Private Sub TextBox5_Exit(ByVal Cancel As MSForms.ReturnBoolean)
num = Val(TextBox5.Value)
columna3 = Application.VLookup(num, Sheets("ruc").Range("A:B"), 2)
Label4.Caption = columna3
End Sub
Como vemos se está haciendo uso de Application.Vlookup(dato buscado, matriz, columna de la matriz), para luego utilizar un label4.caption ="lo que va en la label"
En el caso de documento por ejemplo vemos que a los documentos se los ha completado con ceros, esto es un caso práctico ya que en el sistema que se utiliza el sistema te los devuelve de esa manera y se busca asemejar los datos empleados con los que el sistema te devuelve se lo hace de la siguiente manera, es más que todo un "concatenar" que se muestra en un label.caption
Private Sub TextBox4_Exit(ByVal Cancel As MSForms.ReturnBoolean)
Label2.Caption = TextBox2.Value & "-0" & TextBox3.Value & " 0000" & TextBox4 & "-000"End Sub
Para el botón Ingresar se utiliza el siguiente código
Private Sub CommandButton1_Click()
dosEnd Sub
Sub dos()
Sheets("hoja").Select
t = Cells(Rows.Count, 1).End(xlUp).Row
S = t + 1'columna 1 fecha
Sheets("hoja").Range("A" & S) = TextBox1.Value
'columna 2 tipo de documento
columna2 = TextBox2.Value & "-0" & TextBox3.Value & " 0000" & TextBox4 & "-000"
Sheets("hoja").Range("B" & S) = columna2
'columna 3 cliente
columna3 = Application.VLookup(Val(TextBox5.Value), Sheets("ruc").Range("A:B"), 2)
Sheets("hoja").Range("C" & S) = columna3
'columna 4 carro con el que se despacha la mercadería
columna4 = Application.VLookup(Val(TextBox21.Value), Sheets("carro").Range("A:B"), 2)
Sheets("hoja").Range("D" & S) = columna4
'columna5 chofer qu està transportando la mercaderìa
columna5 = Application.VLookup(Val(TextBox20.Value), Sheets("chofer").Range("A:B"), 2)
Sheets("hoja").Range("E" & S) = columna5
'columna6 indica el producto que está saliendo con dicho producto
Sheets("hoja").Range("F" & S) = Val(TextBox6.Value)
'columna7 indica el producto que está saliendo con dicho producto
columna7 = Application.VLookup(Val(TextBox13.Value), Sheets("rq").Range("A:B"), 2)
Sheets("hoja").Range("G" & S) = columna7
End Sub
Para el caso del botón Limpiar, se utiliza los siguientes códigos
(Para mayor visualización de la imagen, hacer click en la misma)
Y para salir u ocultar el formulario lo siguiente
Private Sub CommandButton3_Click()
UserForm1.Hide
End Sub
Adjunto el archivo para su revisión
Saludos
Harold U. Mori Bazan
ARCHIVO ALMACÉN
23/11/2013 a las 8:38 am
Este formulario me parece una buena herramienta para los trabajos que son en fábrica y en donde hay mucho movimiento.Actualmente trabajo en finanzas y me parece que con algunas modificaciones podría acondicionar el formulario para registrar los documentos que me recibo de los bancos y llevar un mejor control
29/11/2014 a las 10:21 pm
Un saludo, excellente formulario, me gustaria saber como es el codigo para imprimir desde un formulario en vba de excel, una hoja de calculo sin ingresar al archive de excel. solo desde el formuario que cargo en un archive donde tengo todas las macros