Crear un formulario Vba para imprimir!!

12/06/2007 - 23:55 por Claudio A. Fuentes D. | Informe spam
Saludos,
Hace un tiempo me acuerdo que participe aqui y en ese momento necesitaba lo
que requiero ahora, un maestro de aqui me enseño hacer un formulario en VBA
que me envia a imprimir las hojas que yo quiero que imprimir sin usar (CTRL
y marcar una por una) era una pequeña aplicación hecha en un formulario que
me tomaba todas las hojas que yo tenia activas y me daba la opcion de
pinchar y despinchar.tambien tenia un boton para imprimir directo en e
mismo formulario y para pinchar todo de una vez o despinchar todo de una
vez..haber si alguien me puede ayudar con esto!!!!

Lo que pasa es que tengo muchas hojas activas..y necesito eso para
automatizar..!!

espero su ayuda!!!
Atte.
CFD.-
 

Leer las respuestas

#1 Juan M
13/06/2007 - 11:14 | Informe spam
"Claudio A. Fuentes D." escribió en el mensaje
Saludos,
Hace un tiempo me acuerdo que participe aqui y en ese momento necesitaba
lo que requiero ahora, un maestro de aqui me enseño hacer un formulario en
VBA que me envia a imprimir las hojas que yo quiero que imprimir sin usar
(CTRL y marcar una por una) era una pequeña aplicación hecha en un
formulario que me tomaba todas las hojas que yo tenia activas y me daba la
opcion de pinchar y despinchar.tambien tenia un boton para imprimir
directo en e mismo formulario y para pinchar todo de una vez o despinchar
todo de una vez..haber si alguien me puede ayudar con esto!!!!

Lo que pasa es que tengo muchas hojas activas..y necesito eso para
automatizar..!!

espero su ayuda!!!
Atte.
CFD.-



Hola Claudio,

A ver si lo siguiente te vale.

Abre el editor de VBA (Alt+F11) e inserta un formulario (userform).

En el formulario inserta los siguientes controles:
un listbox (listbox1)
un boton de comando (commandbutton1)
otro boton de comando (commandbutton2)

Agrega los siguientes códigos:

Para el primer botón (manda imprimir las hojas seleccionadas)

Private Sub CommandButton1_Click()
Dim i As Integer
For i = 0 To ListBox1.ListCount - 1
If ListBox1.Selected(i) Then
Worksheets(ListBox1.List(i)).PrintOut
DoEvents
Debug.Print ListBox1.List(i) & "imprimida"
End If
Next i
End Sub

en el segundo boton (para salir de la aplicación)

Private Sub CommandButton2_Click()
Unload Me
End Sub

Al inicializar el formulario carga el listbox

Private Sub UserForm_Initialize()
Dim Hoja As Worksheet

ListBox1.MultiSelect = fmMultiSelectMulti
CommandButton1.Caption = "Imprimir"
CommandButton2.Caption = "Salir"
For Each Hoja In ThisWorkbook.Worksheets
ListBox1.AddItem (Hoja.Name)
Next Hoja

Set Hoja = Nothing
End Sub

Ahora inserta un módulo nuevo

y escribe lo siguiente:

Sub test()
UserForm1.Show
End Sub

Para ejecutarlo, desde excel pulsa Alt+F8 y ejecuta la macro test
Una cosa, haz pruebas con pocas hojas (al principio)
Las hojas ya deben estar configuradas para imprimir como tu quieres.

Un saludo,
Juan

Preguntas similares