Como Programar en Excel - Facturas de Venta Final

Estas listo para ver el ultimo video de como crear  excel facturas de venta paso a paso?

Este es el último paso que vamos a realizar, para tener listo tu plantilla. Espero que hallas tomado acción en el artículo anterior, si no lo has hecho ve léelo pasos para Programar en Excel, Facturas de Venta Nº3.

Ahora vamos a crear un botón que nos permita imprimir la factura y guardar los datos en la base de datos.

Macro que Imprime y limpia las Facturas de venta

Primeramente quiero compartir la macro que utilizaras para imprimir y limpiar la factura. La siguiente imagen te muestra el código:

Sublimpieza()ActiveSheet.Range("C9").Value= ""ActiveSheet.Range("A13:C20").Value = ""End SubSub Imprimir()

' imprimir Macro

ActiveWindow.SelectedSheets.PrintOut Copies:=1, Collate:=True, _

IgnorePrintAreas:=False

End Sub

Estos códigos las vamos a copiar dentro del módulo uno, del proyecto “Facturas de Venta” Suponiendo que tu archivo tiene ese nombre, si tiene otro nombre no importa, lo que queremos es colocar dentro de un módulo esos códigos, veamos los pasos:

  1. 1
    Vamos a pulsar Alt + F11 para abrir Visual Basic For Aplication (VBA) la ventana tiene que ser igual así a como se muestra en la imagen:
  1. 2
    En la parte izquierda se muestra un proyecto, la desplegamos e insertamos un módulo, para insertar modulo nos ubicamos en la pestaña "Insertar" y seleccionamos "Módulos". Veamos la imagen:
  1. 3
    Una vez que ya hemos insertado el modulo, se mostrara dentro del proyecto, dentro de una carpeta llamada módulo, desplegamos esa carpeta y damos doble clic sobre modulo 1 y se nos abre una ventana o espacio en blanco donde tu podrás copiar el código de la tabla 1. Veamos la imagen:
  1. 4
    Vamos a copiar el código de la tabla 1 en el espacio en blanco y queda de la siguiente manera.
  1. 5
    Pulsamos "Guardar" y cerramos VBA.

Creando Botón para Imprimir y Guardar los Datos

Vamos a crear un botón de comando, para insertarlo nos ubicamos en la pestaña programador (Office 2010) o Desarrollador (Office 2013), sección controles, desplegamos el comando insertar y seleccionamos Botón Comando (Esta dentro de Controles ActiveX).

Una vez seleccionada nos ubicamos a la mitad de la celda A2 y presionando el botón primario (Izquierdo) del mouse empezamos a Dibujar el botón terminando hasta la mitad de la Celda C2, te pido que veas la imagen:

Bien, si notas yo ya le puse nombre al botón, pero en tu caso aparecerá por defecto el nombre commandbutton1, ese nombre lo cambiaremos después de agregarle el código al botón.

Código que graba los datos de la Factura en la Hoja Base

Así a como está tu botón está activado en modo diseño, le damos clic derecho, y se nos presenta varias opciones, seleccionamos ver código y se nos abre VBA. Veamos la imagen:

Nos ubicamos en medio de las dos palabras y copiamos el siguiente código:

'imprimirCall Imprimir'rutina que graba la factura en hoja base'se busca la primer fila libre en hoja Factfilalibre = Sheets("Base").Range("A65536").End(xlUp).Row + 1

'se pasarán los datos desde la 1er fila de items

ActiveSheet.Range("A10").Select

fila = 10

While ActiveCell.Value <> ""

'copiamos datos fijos ajustando nro col

Sheets("Base").Cells(filalibre, 2) = ActiveSheet.Range("F4") 'NRO FACT

Sheets("Base").Cells(filalibre, 1) = ActiveSheet.Range("B4") 'FECHA

Sheets("Base").Cells(filalibre, 3) = ActiveSheet.Range("C6") 'CLIENTE

'otros datos del encabezado



'copiamos lista de items

Sheets("Base").Cells(filalibre, 4) = ActiveCell.Offset(1, 0) 'CANT

Sheets("Base").Cells(filalibre, 5) = ActiveCell.Offset(0, 1) 'COD PROD

Sheets("Base").Cells(filalibre, 6) = ActiveCell.Offset(0, 2) 'PROD

Sheets("Base").Cells(filalibre, 7) = ActiveCell.Offset(0, 3) 'DESCRIPC

Sheets("Base").Cells(filalibre, 8) = ActiveCell.Offset(0, 4) 'PRECIO UNIT

Sheets("Base").Cells(filalibre, 9) = ActiveCell.Offset(0, 5) 'PRECIO TOT



'incremento la variable fila para repetir el bucle

filalibre = filalibre + 1



'repito el bucle para las cantidades siguientes

ActiveCell.Offset(1, 0).Select

Wend



'para el ingreso de nueva factura



Call limpieza



Una vez que ya has copiado el código guardas y cierras VBA. Te dejo una imagen para que observes que lo has copiado correctamente, el código copiado debe estar tal a como aparece en la imagen.

Ejemplo de la Imagen

Ohhh se me olvidaba un punto importante, y me refiero al nombre del botón comando. Muy bien activamos el modo diseño del comando y le damos clic derecho, seleccionamos ver código.

Esto nos lleva nuevamente a Visual Basic para aplicación, entonces ya estando dentro de VBA en el panel que se encuentra a la izquierda, siempre la opción propiedades esta activa, pero en caso de no estar activo, pulsamos F4 y aparece la ventana Propiedades del CommandButton1, te dejo una imagen para que la veas:

