Macros para imprimir

Quisiera saber como hacer un macros que me imprima un rango de celdas (a1 a k56)
Por medio de un botón y la cantidad de copias estén dadas por el valor que tome de una
Celda especifica (p5)

1 Respuesta

Respuesta
2
Bien en poco te contesto que me han llenado el buzón con preguntas.
Bien el código en el botón sería así:
Private Sub CommandButton1_click()
Dim copias As Integer
copias=Range("P5").Value
ActiveSheet.PageSetup.PrintArea = "$A$1:$K$56"
ActiveWindow.SelectedSheets.PrintOut Copies:=copias, Collate:=True
End Sub
Pruébalo y finalizas la consulta un saludo
Julio
Disculpa mi ignorancia experto
Tengo un problema, el archivo de excel tiene 3 hojas, cree un botón en la tercera hoja pero no se como hacer para que el macros funcione... dado que no conozco mucho de esto...
Tu quieres que se impriman las 3 hojas al pulsar el botón o solo la 3ª hoja.
Aclarame
No, solo el documento que esta en la tercera hoja...
Mira tengo 3 pestañas u hojas con los mombres siguientes: indice, ingeniería y la tercera hoja se llama bielomatik
Bueno la hoja con nombre bielomatik hay un documento que se debe imprimir desde la celda a1 a la celda k56...
La cantidad de copias la va a tomar de la celda p5... el macros esta bien lo prove y puedo imprimir sin problema... pero cuando cierro visual b y trato de asignarle el macros al botón no puedo... y me manda un mensaje de que el macros no existe...
De lo que no estoy muy seguro es el proceso desde abrir el visul b, escoger donde va el macros, guardarlo y salir del visual b... y posteriormente asignarle el macros al botón... se que el error que estoy cometiendo esta en alguno de estos procesos...
Vamos a ver si me explico:
Te sitúas en tu hoja3 pulsas el icono de la escuadra (vista diseño) y dibujas el botón en una parte libre de tu hoja.
Ahora pulsas encima con el botón derecho y eliges Ver código.
Se te mostrará VBA con los textos:
Private Sub CommandButton1_click()
End Sub
Ahora ya solo falta poner el código entre estas dos lineas, y ahí es donde tienes que poner el código que te puse, evidentemente sin las dos lineas de código que ya a escrito VBA
Dim copias As Integer
copias=Range("P5").Value
ActiveSheet.PageSetup.PrintArea = "$A$1:$K$56"
ActiveWindow.SelectedSheets.PrintOut Copies:=copias, Collate:=True
Guardas y cierras VBA y ya tienes el botón funcionado desde tu hoja.
Más fácil y sencillo no me lo hubieras explicado... de lujo funciono a la perfección
Gracias experto
p.s.
Quisiera un macros que me de el ultimo dato (texto, numero o lo que haya en la celda)
De un rango a1 a a57 y que se actualice automáticamente... no se si lo puedo pedírtelo así o tendría que hacer una nueva pregunta-----
aaaa... puedo usar este macro (el de impresión) y como lo haría, si tengo 5 documentos distintos en la hoja 3 y quiero colocar un botón para imprimir el documento 1 en el rango a1 a k56, otro botón para imprimir el documento 2 en el rango a71 al k100 y así hasta tener los 5 botones...
Solamente quiero imprimir selectivamente los documentos por medio de cada botón osea:
Para una ocasión quiero imprimir 3 documentos de los 5... aprieto el botón 1 y que me imprima documento1, apretar botón 2 y que imprima el documento 2 y así hasta imprimir el tercer documento...
Si hay otra manera de hacerlo indícamelo por favor...
A la primera pregunta sobre los datos que se actualicen, tienes que hacerlo en otra pregunta para poder seguir su trámite.
A la segunda cuestión exactamente tienes 4 rangos puedes hacer 2 cosas, que te pregunte que rango quieres imprimir y el numero de copias siempre y con un botón sería suficiente, si no quieres estar escribiendo pues dibujas 5 botones y pones a cada uno su código.
Si quieres único botón que te pregunte sería el código así:
Private Sub CommandButton1_Click()
Dim copias As Integer
Dim rango As String
copias = InputBox("¿Cuantas copias quiere imprimir?")
rango = InputBox("Escriba que rango quiere imprimir")
ActiveSheet.PageSetup.PrintArea = rango
ActiveWindow.SelectedSheets.PrintOut Copies:=copias, Collate:=True
End Sub
Siempre tendrás que poner el numero de copias y el rango que quieras.
Un saludo
Finaliza esta pregunta y crea una nueva
Julio

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas