Les cuento que elaboré una macro que genera un gráfico con una estadística. Este gráfico cambia en su información interna y se encuentra basado en una tabla dinámica de excel. Deseo crear un botón que me permita autoajustar el área a imprimir (el gráfico en una hoja y la tabla dinámica en otra). Y que genere la impresión. ¿Puede alguien ayudarme para alcanzar este objetivo?
Supongo que por lo que mencionas, la tabla dinámica se encuentra en una hoja y el gráfico en otra hoja, si no es así, no importa, los pasos son los siguientes: Crear un botón en la hoja, donde al dar doble click te aparecerá en la hoja de Visual Basic un cuadro con algo parecido a esto: Private Sub CommandButton1_Click() End Sub Despues solo deberas teclear los siguientes comandos ActiveWindow.SelectedSheets.PrintOut Copies:=1, Collate:=True Sheets("[hoja de Grafico]").Select ActiveWindow.SelectedSheets.PrintOut Copies:=1, Collate:=True Donde [hoja de Grafico] es el nombre de la hoja en que se encuentra el gráfico que mencionas. En caso de que se encuentren en la misma hoja, deberás seleccionar el área de cada uno con los siguientes comandos: Range("a1:az83").Select 'selecciona el area donde esta la tabla dinamica, en este caso seria desde la celda A1 hasta la celda AZ83,obviamente depende del area que tu manejes ActiveSheet.PageSetup.PrintArea = "$a$1:$az$83" 'selecciona el area de impresion ActiveWindow.SelectedSheets.PrintOut Copies:=1, Collate:=True 'manda a imprimir el area seleccionada Y repetirías este comando donde se encuentre el rango del gráfico Como tras consideraciones, toma en cuenta de que antes de eso tendrías que configurar la página ANTES de crear y asignar los comandos, es decir, tienes que ajustar la orientación y si lo quieres ajustar en una página de alto por una de ancho
1 comentario
Yo utilizo la que mencionas Sheets("VENTAS").SelectActiveWindow.SelectedSheets.PrintOut Copies:=1, Collate:=TruePero quisiera que cuando no encuentre la impresora o para cancelar la impresión no me genere un error de compilación, me podrían ayudar con esto, saludos. - Iedep Jonotla
Yo utilizo la que mencionas Sheets("VENTAS").SelectActiveWindow.SelectedSheets.PrintOut Copies:=1, Collate:=TruePero quisiera que cuando no encuentre la impresora o para cancelar la impresión no me genere un error de compilación, me podrían ayudar con esto, saludos. - Iedep Jonotla