Una vez activo las propiedades del Botón commandButton1, buscamos dentro de las propiedades en la parte izquierda la palabra “Caption”, en la parte derecha tiene escrito CommandButton1, lo borramos y escribimos “Imprimir y Guardar”, guardamos y cerramos VBA.

Muy bien podemos observar que ya cambio el nombre de tu Botón ahora dice “Imprimir y Guardar” Felicidades ahora solo nos queda probar si todo funciona bien. Pero antes de que hagas la prueba te regalo una imagen de la propiedad caption esta resaltado en azul:

Estupendo! Hemos concluido ahora solo digita una cantidad, un código, selecciona un nombre, digita la fecha (Si no quieres digitar fecha solo escribe dentro de la celda B4 lo siguiente =Hoy()).

Y pulsa el botón "Imprimir y Guardar" y veras como se imprimirá y se guardara los datos, no solo eso el número de factura aumentara y quedara automáticamente una nueva factura limpia, lista para digitar nuevos datos.

Hasta aquí con el tema de hoy Como Programar en Excel - Facturas de Venta Final, me gustaría saber que piensas de este articulo, déjame tu comentario con dudas, criticas constructivas y sugerencia.

Te saluda,

Roger Pérez - Excel y Contabilidad

Acerca de

Roger Perez

  • Estimado

    He realizado todos los pasos, sin embargo no funciona la macro, lo demas si (formulas), ademas me registre, me enviaron un usuario y una contraseña pero igual no puedo entrar,

    tus comentarios al respecto

    Saludos

    • Estimado Benjamin, las macros no se han podido activar por las siguientes razones:

      1. No lo guardaste en el Tipo de Libro habilitado para Macros.
      2. Quizas al Abrir el Libro tu no habilitas el contenido, al abrir un Libro si el tipo de libro esta habilitado para macros, excel automaticamente te pregunta si deseas habilitar el contenido, entonces, al pulsar en habilitar estas activando toda la funcinalidad de las macros.

      En cuanto al Registro voy a buscarte en la Lista de Contactos, si te encuentro voy a enviarte tu clave de usuario y tu contraseña.

      Saludos y Exitos,

  • Hola mi estimado muchas gracias lo he probado y me sirve bien, pero lo que yo quisiera es que lo datos que están en la factura los cuales son : fecha, n factura,cliente dirección , cant (menos cod pro) descripcion, p/u y total me salgan en la hoja BASE horizontalmente comenzando desde la fila 2 hacia adelante ( A2 : H2) y asi sucesivamente bajando mientras voy agregando o en este caso guardando los datos de la factura. Por favor ya que el diseño de factura esta perfecto para mi gusto. me registrare en tu pagina GRACIAS de antemano.

  • Estimado
    Muchas gracias por su ayuda, me sirvio y aclaro varias dudas, el boton me funciona sin problemas pero sólo en imprimir, no me limpia la hoja ni me guarda los datos de la factura anterior.

  • Sr Roger, mil y mil gracias por tu colaboración, el ejercicio me funcionó perfectamente, y me permitió modificarlo para que solo guardara los datos de la factura, en la hoja base, de igual manera, deshabilite la validación de datos y la función Buscarv.

    Dios te guarde y te dé la sabiduría necesaria,para que siga ayudando y colaborando al máximo

  • Gracias, si lo segui paso a paso y funciona perfecto, igual realice algunos cambios para poder reducir algunos datos, pero siempre respetando el diseño original.

    El problema es que si selecciono 3 productos los guarda bien en la base a la hora de imprimir, pero si visualizo no quedan esos 3 productos en la boleta Nº1 sino que queda con un numero correlativo

  • Muchas gracias por su ayuda de este tutorial, me funcionó perfecto.
    Más bien tengo una consulta, yo deseo que la base no este dentro del libro sino más bien en otra ruta, en que parte de la programación cambiar la ruta?.
    Muchas gracias de antemano.

  • Sr Roger, mil gracias por tu colaboración, muy bueno el tutorial, el ejercicio me funcionó, pero tengo una duda se puede realizar en excel. un modulo que me permita ir bajando de inventario y si tengo el producto en 0. me diga un mensaje?

    Dios te bendiga y te dé la sabiduría necesaria,para que siga ayudando

    • Hola Juan!

      Visual Basic parar aplicaciones ya viene con Excel, lo puedes abrir desde la pestaña Desarrollador o Programador.

      Saludos,

      Roger Perez – Aplica Excel Contable

  • Hola de ante mano gracias por el tutorial.. uno de los mejores que visto en buen tiempo..
    Yo segui tus pasos. me funciona todo bien, lo unico que al final no me limpia para el siguiente factura ,, siempre queda la factura que realizo.
    Tambien quiero saber como hago para que nadie pueda manipular los demas hojas,,,
    que solo sea manipulable la de Facturas

    • Hola Gabriel!

      Puedes Crear una macro que limpie la Factura y luego llamas a esta a esta macro desde el Boton Guardar.

      Para que nadie manipule las demas hojas, solo protegelas con contraseña.

      Saludos,

      Roger Perez – Excelcontablex

  • {"email":"Email address invalid","url":"Website address invalid","required":"Required field missing"}

    Este sitio web utiliza cookies para que usted tenga la mejor experiencia de usuario. Si continúa navegando está dando su consentimiento para la aceptación de las mencionadas cookies y la aceptación de nuestra política de cookies, pinche el enlace para mayor información.

    ACEPTAR
    Aviso de cookies
    >