Jump to content

Imprimir Tickets y abrir cajón de dinero desde un userform


RHPTRADICIONAL

Recommended Posts

Que tal, buen día

Tengo poco conocimiento en el lenguaje VB, pero con los aportes de cada uno de los usuarios en esta página he creado un pequeño punto de venta en excel utilizando un userform.

Por más de que busqué el tema de imprimir y abrir cajón de dinero desde userform no he encontrado lo que requiero, espero si se pueda.

Estás son las dos preguntas que tengo:

¿Es posible (estando en un userform) abrir el cajón de dinero (conectado a la impresora) presionando un botón?

¿Es posible (estando en un userform) imprimir un ticket generado en excel (con impresora térmica usb, conectada a la computadora) presionando un botón?

Mi punto de venta es muy sencillo, tiene dos botones al principio en una hoja de excel

Al presionar el botón "mostrador" sale el punto de venta dónde se ingresan la venta de cada producto al momento de que ya se se terminó el ingreso de datos, presionamos el botón "aceptar" (es aquí dónde quiero que me abra el cajón de dinero)

En la hoja principal de excel existe otro botón llamado "reparto" aquí es dónde yo genero una especie de nota de venta (en una hoja de excel (AI,AL)) con los datos del cliente al que se le llevan los kg del "producto 1". Me gustaría saber si es posible que la impresora de tickets imprima esa pequeña nota de venta creada en excel. Si, si se puede en este userform he puesto un botón llamado "imprimir nota" (es dónde me gustaría algún código para mandar a imprimir)

En caso de que no pueda imprimir desde excel, me gustaría saber que solución le puedo dar.

Aquí dejo el link de la impresora y el cajón del dinero que compraré (ficha técnica de cada producto)

Kit Punto Venta Full Business Impresora Cajon Dinero Busin - $ 2,199.00 en MercadoLibre

De antemano, muchas gracias.

EJEMPLO PUNTO DE VENTA.rar

Link to post
Share on other sites

Mañana te digo como imprimir el ticket y abrir el cajón desde Excel.

Los $ 2.199.- ¿ Son dolares USA ?

Si es así, háztelo enviar desde España, lo puedes conseguir todo por menos de $ 500.-

cajon monedero: productos cajon monedero | Pixmania España

impresora de tickets: productos impresora de tickets | Pixmania España

GARMIN Lector código de barras CCD 80mm Z-3110 USB Negro | Pixmania España

Se trata de una empresa sería y de reconocido prestigio en Europa.

De hecho yo he comprado varias cosa y jamás he tenido el mas mínimo problema.

Saludos

Link to post
Share on other sites
Mañana te digo como imprimir el ticket y abrir el cajón desde Excel.

Los $ 2.199.- ¿ Son dolares USA ?

Si es así, háztelo enviar desde España, lo puedes conseguir todo por menos de $ 500.-

cajon monedero: productos cajon monedero | Pixmania España

impresora de tickets: productos impresora de tickets | Pixmania España

GARMIN Lector código de barras CCD 80mm Z-3110 USB Negro | Pixmania España

Se trata de una empresa sería y de reconocido prestigio en Europa.

De hecho yo he comprado varias cosa y jamás he tenido el mas mínimo problema.

Saludos

Hola Marco Antonio, muchas gracias por tu ayuda, en verdad he buscado por todos lados y no he encontrado la manera.

Gracias también por los datos de cajones de dinero e impresoras, los $2,199.00 son en Pesos Mexicanos, algo así como $170USD

Saludos desde México.

Link to post
Share on other sites

Hola:

Punto 1, las impresoras matriciales de punto de venta van, habitualmente conectadas al puerto LPT1.

Punto 2, las impresoras matriciales no están controladas por windows, por lo que funcionan a la "antigua", es decir en modo "tonto", hay que decirle en todo momento lo que queremos hacer, el tipo de letra, el espaciado, el avance, de línea, ....etc.

Eso se consigue mediante un lenguaje llamado ESP/P.

ESP/P son un conjunto de comandos que hay que enviar junto con el texto a imprimir, o simplemente para saltar una línea.

Los comando ESC/P son interpretados por la impresora y no son impresos.

En el adjunto encontrarás los comandos ESC/P para una impresora EPSON, pero son prácticamente el standard de ESC/P.

También encontrarás 4 macros a modo de ejemplo de como se imprimiría un ticket, como se abriría el cajón y como se cortaría el papel del ticket.

No son ejemplos teóricos, son ejemplos reales que han estado funcionando durante mas de 5 años en un comercio de calzado en España, y han funcionado en Excel 2003, Excel 2007 y Excel 2010.

Cualquier duda, no dudes en preguntar.

Saludos

Imprimir y abrir cajón.xls

Link to post
Share on other sites
Hola:

Punto 1, las impresoras matriciales de punto de venta van, habitualmente conectadas al puerto LPT1.

Punto 2, las impresoras matriciales no están controladas por windows, por lo que funcionan a la "antigua", es decir en modo "tonto", hay que decirle en todo momento lo que queremos hacer, el tipo de letra, el espaciado, el avance, de línea, ....etc.

Eso se consigue mediante un lenguaje llamado ESP/P.

ESP/P son un conjunto de comandos que hay que enviar junto con el texto a imprimir, o simplemente para saltar una línea.

Los comando ESC/P son interpretados por la impresora y no son impresos.

En el adjunto encontrarás los comandos ESC/P para una impresora EPSON, pero son prácticamente el standard de ESC/P.

También encontrarás 4 macros a modo de ejemplo de como se imprimiría un ticket, como se abriría el cajón y como se cortaría el papel del ticket.

No son ejemplos teóricos, son ejemplos reales que han estado funcionando durante mas de 5 años en un comercio de calzado en España, y han funcionado en Excel 2003, Excel 2007 y Excel 2010.

Cualquier duda, no dudes en preguntar.

Saludos

Muchas gracias Marco Antonio.

Veo que son dos códigos uno para abrir cajón y otro para imprimir, los pondré cada uno con su botón correspondiente y los probaré, hoy mismo me entregan el cajón del dinero y la impresora.

Mañana te mantengo al tanto de como funcionó todo.

Gracias de nuevo, saludos!

Link to post
Share on other sites

Hola Marco Antonio

Apenas contesto, ya que me acaba de llegar el equipo para imprimir y el cajón.

Ya conecté todo a la computadora, instalé el controlador de la miniprinter etc.

Ahora, la verdad como explicaba al principio he creado este pequeño sistema a prueba y error, no tengo mucho conocimiento de como programar en vb. Leí tus códigos y les entendí perfectamente, ya hasta modifiqué el de impresión utilizando el código ASCII para los acentos, etc.

Ahora, lo que a mi me hace lógica (no se si esté mal) es copiar el código dentro del código del botón de comando que yo tengo, sin el "private sub" del principio y el "end sub" del final.

Primero lo probé con mi botón de comando "aceptar" para abrir el cajón y me aparece un error que dice: " se ha producido un error '52' en tiempo de ejecución:"

Nombre o número de archivo incorrecto.

Y al probar el código para imprimir me aparece un error en líneas más abajo (me imagino por la línea que dice: "on error resume next")

El error me dice: "error de compilación" No se ha definido Sub o Function

Espero me puedas ayudar por favor.

Gracias de antemano

Link to post
Share on other sites

Hola Marco después de revisar la impresora me di cuenta que no manda la señal para imprimir, ya que le daba imprimir hoja de prueba y no mandaba nada, ahora me doy cuenta que no funcionaba con LPT1, busqué como instalarla correctamente y el puerto para que funcione es el: USB001 virtual printer port for USB

espero sirva de algo esta información, muchas gracias

Link to post
Share on other sites

sustituye:

Open "LPT1" For Output As #P [/CODE]

por:

[CODE]
P=1
Open "COM1" For Output As #P
[/CODE]

si no funciona:

[CODE]
P=2
Open "COM2" For Output As #P
[/CODE]

No sería necesario cambiar el valor de la variable P. Puedes definirla como constante con valor 1.

y así hasta dar con el puerto COM donde has conectado la impresora

Link to post
Share on other sites
Hola.

Para saber en que puerto esta instalada una impresora, buscamos esta en impresoras y faxes (win xp), la seleccionamos y en sus propiedades vemos en que puerto esta instalada.

Saludos amigos.

Hola, buen día

En un comentario pasado publiqué lo que aparece en las propiedades de la impresora:

Puerto: USB001

Descripción: Virtual printer for USB

Impresora: El nombre que le di a la impresora

He puesto ese nombre del puerto en el código pero no funciona (USB001)

Adjunto una imagen de captura de pantalla.

Muchas gracias

- - - - - Mensaje combinado - - - - -

Disculpen sino me expliqué bien, primero la impresora si estaba conectada al puerto LPT1, pero como no respondía desde las propiedades de la impresora (mandaba a imprimir hoja de prueba y no imprimía nada) Busqué en internet y hay que cambiarla de puerto al puerto USB001 como aparece en la captura de pantalla.

Gracias

post-120776-145877006561_thumb.jpg

Link to post
Share on other sites

Tuve que instalar la impresora como genérica para que se instale en el puerto LPT1

Corrí el código modificado como me lo pasó Marco A. la última vez e imprimió perfecto, solo tengo que darle formato al ticket.

Ya quedó listo, muchas gracias por su ayuda

- - - - - Mensaje combinado - - - - -

Hola, solo tengo una duda

En el código para imprimir vienen dos lineas que no se cuál es su función, me podrían decir por favor, ya que si las dejo o las borro, el ticket imprime igual.

Muchas gracias.

Este es el código:

Print #P, Chr(27) & Chr(64); 'ESC@

Print #P, Chr(27) & Chr(33) & Chr(0); 'ESC!;

Link to post
Share on other sites
  • 1 year later...
  • 2 months later...
  • 2 years later...
En 6/12/2012 at 13:30 , Macro Antonio dijo:

Hola:

Punto 1, las impresoras matriciales de punto de venta van, habitualmente conectadas al puerto LPT1.

Punto 2, las impresoras matriciales no están controladas por windows, por lo que funcionan a la "antigua", es decir en modo "tonto", hay que decirle en todo momento lo que queremos hacer, el tipo de letra, el espaciado, el avance, de línea, ....etc.

Eso se consigue mediante un lenguaje llamado ESP/P.

ESP/P son un conjunto de comandos que hay que enviar junto con el texto a imprimir, o simplemente para saltar una línea.

Los comando ESC/P son interpretados por la impresora y no son impresos.

En el adjunto encontrarás los comandos ESC/P para una impresora EPSON, pero son prácticamente el standard de ESC/P.

También encontrarás 4 macros a modo de ejemplo de como se imprimiría un ticket, como se abriría el cajón y como se cortaría el papel del ticket.

No son ejemplos teóricos, son ejemplos reales que han estado funcionando durante mas de 5 años en un comercio de calzado en España, y han funcionado en Excel 2003, Excel 2007 y Excel 2010.

Cualquier duda, no dudes en preguntar.

Saludos

Imprimir y abrir cajón.xls

Buenas tardes Sr. Macro Antonio, seria ud tan amable de subir nuevamente el archivo Imprimir y abrir cajon ya que el link que aparece no funciona.  Saludos

Link to post
Share on other sites

Manual de ESC/P

Ejemplo de macro para imprimir un ticket:

Línea, Código y PVP son los arrays que contienen las líneas de venta

 

Private Sub ImprimirTicket()

'Abrir e inicializar impresora
Open "LPT1" For Output As #1
Print #1, Chr(27) & Chr(64);

'Cabecera del ticket
Print #1, Chr(27) & Chr(33) & Chr(0);
Print #1, Chr(10);

Print #1, Chr(27) & Chr(33) & Chr(16); Chr(27) & Chr(33) & Chr(32);
Print #1, " ZAPATERIA TRIS-TRAS";
Print #1, Chr(10);

Print #1, Chr(27) & Chr(33) & Chr(0);
Print #1, "       CALZADO INFANTIL";
Print #1, Chr(10);
Print #1, Chr(10);

Print #1, Chr(27) & Chr(77) & "1";
Print #1, Chr(27) & Chr(33) & Chr(1);
Print #1, "Plaza Chavi"; Chr(160); "n"; ", Bloque 3, Local 4";
Print #1, Chr(10);

Print #1, "15220 Bertamir"; Chr(160); "ns";
Print #1, Chr(10);

Print #1, "T.666666666";
Print #1, Chr(10);

Print #1, "NIF: 99999999X";
Print #1, Chr(10);
Print #1, Chr(10);

Print #1, Chr(27) & Chr(33) & Chr(16); Chr(27) & Chr(33) & Chr(32);
Print #1, Space(3); "TICKET N"; Chr(167); ":"; NúmeroTicket;
Print #1, Chr(10);

Print #1, Chr(27) & Chr(33) & Chr(0);
Print #1, Chr(10);

Print #1, "LIN  CÓDIGO PVP";
Print #1, Chr(10);

'Cuerpo del ticket
For X = 1 To UBound(Línea)
   Print #1, Línea(X) & " ";
   Print #1, Código(X) & " ";
   Print #1, PVP(X) & " ";
   Print #1, Chr(10);
Next

'Cortar ticket
Print #P, Chr(27) & Chr(64); Chr(29) & "V1";

'Abrir cajón
Print #1, Chr$(27); "p"; Chr$(0); Chr$(100); Chr$(250);

'Cerrar impresora
Close #1
End Sub

 

Imprimir ticket.xlsm

Link to post
Share on other sites
  • 2 weeks later...

DIFINITIVAMENTE MACRO ANTONIO ES EL MEJOR Respecto ala programacion visual en este foro, con razon tanta envidia de parte de algunos compañeros como el tal yoel monsalve, de venezuela,, q vine a darme cuenta q es muy joven , un niño,, con un futuro potencial, pero enfocado en eventos negativos, como buscar ser el primero ante todo, disfruta con el solo hecho de ver a macro por debajo de el,, jaja,, siempre me pdeia q le calificara pronto y de todo lo q el colocase,  me parecio gracioso lo q me expresaba este joven, le agradezco por q me trato de ayudar en mi proyecto,, pero solo logro fue atrasarme,, hasta estuve a punto de pagarle pues el chico se esforzo, pero le quedo un poco grande algunos detalles, y en ves de buscar soluciones, trato de salir por la puerta facil,, 

 cuando macro antonio se digno a colaborarme en pocas respuestas  resolvio casi todo mi problema..

gracias

Link to post
Share on other sites

Estimado Lug Barry, creo que este no es el medio adecuado para dirimir diferencias en lo personal conmigo. Este portal se trata exclusivamente de asuntos relacionados con la programción VBA/Excel.

Haces señalamientos de tipo "enfocado a eventos negativos", "es muy joven", "es un niño": E incluso poniendo en duda mi capacidad profesional. No voy responderte en cuánto tus opiniones personales hacia mi, ya que son tuyas, pero agradezco por favor y encarecidamente retires todo señalamiento dirigido a cuestionar mi integridad profesional y competencia en el campo que aquí se refiere de la programación VBA/Excel.

No viene al caso, y no tienes ninguna prueba ni fundamento para lo que dices. Tengo años de experiencia en la progrmación en mi haber (por haber empezado desde muy joven en ello), y para lo cual te remito a todas mis otras participaciones en el foro.

Entonces en conclusión, ten todas las opiniones y diferencias que quieras en lo personal conmigo (son tuyas, las respeto), pero no vengas a tratar de afectar la integridad de mi trabajo con ello.

Si quieres trabajar asesorado por otro usuario como Antonio o quién sea, también estás en tu derecho.

=============================================================

P.D. Ya reporté este mensaje tuyo a la administración, y solicitando sea eliminado.

Link to post
Share on other sites
Hace 15 horas, YoelMonsalve dijo:

Estimado Lug Barry, creo que este no es el medio adecuado para dirimir diferencias en lo personal conmigo. Este portal se trata exclusivamente de asuntos relacionados con la programción VBA/Excel.

Haces señalamientos de tipo "enfocado a eventos negativos", "es muy joven", "es un niño": E incluso poniendo en duda mi capacidad profesional. No voy responderte en cuánto tus opiniones personales hacia mi, ya que son tuyas, pero agradezco por favor y encarecidamente retires todo señalamiento dirigido a cuestionar mi integridad profesional y competencia en el campo que aquí se refiere de la programación VBA/Excel.

No viene al caso, y no tienes ninguna prueba ni fundamento para lo que dices. Tengo años de experiencia en la progrmación en mi haber (por haber empezado desde muy joven en ello), y para lo cual te remito a todas mis otras participaciones en el foro.

Entonces en conclusión, ten todas las opiniones y diferencias que quieras en lo personal conmigo (son tuyas, las respeto), pero no vengas a tratar de afectar la integridad de mi trabajo con ello.

Si quieres trabajar asesorado por otro usuario como Antonio o quién sea, también estás en tu derecho.

=============================================================

P.D. Ya reporté este mensaje tuyo a la administración, y solicitando sea eliminado.

q casualidad yo tambien lo reporte, pues eres una mascara, disces unas cosas en privado y aqui estas como palomita,, madura,, maduro,, no ganas nada trantando de hacer disputas de quien sabe mas  con macro antonio,, amigo el  sr macro maneja mas codigo q vos,,  mas bien descansa q estas como enfermo,,,

Link to post
Share on other sites

Estimado @Lug Barry, sus dos mensajes anteriores ya fueron reportados a Administración.

Usted está quedando muy mal con esa actitud, cese sus ataques o pediré sea suspendido.

Su participación en nada ayuda a esta comunidad, sólo se dedica a pedir ayuda de los colaboradores, y cuando no se la dan, instigar conflictos y rivalidades entre los participantes.

No cometeré el error de dejarme arrastrar a este juego en contra del amigo Antonio, cada uno de nosotros tiene qué aportar en su campo, y no es el foro para protagonizar peleas.

Le pido que recapacite, o sino que lo suspendan.

Link to post
Share on other sites

Archived

This topic is now archived and is closed to further replies.

