Lic. informatica

Solo disponible en BuenasTareas
  • Páginas : 6 (1461 palabras )
  • Descarga(s) : 0
  • Publicado : 24 de agosto de 2012
Leer documento completo
Vista previa del texto
Macro VBA Excel para imprimir adecuadamente
A veces vale la pena incluir una función para que el usuario del libro pueda imprimir cómodamente (y
seguro), por ejemplo desde un botón. De esta manera mantenemos el control sobre lo que se va a
imprimir, y de los parámetros que se mandarán a la impresora.
Abajo encontrarás sencillos ejemplos de la aplicación de cómo imprimir desde Excel VBA:
Selección



Hojas seleccionadas



Todas las hojas

Primero ajustamos los parámetros de la impresión, el apartado PageSetup. Luego se imprime con el
método PrintOut.

Marcado VBA para imprimir las celdas seleccionadas
Sub Imprimir_seleccion()
'preparar la hoja para la impresión
With ActiveSheet.PageSetup
.PrintArea = ""
.Orientation = xlPortrait 'xlLandscape
.PaperSize =xlPaperA4 'formato A4
.BlackAndWhite = False 'incluir colores o no
.FitToPagesWide = 1 'reduce el tamaño de la hoja (ancho)
.FitToPagesTall = 1 'reduce el tamaño de la hoja (alto)
.CenterHorizontally = False 'centrar horizontalmente
.CenterVertically = False 'centrar verticalmente
End With
'imprimir las celdas seleccionadas (1 copia)
ActiveWindow.Selection.PrintOut copies:=1, collate:=TrueEnd Sub

Código VBA para imprimir las hojas seleccionadas
Sub Imprimir_seleccion()
'preparar la hoja para la impresión
With ActiveSheet.PageSetup
.PrintArea = ""
.Orientation = xlPortrait 'xlLandscape
.PaperSize = xlPaperA4 'formato A4
.BlackAndWhite = False 'incluir colores o no
.FitToPagesWide = 1 'reduce el tamaño de la hoja (ancho)
.FitToPagesTall = 1 'reduce el tamaño de la hoja(alto)
.CenterHorizontally = False 'centrar horizontalmente
.CenterVertically = False 'centrar verticalmente
End With
'imprimir las celdas seleccionadas (1 copia)
ActiveWindow.SelectedSheets.PrintOut copies:=1, collate:=True
End Sub

Código VBA para imprimir todas las hojas del libro
Sub Imprimir_seleccion()
'preparar la hoja para la impresión
'bucle que repasa todas las hojas
For EachWorksheet In ActiveWorkbook.Sheets
With ActiveSheet.PageSetup
.PrintArea = ""
.Orientation = xlPortrait 'xlLandscape
.PaperSize = xlPaperA4 'formato A4
.BlackAndWhite = False 'incluir colores o no
.FitToPagesWide = 1 'reduce el tamaño de la hoja (ancho)
.FitToPagesTall = 1 'reduce el tamaño de la hoja (alto)
.CenterHorizontally = False 'centrar horizontalmente
.CenterVertically = False'centrar verticalmente
End With
Next Worksheet 'fin del bucle
'imprimir las celdas seleccionadas (1 copia)
ActiveWorkbook.PrintOut From:=1, To:=1, copies:=1, collate:=True
End Sub

Crear una barra de progreso en Excel
Un ejemplo de una macro VBA de como crear una barra de progreso (progress bar) para incluir en
nuestras aplicaciones y plantillas Excel.

Crear una barra de progreso en ExcelVBA.
Option Explicit
Sub BarraDeProgreso()
Dim R As Integer
Dim MT As Double
For R = 1 To 180
MT = Timer
Do
Loop While Timer - MT < 0.05
Application.StatusBar = "Progress: " & R & " de 180: " & _
Format(R / 180, "Percent") & " --- " & "Cumplimiento"
DoEvents
Next R
Application.StatusBar = False
End Sub

Messagebox y Excel VBA
Las messagebox son muy útiles (y fáciles de usar), ycrea una interfaz entre el usuario y el programa.
Sirven para


Mostrar información al usuario



Recibir información del usuario



Devolver información del usuario

Construcción sintáctica de la messagebox
Msgbox "Mensaje", Botones/íconos, "Título"

o en el caso de devolver información
Respuesta = Msgbox("Mensaje", Botones/íconos, "Título")

Nota las paréntesis en lasegunda construcción.

Mensaje
Cualquier tipo de texto. Para crear un salto de línea empleamos el carácter vbCrLf.
Actualización terminada:" & vbCrLf & "- Importación de datos de venta.

Botones
Si quieres puedes añadir cualquier de estos cuatro botones (si no pones nada Excel te pondrá vbOk Only
por defecto).
vbOkOnly
vbOkCancel
vbYesNoCancel
vbAbortRetryIgnore

Iconos
Puedes elegir...
tracking img