¿Cómo puedo conseguir que al terminar de pasar los productos, se imprima un ticket?

Mira tengo que crear una aplicación en excel para mi tienda y me he atascado en un par de puntos.
Estoy en la primera hoja, la segunda hoja me sirve de matriz de datos y la tercera la quería para almacenar los tikets que se hayan cobrado.
La primera hoja la he diseñada, para cobrar y como puedo hacer que al terminar de pasar los productos, apretando un botón, por ejemplo, imprima el ticket y se almacene el la tercera hoja.
Gracias por todo.
Respuesta
1
Para hacer lo que dices hay que hacer una pequeña macro, es decir, una programación muy sencilla que haga lo que dices.
Imagino, pero no lo sé porque no lo especificas, que lo que hay que hacer es Imprimir un rango de esa primera hoja, y copiar ciertos datos, según los quieras distribuir, en la tercera hoja.
Dime más o menos cómo son los datos que tienes, y cómo los quieres pegar. Ayudaría si me pasas el archivo.
Espero tu respuesta. Un saludo,
Ten encuenta que los datos que hay en la primera hoja son: Ref., Artículo, Cantidad, Precio, Total.
Estos datos tienen que salir en un ticket para dárselo al comprador, además de Cif de la empresa, la dirección, teléfono, Nombre, etc,.
Sobretodo los primeros pasos serian; como hago un botón en la hoja primera que me conduzca a guardar los datos del ticket en la tercera hoja.
Gracias por ayudarme.
Aún con tu explicación, le echo algo de imaginación para saber cómo es tu aplicación y te adjunto una macro que hace unas funciones parecidas y que quizás debas modificar para tu aplicación.
Concretamente imagino que el rango B1:B5 contiene los datos importantes a los que te refieres. E imagino que en la hoja 3, esos datos se guardan en filas, de la A a la E para ser más preciso.
Para insertar una macro, presiona Alt+F11. En la ventana superior izquierda que aparece (donde dice Microsoft Excel Objetos) haz click derecho e Inserta un Módulo.
En el módulo pega la macro que te incluyo.
Después selecciona Ver/Barras de Herramientas/Formularios.
Inserta un botón donde te parezca bien, y se te abrirá un cuadro de diálogo que te solicitará la macro que le quieres asociar. Lógicamente cogerás ésta, que tendrá como nombre Macro1.
Ahora la macro. Lo que hace es copiar las casillas B1:B5 de la Hoja1 y pegarlas (transponiendo) en la primera fila libre que haya en la hoja3. Todo ello sin que la pantalla se mueva (ScreenUpdating=false). Después vuelve a la hoja1 y te la imprime una vez.
Podría ser que quieras pegar los datos de otra forma. Entonces podrías hacerlo casilla a casilla. Para ello te sugiero (para que lo aprendas) que grabes con la grabadora de macros un copiar y pegar, y sobre él trabajes.
Sub Macro1()
'
Application.ScreenUpdating = False
Dim rango
Sheets("Hoja1").Select
Range("B1:B5").Select
Selection.Copy
Sheets("Hoja3").Select
rango = Range("a2").End(xlDown).Offset(1, 0).Address
Range(rango).Select
Selection.PasteSpecial Paste:=xlAll, Operation:=xlNone, SkipBlanks:=False, Transpose:=True
Sheets("Hoja1").Select
Range("a1").Select
Application.ScreenUpdating = True
ActiveWindow.SelectedSheets.PrintOut Copies:=1
End Sub
Espero haberte ayudado.
Un saludo,
Todo estupendo, hasta que al final me ha dado un fallo la macro en la línea 9.
rango=Range("a2").....
Perdona, me olvidé de este detalle.
Debes poner al menos el primer dato a mano, porque lo que hace la macro es ir a la última casilla que esté rellena hacia abajo y después mover el cursor una fila más también hacia abajo.
En el caso de que no tengas más que el encabezado, mover hasta la última casilla rellena hacia abajo significa ir hasta la última fila de Excel (65536), porque no encuentra ninguna rellena por el camino.
Te puedo dar código para que esto no suceda, (con una función contar) pero la solución más fácil es que tu primer dato lo metas a mano.
Pruébalo, y si prefieres el cóidigo, no dudes en pedírmelo.
Un saludo,

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas