Que tal necesitaría una fórmula para poder imprimir un libro excel, por medio de una macro, sin abrir el libro y de ser posible imprimir ciertas hojas del libro. Es que estoy diseñando una macro en donde necesito abrir varios libros, seleccionar las hojas a imprimir y he grabado una macri simple, pero me abre los libros y me los muestra y quiero evitar que se vean, quizás me ayudarían las fórmulas de las macros, desde ya agradezco quien me ayude.
Saludos
Has probado a abrir minimizado para que no se vean y después de imprimir que lo cierre y ya esta el problema resuelto. El código es: Workbooks.Open Filename:= _ "C:\Documents and Settings\AQUÍ PONES LA RUTA Y NOMBRE DE TU LIBRO" ActiveWindow.WindowState = xlMinimized
Si de hecho así lo estoy utilizando, solo que he visto que un conocido en sistema ha realizado un programa que llama a imprimir sin mostrar el libro, el tema es que con el no tengo confianza, de igual manera agradezco tu tiempo y colaboración muchas gracias!
Toma este código a ver si te sirve ' ChDir "Ruta donde esta el libro" Workbooks.Open Filename:= _ "Ruta mas nombre del libro" Visible = False ActiveWorkbook.PrintOut From:=1, To:=1, copies:=1, collate:=True ActiveWorkbook. Close Esto ponlo dentro de tu macro, el libro se abrirá pero estará oculto se imprimirá y se cerrará.
Huy, disculpa que te vuelva a molestar, pero te muestro como funciona Res = MsgBox(prompt:="A continuación se Actualizarán todas las planillas de juego del torneo challenguer, esto podrá demorar 5 minutos aproximadamente", Buttons:=vbYesNo, Title:="Actualizacion de Planillas de Juego Torneo challenguer") If Res = vbYes Then ChDir "D:\LAFI\LAFI 2009\BaseDatos2009.xls" Workbooks.Open Filename:= _ "D:\LAFI\LAFI 2009\Planillas\Originales\juego2009.xls" Visible = False Windows("juego2009.xls").Activate ActiveWorkbook.Save ActiveWorkbook.Close y despues de actualizar va la orden imprimir Workbooks.Open Filename:="D:\LAFI\LAFI2008\Planillas\Zona A1\CLUBMAYO78.xls" Visible = False Sheets(Array("95", "00", "96", "01")).Select Sheets("95").Activate Visible = False ActiveWindow.SelectedSheets.PrintOut Copies:=1, Collate:=True Workbooks.Open Filename:="D:\LAFI\LAFI2008\Planillas\Zona A1\COCCORINO.xls" Sheets(Array("95", "00", "96", "01")).Select Sheets("95").Activate ActiveWindow.SelectedSheets.PrintOut Copies:=1, Collate:=True SERÍA ALGO ASÍ, PORQUE LO HAGO Y CUANDO CORRO LA MACRO ME SALTA UN CARTEL QUE DICE "error de compilación" La función o la interfaz se marco como restringida o la función utiliza un tipo de automatización no adimitida en visual basic" Y por las dudas aclare option explicit al comienzo y me marca "error de compilación" "no se ha definido variable" y me marca el comienzo como error "res= ...". Valoraría de nuevo tu ayuda y desde ya vuelvo a agradecer tu tiempo y buena predisposición!
El directorio la primera opción que te puse no puede ser el propio archivo sino el directorio solo, donde tú pones: ChDir "D:\LAFI\LAFI 2009\BaseDatos2009.xls" Debería poner : ChDir "D:\LAFI\LAFI 2009\" Pruébalo y me cuentas
Lo intente del modo que me decís y de igual manera me figura ese cartel, trate de encontrar el error pero no lo decifro, de igual manera agradezco tu tiempo y ayuda y trataré de volver a realizar todo paso a paso con la orden visible=False hasta encontrar el modo correcto, una vez más agradezco tu ayuda
Bueno refrescando un poco la mente logre que funcionara sin errores, pero me lo muestra igual no se cual sera el problema, pero no lo oculta te muestro el ejemplo Private Sub CmdActualCha_Click() Res = MsgBox(prompt:="A continuación se Actualizarán todas las planillas de juego del torneo challenguer, esto podrá demorar 5 minutos aproximadamente", Buttons:=vbYesNo, Title:="Actualizacion de Planillas de Juego Torneo challenguer") If Res = vbYes Then ChDir "D:\LAFI\LAFI 2009\" Workbooks.Open Filename:= _ "D:\LAFI\LAFI 2009\BaseDatos2009.xls" Visile = False ChDir "D:\LAFI\LAFI 2009\Planillas\Originales\" Workbooks.Open Filename:= _ "D:\LAFI\LAFI 2009\Planillas\Originales\juego2009.xls" Visile = False Windows("juego2009.xls").Activate Visile = False ActiveWorkbook.Sabe ActiveWorkbook.Close Windows("BaseDatos2009.xls").Activate Visile = False ActiveWorkbook.Close MsgBox "Las planillas de juego del torneo challenguer fueron actualizadas satisfactoriamente", vbOKOnly, "ACTUALIZACIÓN COMPLETA" Else Exit Sub TextBox1.SetFocus End If End Sub A ver si descifras mi error porque no logro verlo, desdá ya muchas gracias
Querido amigo estas cometiendo un error de sintaxis, si has copiado la macro para pegarla aquí, veo que tu error es tonto estas poniendo "VISILE =FALSE" no es visile es "VISIBLE =FALSE", anda corrige y comprueba si hace lo que pretendes.
OK, lo tenia frente a mis ojos y no lo veía, eso de refrescar la mente era verdad, bueno agradezco tu ayuda y espero no haberte vuelto loco, con mis dudas y falta de conocimiento, espero puedas ayudarme en un futuro vuelvo a agradecerte. Muy buena solución, gracias!