Jump to content
RHPTRADICIONAL

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

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

Share this post


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

Share this post


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.

Share this post


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

Share this post


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!

Share this post


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

Share this post


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

Share this post


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

Share this post


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

Share this post


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!;

Share this post


Link to post
Share on other sites

supongo que sustituyendo el string de esta linea ----- Print #P, "CALZADO INFANTIL Y JUVENIL"; -----

por una variable o una celda de excel, me va mandar a imprimir el texto sin problema. ok lo intentare

Share this post


Link to post
Share on other sites
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

Share this post


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

Share this post


Link to post
Share on other sites

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

Share this post


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.

Share this post


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,,,

Share this post


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.

Share this post


Link to post
Share on other sites
Guest
This topic is now closed to further replies.



×
×
  • Create New...

Important Information

Privacy Policy