Guest
This topic is now closed to further replies.


  • Crear macros Excel

  • Posts

    • Si habia buscado pero tengo que calcular la distancia entre 1 cliente y 39 mil mas. Despues calcular cual es el de menos distancia..... A  lo que veo es un tema dificil. Muchas gracias
    • MUCHAS GRACIAS SR. ANTONI.  como siempre dando en el punto. sr. antoni disculpe la molestia todo esta ok.  me olvide preguntar tambien por  la ayuda por periodo mensual filtrando. para que me jale el inventario inicial del periodo anterior dejo como quedaria al filtrar por mes. para tener dos opciones de reporte por fecha en la hoja donde iran los 2 esultados. muchas gracias por su gentil ayuda maestro.   REPORTE F_1 M_.xlsm
    • Hola Grupo un gusto saludarlos a todos,  Estoy realizando planificaciones semanales , donde tengo una base con los horarios de los agentes y sus libres, y luego en base a eso realizo una planificacion semanal , Pero me resta resultando muy manual, mi idea es poderla automatizarla un poco, o lo mas que se pueda ya que entiendo que es dificil,  La idea que tengo y que intente hacer de muchas formas pero por el momento no logro concretar es la siguiente:  Si el agente ese dia tiene su horario normal y esta capactiado en la tarea ejemplo 3 tipos de Tarea (administracion, ventas, logistica ) y conincide con su hora que se autocomplete en base al dia y al dia que el agente trabaje, Me resulta muy dificil debido a que son varios parametros, las planificaciones se manandan de forma semanal,  Me parece super interesante podes desarrollar una idea de este tipo y mas excel, entiendo que es posible pero me resulta difícil, muy difícil, Me podrían brindar ayuda a concretar este problema ? intente de muchas formas pero no logre realizarlo,  Estaria encantando con la ayuda que pueden brindar, Saludos desde Uruguay!    Planificacion Dinamica x agentes Semanales .xlsx
    • Busca por la red "calcular distancia entre dos puntos de geolocalización en Excel" Ya con ese calculo, lo que sigue es sencillo de hacer, y si no puedes hacer esta parte, pues nos avisas por aquí    Saludos
    • Hola a tod@s, Tengo un fichero de Excel para realizar un registro de entradas y salidas y me esta funcionando en cuanto a la parte de cumplimentar en la hoja de Excel directamente. Intentare explicarme lo mejor posible. Pero lo mejor es probarlo.Se trata de una tabla en las que estarían las entradas y salidas de productos de las distintas obras que tenemos (que se llama "Registros" en la hoja REGISTRO) y en la que añadimos y quitamos artículos que pueden entrar o salir según necesidades para llevar un control.Hay otra tabla donde tenemos todos los productos (que se llama "Productos" en la hoja PRODUCTOS).Y una tercera hoja donde tenemos pequeñas tablas para los desplegables que queramos disponer.Todas las hojas están relacionadas mediante formulas y validación de datos.Si comprueban a meter datos o a sacar datos en la hoja de Registro directamente comprobaran que funciona de forma correcta. Suma los productos cuando el valor es positivo y resta cuando el valor es negativo pero si el valor de existencias de ese producto es inferior a cero dará un error porque no hay existencias. Hasta aquí funciona todo correcto.Pero me he creado un formulario para introducir la fecha, que lo hace de forma automática y un código que lo introduce de forma automática a partir de un Listbox que me he creado. Si colocamos un valor y luego lo borramos en el Textbox de búsqueda sacara el listado de todos los artículos. Después solamente con seleccionar el articulo que deseamos lo colocara en el Textbox de código.Pero el problema que no he conseguido resolver es en la parte del Textbox de Cantidad. Porque ahí si coloco un numero negativo aunque el stock sea cero o inferior a cero pues me lo coloca igualmente y no soy capaz de solucionarlo. Me han intentado ayudar en otro foro pero me acabo dando problemas que hacia la suma mal.Espero que lo puedan entender y que me pueden ayudar o darme alguna solución.Yo lo que pretendo después, es poder bloquear las hojas para que nadie pueda modificarlas salvo en algunos campos porque este archivo es para compartir a varios usuarios y unos podrán entrar material y otros solamente sacar material . Pero eso ya será otra historia. Primero quería resolver esto.Disculpen por tanto embrollo, pero cualquier duda se la podre aclarar sin problema. En resumen, seria validar la cantidad introducida para evitar que el stock del producto sea menor que 0. Muchas gracias a todos.   Entradas y salidas de material_5.xlsm
  • Recently Browsing

    No registered users viewing this page.

×
×
  • Create New...

Important Information

Privacy Policy