#factura #factura #facturagratis #descargarfactura #facturaenexcel #facturaexcel #facturaexcelgratis #plantillafactura #basededatos #basededatosenexcel #sistemamrp #gestióndeinventarios #facturaautomática #facturadescarga
Hola emprendedores y entusiastas productivos. En este artículo vamos a realizar una factura automática, sencilla y rápida con VBA y Excel. Esta factura se encuentra dirigida para personas que comienzan a emprender con sus actividades en producción, entusiastas o estudiantes. Bien, primero, observemos la definición de este concepto.
Factura
Según el portal web Reviso.com es aquel documento que autentifica que se ha recibido un servicio o adquirido un producto y es de cumplimiento obligatorio en las operaciones mercantiles. Debe contener como mínimo los siguientes requisitos básicos:
- Número de factura.
- Fecha de emisión.
- Datos del emisor de la factura: Nombre, cédula.
- Descripción de los bienes entregados.
- Tipo impositivo aplicado (IVA).
- Contraprestación total.
Con la teoría examinada, vamos a realizar un procedimiento para generar una factura de nuestros productos terminados, los cuáles ya presenten un costo unitario y se encuentren listos a ser vendidos. En esta misma página existe un artículo Emisión de facturas para producción , el cual se diferencia del presente en los cálculos automáticos más profundos asociados al inventario y al costo unitario. Si deseas darle un vistazo, puedes hacerlo haciendo un click sobre el anterior link. Ambas facturas de igual manera comparten algunos de los pasos que se observarán a continuación.
Bien, con esta breve premisa es momento de iniciar, así que vamos detalladamente con el siguiente procedimiento:
1. Base de datos de clientes y productos (Excel)
Antes de realizar cualquier formulario o formato es necesario establecer una base de datos, tanto para clientes como para productos; una base de datos básicamente consiste en la elaboración de una tabla con una información ordenada y de fácil lectura. Si aún no tienes una idea de cómo realizarlo, aquí te dejo un link: Creación de una base de datos sencilla en excel.
Dependiendo del grado de personalización para la factura se requerirán más o menos campos en las tablas de almacenamiento de datos. Sí los mismos fueran extensos al punto que Excel se tornara lento te puedo recomendar pasar los datos de Excel a Access, si no conoces como hacerlo, en el siguiente enlace te explico cómo, de forma sencilla y automática: Base de datos óptima y automática con Excel, VBA y Excel. En nuestro caso, nuestros campos serán muy simples, y son los que siguen:
* Productos:
Producto.
Código.
Costo unitario.
Stock
* Clientes:
C.I.
Fecha.
Nombre.
Apellidos.
Dirección.
Ciudad.
Provincia.
Empresa.
Teléfonos.
E-mail.
Otros.
2. Formato de Factura y menú de rápido acceso (Excel)
El siguiente paso es construir nuestro formato para emitir nuestras facturas. En el internet hay un sinnúmero de ellas con diferentes diseños, elige la que te guste y adáptala a tus necesidades, después de ello crea unos recuadros que serán los botones que controlarán tu factura. Algo tan simple como lo demuestra la siguiente figura:
Para construir los recuadros, basta con ir a insertar, y en el apartado de ilustraciones elegir una figura, anotar un nombre representativo y listo.
Ahora bien, ya terminado el formato y el menú de control, podemos realizar los cálculos en la variable dependiente "importe" y otros subtotales y totales en la misma tabla o a partir de los formularios detallados a continuación. En este caso, como la factura tiene 39 casilleros es factible realizarlo de cualquier forma, porque la memoria tomada por esos casilleros con fórmulas sencillas será despreciable. Entonces, si decidimos asignar fórmulas, las siguientes pueden ser así:
- Importe: =SI(O(D15="";E15="");"";D15*E15)
- Base imponible: {=SUMA(SI(ESERROR(F15:F51);"";F15:F51))}
- IVA: =F52*($D$53/100)
- Total factura: =SUMA(F52:F53)
* Estos casilleros deben ser colocados con formato de moneda.
3. Formulario para buscar los datos de clientes (VBA)
Con la base de clientes ya establecida podremos realizar una búsqueda dentro de esta base de datos en un formulario B y pasar la información a otro formulario A. Si deseas descargar gratis este documento para la búsqueda de clientes dentro de una base de datos, puedes seguir el siguiente enlace: FORMULARIO PARA BUSCAR CLIENTES - DESCARGAR.
* El formulario A será similar al que se muestra en la siguiente figura:
Si aún no conoces cómo construir un formulario con VBA puedes seguir el enlace a continuación: Base de datos en Excel y VBA ; en el punto número 3 se muestra el proceso detallado para construir un formulario de manera rápida y sencilla.
* Mientras que el formulario B será similar al que se muestra en la siguiente figura:
Con ello se evitaría colocar a cada momento la información de un determinado cliente, y sólo se colocaría una nueva información si el cliente no se encontrara en la base de datos.
4. Establecimiento de rangos para búsqueda y listas desplegables (Excel)
Ahora es necesario establecer nombres a nuestras bases de datos. Nuestras bases de datos de seguro serán dinámicas, por lo tanto debemos asignar un nombre a estos rangos y facilitar las cálculos que se realizarán dentro de los formularios siguientes. Para hacerlo paso a paso, puedes echarle un vistazo al siguiente artículo: Rangos dinámicos.
Así entonces, para enmarcar toda la base de datos de clientes, podemos colocar la siguiente fórmula dinámica en el administrador de nombres :
(clientes) =DESREF(BD!$B$4;0;0;CONTARA(BD!$N:$N);13)
Ahora, para nuestra base de datos de productos, podemos enmarcar sólo el nombre de los artículos de la siguiente forma:
(productos) =DESREF(PRODUCTOS!$B$4;;;CONTARA(PRODUCTOS!$B$4:$B$1048576))
Aparte de ello podemos asignar otro nombre que enliste la información de los productos:
(infoproductos) =DESREF(PRODUCTOS!$B$4;0;0;CONTARA(PRODUCTOS!$E:$E);4)
5. Formulario para emitir los datos del producto (VBA)
Ya con la base de datos de productos establecida podemos construir un formulario similar al que se muestra en la siguiente figura:
Bien, vamos a detallar algunos campos del formulario que se ha desarrollado:
* Producto: Es una lista desplegable donde se encuentran los productos elaborados, la misma puede establecerse a través de un rango dinámico, si deseas observar la ejecución detallada de este proceso, puedes ir al siguiente enlace: Rango dinámico y formularios en Excel y VBA.
* Código: Es el código que se establece para cada producto.
* Costo unitario: Es aquel costo perteneciente al artículo en cuestión que ya se ha establecido con anterioridad; este es el elemento más importante del que se diferencia esta factura de una factura para artículos producidos, ya que en este último el cálculo yace de otra serie de cálculos que se relacionan entre sí.
* Margen de contribución: es el porcentaje que se espera ganar sobre el costo, entre mayor sea el margen, mayor la utilidad obtenida.
* P.V.U.: Con el margen de contribución y el costo unitario finalmente se puede obtener el precio de venta dando un click al botón que se encuentre a la derecha del casillero de margen de contribución. Para el precio de venta hay que tener en cuenta, el mercado y la estrategia de producción, sea la de menores costos, de mayor calidad o mejores costos.
* Cantidad: Es la cantidad que se va a vender de ese producto, teniendo en cuenta el inventario del producto aquel.
* Stock: Es un casillero informativo, sobre el stock existente para dicho producto. El stock se relaciona con el inventario elaborado, y se puede seguir con más detalle en el siguiente enlace: Gestor de inventarios sencillo en Excel y VBA. Aunque no se detalle este elemento para la elaboración de la factura, sí que debe encontrarse asociado de alguna forma a la factura.
6. Codificación VBA (FORMULARIOS)
A parte del código para el funcionamiento correspondiente a estos formularios, los mismos deben contener controladores de error para guiar al usuario y generar una correcta entrada de datos. Para ir dentro del formulario y colocar el código completo asociado al mismo basta con hacer click derecho en el formulario o UserForm y click en ver código. Entonces, vamos paso a paso por todo el código utilizado en la factura. Vamos con los formularios correspondientes a la base de datos de clientes, los cuáles son 3: a) El formulario correspondiente a la entrada de datos de clientes propiamente dicha. b) El formulario sobre la fecha. c) El formulario sobre la búsqueda de clientes.
FORMULARIO CLIENTES
Código para A). Con el código siguiente las variables del formulario se rellenarán directamente en la factura. Nótese que para rellenar el número de la factura sólo se permitirán datos numéricos.
Private Sub cmdagregar_Click()
Dim apellidos As String 'variable para almacenar los valores de apellidos
Dim ci As String 'variable para almacenar los valores de ci
Dim direccion As String ' variable para almacenar los valores de dirección
Dim localidad As String ' variable para almacenar los valores de localidad
Dim email As String ' variable para almacenar los valores de provincia
Dim fecha As String ' variable para almacenar los valores de fechas de compra de factura
Dim numero As String ' variable para almacenar los valores de números de factura
If txtapellidos.Text <> "" And txtci.Text <> "" And txtdireccion.Text <> "" And txtlocalidad.Text <> "" And txtemail.Text <> "" And fechacomprafactura.Text <> "" And numerofactura.Text <> "" Then
apellidos = txtapellidos.Value 'paso del formulario a la variable
ci = txtci.Value 'paso del formulario a la variable
direccion = txtdireccion.Value 'paso del formulario a la variable
localidad = txtlocalidad.Value 'paso del formulario a la variable
email = txtemail.Value 'paso del formulario a la variable
fecha = Format(fechacomprafactura.Text, "mm/dd/yyyy") 'paso del formulario a la variable
numero = numerofactura.Value 'paso del formulario a la variable
'Hoja, fila y columna que se especifican para rellenar los datos
ActiveWorkbook.Sheets("FACTURA").Cells(4, 5) = numero
ActiveWorkbook.Sheets("FACTURA").Cells(5, 5) = fecha
ActiveWorkbook.Sheets("FACTURA").Cells(8, 5) = apellidos
ActiveWorkbook.Sheets("FACTURA").Cells(9, 5) = ci
ActiveWorkbook.Sheets("FACTURA").Cells(10, 5) = direccion
ActiveWorkbook.Sheets("FACTURA").Cells(11, 5) = localidad
ActiveWorkbook.Sheets("FACTURA").Cells(12, 5) = email
Else
MsgBox ("Rellenar todos los campos")
End If
End Sub
Private Sub cmdborrar_Click()
txtapellidos = ""
txtci = ""
txtdireccion = ""
txtlocalidad = ""
txtprovincia = ""
fechacomprafactura = ""
numerofactura = ""
ActiveWorkbook.Sheets("FACTURA").Cells(8, 5) = ""
ActiveWorkbook.Sheets("FACTURA").Cells(9, 5) = ""
ActiveWorkbook.Sheets("FACTURA").Cells(10, 5) = ""
ActiveWorkbook.Sheets("FACTURA").Cells(11, 5) = ""
ActiveWorkbook.Sheets("FACTURA").Cells(12, 5) = ""
ActiveWorkbook.Sheets("FACTURA").Cells(4, 5) = ""
ActiveWorkbook.Sheets("FACTURA").Cells(5, 5) = ""
End Sub
Private Sub CommandButton1_Click()
fecha.Show
End Sub
Private Sub CommandButton2_Click()
BUSCARCLIENTE.Show
End Sub
Private Sub numerofactura_KeyPress(ByVal KeyAscii As MSForms.ReturnInteger)
'Sólo permitir números
If (KeyAscii >= 48 And KeyAscii <= 57) Then
KeyAscii = KeyAscii
Else
KeyAscii = 0
End If
End Sub
End Sub
Código para B). Con el código siguiente la fecha se rellenará sobre el campo "Fecha" del formulario de Clientes.
Nota importante: La herramienta date control (calendario) funcionará únicamente para la versión de Excel de 32 bits; que no tiene relación alguna con el sistema Windows. Es decir, se puede tener un sistema operativo Windows 64 bits y tener Microsoft Excel de 32 bits o Microsfoft Excel de 64 bits.
Entonces, si tu versión es de 64 bits, elimina el formulario fecha y a continuación puedes copiar el siguiente código el cual hará un control de error si la fecha digitada no corresponde al formato "dd/mm/aaaa" directamente para el casillero "Fecha" del anterior formulario:
Private Sub fechacomprafactura_Exit(ByVal Cancel As MSForms.ReturnBoolean)
'Validar fecha
If IsDate(fechacomprafactura.Value) = False Or Len(fechacomprafactura.Value) < 10 Then
MsgBox ("Se debe ingresar una fecha válida en: dd/mm/aaaa")
fechacomprafactura.Value = Null
Cancel = True
Exit Sub
End sub
Sí por el contrario, tu versión es Excel de 32 bits, puedes continuar con el formulario y copiar el siguiente código dentro del mismo:
Private Sub CommandButton2_Click()
'Validar fecha
CLIENTE.fechacomprafactura.Text = calendar1.Value
End Sub
Private Sub CommandButton3_Click()
'Validar fecha ACTUAL
calendar1 = Date
CLIENTE.fechacomprafactura.Text = calendar1.Value
End Sub
Código para C). Con el código siguiente se realizará una búsqueda de clientes por varios campos, si esta parte te interesa y no deseas más, puedes continuar al siguiente enlace: Buscar clientes por varios campos. Haciendo doble click sobre algú dato, estos se rellenarán de manera automática en el formulario A.
Dim i, items
Private Sub ListBox1_DblClick(ByVal Cancel As MSForms.ReturnBoolean)
fila = Me.ListBox1.ListIndex
CLIENTE.txtapellidos.Text = ListBox1.List(fila, 1)
CLIENTE.txtci.Text = ListBox1.List(fila, 0)
CLIENTE.txtdireccion.Text = ListBox1.List(fila, 2)
CLIENTE.txtlocalidad.Text = ListBox1.List(fila, 3)
CLIENTE.txtemail.Text = ListBox1.List(fila, 4)
Unload Me
End Sub
Private Sub CommandButton1_Click()
'Cuadro de diálogo para buscar vacío o buscar valor
If Me.txt_Buscar.Value = Empty Then
MsgBox "Escriba un registro para buscar"
Me.ListBox1.Clear
Me.txt_Buscar.SetFocus
Exit Sub
End If
Me.ListBox1.Clear
'Seleccionar Hoja de BD
Sheets("BD").Select
'Asignar variable items
items = Sheets("BD").Range("clientes").CurrentRegion.Rows.Count
'Fila desde que empieza a contar
For i = 4 To items + 4
'Busco x cédula
If LCase(Cells(i, 2).Value) Like "*" & LCase(Me.txt_Buscar.Value) & "*" Then
Me.ListBox1.AddItem Cells(i, 2) 'Cédula/RUC
Me.ListBox1.List(Me.ListBox1.ListCount - 1, 1) = Cells(i, 4) & " " & Cells(i, 5) 'Nombre
Me.ListBox1.List(Me.ListBox1.ListCount - 1, 2) = Cells(i, 6) 'Dirección
Me.ListBox1.List(Me.ListBox1.ListCount - 1, 3) = Cells(i, 7) 'Ciudad/Localidad
Me.ListBox1.List(Me.ListBox1.ListCount - 1, 4) = Cells(i, 12) 'E-mail
'Busco x nombre
ElseIf LCase(Cells(i, 4).Value) Like "*" & LCase(Me.txt_Buscar.Value) & "*" Then
Me.ListBox1.AddItem Cells(i, 2) 'Cédula/RUC
Me.ListBox1.List(Me.ListBox1.ListCount - 1, 1) = Cells(i, 4) & " " & Cells(i, 5) 'Nombre
Me.ListBox1.List(Me.ListBox1.ListCount - 1, 2) = Cells(i, 6) 'Dirección
Me.ListBox1.List(Me.ListBox1.ListCount - 1, 3) = Cells(i, 7) 'Ciudad/Localidad
Me.ListBox1.List(Me.ListBox1.ListCount - 1, 4) = Cells(i, 12) 'E-mail
'Busco x dirección
ElseIf LCase(Cells(i, 6).Value) Like "*" & LCase(Me.txt_Buscar.Value) & "*" Then
Me.ListBox1.AddItem Cells(i, 2) 'Cédula/RUC
Me.ListBox1.List(Me.ListBox1.ListCount - 1, 1) = Cells(i, 4) & " " & Cells(i, 5) 'Nombre
Me.ListBox1.List(Me.ListBox1.ListCount - 1, 2) = Cells(i, 6) 'Dirección
Me.ListBox1.List(Me.ListBox1.ListCount - 1, 3) = Cells(i, 7) 'Ciudad/Localidad
Me.ListBox1.List(Me.ListBox1.ListCount - 1, 4) = Cells(i, 12) 'E-mail
'Busco x ciudad/localidad
ElseIf LCase(Cells(i, 7).Value) Like "*" & LCase(Me.txt_Buscar.Value) & "*" Then
Me.ListBox1.AddItem Cells(i, 2) 'Cédula/RUC
Me.ListBox1.List(Me.ListBox1.ListCount - 1, 1) = Cells(i, 4) & " " & Cells(i, 5) 'Nombre
Me.ListBox1.List(Me.ListBox1.ListCount - 1, 2) = Cells(i, 6) 'Dirección
Me.ListBox1.List(Me.ListBox1.ListCount - 1, 3) = Cells(i, 7) 'Ciudad/Localidad
Me.ListBox1.List(Me.ListBox1.ListCount - 1, 4) = Cells(i, 12) 'E-mail
'Busco x e-mail
ElseIf LCase(Cells(i, 12).Value) Like "*" & LCase(Me.txt_Buscar.Value) & "*" Then
Me.ListBox1.AddItem Cells(i, 2) 'Cédula/RUC
Me.ListBox1.List(Me.ListBox1.ListCount - 1, 1) = Cells(i, 4) & " " & Cells(i, 5) 'Nombre
Me.ListBox1.List(Me.ListBox1.ListCount - 1, 2) = Cells(i, 6) 'Dirección
Me.ListBox1.List(Me.ListBox1.ListCount - 1, 3) = Cells(i, 7) 'Ciudad/Localidad
Me.ListBox1.List(Me.ListBox1.ListCount - 1, 4) = Cells(i, 12) 'E-mail
End If
Next i
Me.txt_Buscar.SetFocus
Me.txt_Buscar.SelStart = 0
Me.txt_Buscar.SelLength = Len(Me.txt_Buscar.Text)
'Seleccionar Nuevamente la hoja de factura
Sheets("FACTURA").Select
Exit Sub
End Sub
Private Sub UserForm_Initialize()
'Columnas
ListBox1.ColumnCount = 5
'Ancho a cada columna
Me.ListBox1.ColumnWidths = "120 pt;130 pt;145 pt;130 pt;30 pt"
'El origen de los datos
' ListBox1.RowSource = "Tabla1"
End Sub
FORMULARIO PRODUCTOS
Código para formulario de productos. Con el código siguiente se realizará una búsqueda de la información de un producto dado en la lista desplegable, con la cual se podrá establecer información adicional a ser calculada.
Private Sub cantidad_KeyPress(ByVal KeyAscii As MSForms.ReturnInteger)
'Sólo permitir números
If (KeyAscii >= 48 And KeyAscii <= 57) Then
KeyAscii = KeyAscii
Else
KeyAscii = 0
End If
End Sub
Private Sub codigo_KeyPress(ByVal KeyAscii As MSForms.ReturnInteger)
'No permitir escritura, sólo valores asignados con la combo Box
KeyAscii = 0
End Sub
Private Sub ComboBox2_Click()
'Optimizar la ejecución de la macro
Application.ScreenUpdating = False
Set busco = Sheets("PRODUCTOS").Range("infoproductos").Find(ComboBox2.Value, LookIn:=xlValues, LookAt:=xlWhole)
codigo.Text = busco.Offset(0, 1)
costounitario.Text = busco.Offset(0, 2)
stock.Text = busco.Offset(0, 3)
End Sub
Private Sub CommandButton1_Click()
'Controlador de error 1: Evitar productos duplicados
Registro = ComboBox2.Value
contarduplicado = Application.WorksheetFunction.CountIf(Sheets("FACTURA").Columns(3), Registro)
If contarduplicado > 0 Then
MsgBox ("Producto ya existe en la factura."), vbCritical
Exit Sub
End If
'Controlador de error 2: No hay cantidad
If cantidad.Value = "" Then
MsgBox ("Rellenar el campo de cantidad."), vbCritical
Exit Sub
End If
'Controlador de error 3: La cantidad es superior al stock
If CDbl(cantidad.Value) > CDbl(stock.Value) Then
MsgBox ("La cantidad es mayor al stock."), vbCritical
Exit Sub
End If
If codigo.Text <> "" And ComboBox2.Text <> "" And pvu.Text <> "" And cantidad.Text <> "" Then
'Copiar campos del producto en factura
Sheets("FACTURA").Select
For i = 15 To 100
If Cells(i, 2).Value = "" Then
Cells(i, 2).Value = codigo.Text
Cells(i, 3).Value = ComboBox2.Text
Cells(i, 4).Value = CDbl(pvu.Value)
Cells(i, 5).Value = cantidad.Value
Exit For
End If
Next
Else
MsgBox ("Rellenar todos los campos"), vbCritical
End If
MsgBox ("Dato ingresado con éxito a la factura."), vbInformation
End Sub
Private Sub CommandButton2_Click()
Unload Me
End Sub
Private Sub CommandButton4_Click()
'calcular finalmente el precio de venta unitario
If mc.Text = "" Or costounitario.Text = "" Then
MsgBox ("Colocar valor en el márgen de contribución para calcular el precio de venta."), vbCritical
Else
pvu.Text = (Format(mc.Text, "0.0000") * Format(costounitario.Text, "0.0000")) + Format(costounitario.Text, "0.0000")
End If
End Sub
Private Sub CommandButton5_Click()
'Borrar formulario
ComboBox2.Text = ""
codigo.Text = ""
costounitario.Text = ""
mc.Text = ""
pvu.Text = ""
cantidad.Text = ""
stock.Text = ""
End Sub
Private Sub mc_Exit(ByVal Cancel As MSForms.ReturnBoolean)
'Modificar el punto por la coma y colocar formato de porcentaje
mc.Text = Format(Val(mc.Value) / 100, "0.00%")
End Sub
Private Sub mc_KeyPress(ByVal KeyAscii As MSForms.ReturnInteger)
'Números con decimales
If InStr("0123456789.", Chr(KeyAscii)) = 0 Then
If KeyAscii <> 8 Then KeyAscii = 0
End If
End Sub
7. Codificación VBA (MÓDULOS)
Ahora bien, falta una estructura de código para aumentar el control sobre nuestras facturas, esto lo hacemos dentro de un módulo. Para añadirlo, simplemente en el entorno VBA ir a Insertar - Módulo. Dentro de este anotar la siguiente estructura de código:
Código para pasar la factura a formato PDF y almacenarlo en un directorio dentro del ordenador.
Sub PasarPDF()
Dim wsA As Worksheet
Dim wbA As Workbook
Dim strName As String
Dim strPath As String
Dim strFile As String
Dim strPathFile As String
Dim myFile As Variant
On Error GoTo errHandler
Set wbA = ActiveWorkbook
Set wsA = ActiveSheet
'Nombre del libro activo
strPath = wbA.Path
If strPath = "" Then
strPath = Application.DefaultFilePath
End If
strPath = strPath & "\"
'Reemplazar espacios y periodos en la hoja
strName = Replace(wsA.Name, " ", "")
strName = Replace(strName, ".", "_")
'Nombre en Default
strFile = strName & "_" & Range("E4") & "_" & Format(Range("E5"), "dd-mm-yyyy") & ".pdf"
strPathFile = strPath & strFile
' Seleccionar la carpeta
myFile = Application.GetSaveAsFilename _
(InitialFileName:=strPathFile, _
FileFilter:="PDF Files (*.pdf), *.pdf", _
Title:="Seleccione una carpeta para guardar la factura")
'Exportar a PDF si el archivo es seleccionado
If myFile <> False Then
wsA.ExportAsFixedFormat _
Type:=xlTypePDF, _
Filename:=myFile, _
Quality:=xlQualityStandard, _
IncludeDocProperties:=True, _
IgnorePrintAreas:=False, _
OpenAfterPublish:=False
'Mensaje de confirmación
MsgBox ("El archivo PDF ha sido creado con la siguiente especificación: " _
& vbCrLf _
& myFile), vbInformation
End If
exitHandler:
Exit Sub
errHandler:
MsgBox ("Hubo un error, no se pudo crear el archivo pdf."), vbCritical
Resume exitHandler
End Sub
Código para pasar imprimir.
Sub Imprimirfactura()
' imprimir factura
ActiveWindow.SelectedSheets.PrintPreview
End Sub
Código para borrar los datos de la factura.
Sub Borrarfactura()
'Optimizar la ejecución de la macro
Application.ScreenUpdating = False
' Borrar factura
Range("E4:E6, E8:E12, B15:E51").Select
Selection.ClearContents
End Sub
Código para abrir formularios de la factura.
Sub AbrirProducto()
PRODUCTO.Show
End Sub
Sub Abrirclientes()
CLIENTE.Show
End Sub
Según las necesidades específicas de cada personas habrá un mayor o menor cuadro de controles, así por ejemplo facturas que se generen de envíen de forma automática por correo electrónico, almacenar los datos de la factura para emitir nuevos informes a partir de ello, etc. Por cierto, estas dos últimas características se encuentran listadas en nuestro ad-in para Excel basado en el sistema de planificación de recursos materiales (MRP); el mismo que maneja diversos cálculos relacionados a la gestión de inventarios en la producción, dirigido para MYPIMES, PYMES, emprendedores y entusiastas productivos a un costo único y sumamente accesible, si deseas observar sus funciones y ventajas, puedes navegar directamente por el menú de esta web y si lo consideras adquirir por aquí mismo lo podrás hacer.
8. Asociar macros a las figuras (controles)
Ahora es cuestión de asociar las macros realizadas a las formas geométricas diseñadas en la hoja de Factura. Para ello, click derecho en la figura, y click sobre asignar macro, elegir la macro que se desea, guardamos el libor y listo.
9. Descárgalo gratis!
Si deseas acceder al material expuesto en este artículo, pues nada más simple que hacer click en el siguiente enlace: Descarga de archivo.
Si este artículo ha resultado ser de ayuda puedes dejar un comentario, un me gusta o si deseas armar tus propios formularios y construir tu propia base de datos a partir de nuestro código ya desarrollado puedes considerar adquirir nuestro programa de gestión y planificación de inventarios para sistemas de producción (MRP) a un costo bastante accesible. Con un único pago y licencia perpetua, el mismo te permite editar todo el código sin ningún tipo de restricción, y muchos otros beneficios y funcionalidades que puedes observar en esta web.
Por mi parte, me despido, sin antes desearles un genial día. Y, no se olviden de sonreír, para recordar que la vida sonríe siempre.
Referencias bibliográficas:
Anónimo (2014). [En línea]. Extraído de la página web: https://www.reviso.com/es/que-es-una-factura
Comments