Foro
=> ¿No se ha registrado todavía?MAS EN: EXCEL AVANZADO
Foro - Lineas de configuracion de pagina
Se encuentra aqui: Foro => Macros => Lineas de configuracion de pagina |
|
JoaoM (Hasta ahora 1 Post) |
Tengo un metodo para imprimir hoja y tengo lineas para cada ves ques e imprime, configurar la pagina con algunas opciones. Lo que no soy capaz es de donde colocar dentro del metodo, las lineas de configuracio nde pagina, ya las coloque en varios puntos del codigo pero nunca me funciona Este el codigo Private Sub CommandButton1_Click() 'PROBANDO On Error GoTo controlError 'Si sucede un error irá a la línea "controlError" (abajo de todo) Dim estaHoja 'Creo un variable estaHoja = ActiveSheet.Name 'La variable toma el nombre de la hoja activa, para Dim ImprimirHoja 'Creo una variable (aquí se almacenará el nombre de la hoja ingresada en el InputBox). Dim Mensaje, Titulo 'Dos variables para los textos del InputBox Mensaje = "Ingrese el nombre de la hoja a imprimir." 'Solicito nombre de hoja Titulo = " Hoja a imprimir" 'Titulo del Imputbox ImprimirHoja = InputBox(Mensaje, Titulo) If ImprimirHoja = Empty Then Exit Sub 'Si no escribo nada la variables está vacía y salgo. If ImprimirHoja = "Esta" Then ImprimirHoja = estaHoja 'Al dejar "Esta", se toma el nombre de la hoja activa. If MsgBox("Se imprimirá la hoja: " & ImprimirHoja & Chr(13) _ & Chr(13) _ & "¿Desea continuar?", vbExclamation + vbDefaultButton1 + vbYesNo, "Por favor confirme la acción" = vbNo Then Exit Sub Else '---------- Application.PrintCommunication = False Worksheets(estaHoja).Activate With ActiveSheet.PageSetup .PaperSize = xlPaperLetter 'formato carta 'xlPaperA4 A4 oficio pequeño .Orientation = xlLandscape 'orientacion de la hoja horizontal End With Application.PrintCommunication = True '---------- ''Application.Dialogs(xlDialogPrinterSetup).Show 'Selección y configuración de impresora Dim Copias As Integer Solicitar_Copias: Copias = Val(InputBox("Indica el número de copias a imprimir...", "Copias para imprimir", 1)) If Copias = 0 Then MsgBox "Usted canceló la acción.", vbInformation, " Impresion cancelada" Exit Sub ElseIf Not Copias > 0 Then MsgBox "Indica un número mayor que cero." GoTo Solicitar_Copias End If Application.ScreenUpdating = False 'Desactivo la actualización de la pantalla para ver la hoja activa. Worksheets(ImprimirHoja).Activate 'Activo la hoja a imprimir ActiveSheet.PrintOut 'Imprimo Worksheets(estaHoja).Activate 'Vuelvo a la hoja desde donde comencé Application.ScreenUpdating = True 'Activo la actualización de la pantalla para ver la hoja activa. End If Exit Sub controlError: MsgBox "El nombre de hoja ingresado no existe.", vbExclamation, "Acción cancelada" Exit Sub '...y salimos End Sub Las lineas de configuracion son PaperSize y orientacion Mi mail joaely7@yahoo.es | |||
Soporte Tecnico (Visitante) |
Hola amigo Listo Se agrego un codigo que te pide por medio de un InputBox el tipo de hoja pon la palabra: Carta para tipo carta A4 Para tipo A4 Oficio para Tipo Legal saludos 'On Error GoTo controlError 'Si sucede un error irá a la línea "controlError" (abajo de todo) Dim estaHoja As String 'Creo un variable estaHoja = ActiveSheet.Name 'La variable toma el nombre de la hoja activa, para Dim ImprimirHoja As String 'Creo una variable (aquí se almacenará el nombre de la hoja ingresada en el InputBox). Dim Mensaje, Titulo 'Dos variables para los textos del InputBox Mensaje = "Ingrese el nombre de la hoja a imprimir." 'Solicito nombre de hoja Titulo = " Hoja a imprimir" 'Titulo del Imputbox ImprimirHoja = InputBox(Mensaje, Titulo) If ImprimirHoja = Empty Then Exit Sub 'Si no escribo nada la variables está vacía y salgo. If ImprimirHoja = "Esta" Then ImprimirHoja = estaHoja 'Al dejar "Esta", se toma el nombre de la hoja activa. If MsgBox("Se imprimirá la hoja: " & ImprimirHoja & Chr(13) _ & Chr(13) _ & "¿Desea continuar?", vbExclamation + vbDefaultButton1 + vbYesNo, "Por favor confirme la acción" = vbNo Then Exit Sub Else '------------------------------------------------------------------------------------------ ' EMPIEZA EL CODIGO QUE CONFIGURA EL TIPO DE HOJA With ActiveSheet.PageSetup .PrintTitleRows = "" .PrintTitleColumns = "" End With a = InputBox("Ponga el tipo de hoja", "Tipo de Hoja" If a = "Carta" Then ActiveSheet.PageSetup.PrintArea = "" Dim b As XlPaperSize b = xlPaperLetter With ActiveSheet.PageSetup .PaperSize = b End With ElseIf a = "A4" Then ActiveSheet.PageSetup.PrintArea = "" Dim c As XlPaperSize c = xlPaperA4 With ActiveSheet.PageSetup .PaperSize = c End With ElseIf a = "Oficio" Then ActiveSheet.PageSetup.PrintArea = "" Dim d As XlPaperSize d = xlPaperLegal With ActiveSheet.PageSetup .PaperSize = d End With End If 'TERMINA CODIGO DE CONFIGURA EL TIPO DE HOJA 'Application.PrintCommunication = False 'Worksheets(estaHoja).Activate 'With ActiveSheet.PageSetup '.PaperSize = xlPaperLetter 'formato carta 'xlPaperA4 A4 oficio pequeño '.Orientation = xlLandscape 'orientacion de la hoja horizontal 'End With 'Application.PrintCommunication = True '------------------------------------------------------------------ ''Application.Dialogs(xlDialogPrinterSetup).Show 'Selección y configuración de impresora Dim Copias As Integer Solicitar_Copias: Copias = Val(InputBox("Indica el número de copias a imprimir...", "Copias para imprimir", 1)) If Copias = 0 Then MsgBox "Usted canceló la acción.", vbInformation, " Impresion cancelada" Exit Sub ElseIf Not Copias > 0 Then MsgBox "Indica un número mayor que cero." GoTo Solicitar_Copias End If Application.ScreenUpdating = False 'Desactivo la actualización de la pantalla para ver la hoja activa. Worksheets(ImprimirHoja).Activate 'Activo la hoja a imprimir ActiveSheet.PrintOut 'Imprimo Worksheets(estaHoja).Activate 'Vuelvo a la hoja desde donde comencé Application.ScreenUpdating = True 'Activo la actualización de la pantalla para ver la hoja activa. End If Exit Sub 'controlError: MsgBox "El nombre de hoja ingresado no existe.", vbExclamation, "Acción cancelada" Exit Sub '...y salimos End Sub |
Respuesta:
Temas totales: 40
Entradas totales: 95
Usuarios totales: 208
En este momento conectados (usuarios registrados): Nadie