top of page
Foto del escritorSistema MRP

Factura automática y sencilla con Excel -VBA - descarga gratis


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

780 visualizaciones0 comentarios

Comments


bottom of page