Crear un boton comando para imprimir excel 2007

14/11/2009 - 02:52 por Silvia | Informe spam
Tengo un libro de excel con varias hojas, en una entro los datos y las otras
se rellenan con los datos introducidos. Como se crea un boton comando en la
hoja de entrada de datos para que me imprima la otra hoja. Gracias.

Preguntas similare

Leer las respuestas

#6 Héctor Miguel
16/11/2009 - 19:13 | Informe spam
hola, Silvia !

Te adjunto la macro que utilizo para generar un pdf, y lo que quiero es
que me pregunte con que nombre y donde quiero guardar el pdf que creara.
En excel 2007 te permite guardar como pdf sin impresora virtual si no me equivoco.



por impersora "virtual" me refiero a que NO existe una impresora "fisica" instalada en el sistema
las aplicaciones utilizan "controladores" para hacer (emulando) una salida "impresa" del documento

para que la macro "solicite" el nombre de salida del documento (generalmente) se usa un InputBox
que puedes asignar a una variable (previamente declarada) que se pasa como parte de la instruccion
y la impresion se hara en la carpeta actual (por omision o la ultima detectada de documentos abiertos)
o puedes incluir alguna ruta especifica como parte de la instruccion (o agregarla a la variable del nombre)

prueba con una macro +/- como la siguiente (adapta/corrige/... como creas mas conveniente)
nota: da respuesta al inputbox SIN incluir la EXTension (pdf) para el nombre del archivo (se hace por codigo)

Sub Genera_pdf()
Dim Ruta As String, Nuevo_nombre As String
Ruta = "c:\documents and settings\administrador\escritorio\"
Nuevo_nombre = Trim(InputBox("Ingresa el nombre para el *.PDF"))
If Nuevo_nombre = "" Then Exit Sub Else Nuevo_nombre = Ruta & Nuevo_nombre & ".pdf"
Worksheets("oferta").ExportAsFixedFormat Type:=xlTypePDF, Filename:=Nuevo_nombre, _
Quality:=xlQualityStandard, IncludeDocProperties:=True, IgnorePrintAreas:=False, _
From:=1, To:=1, OpenAfterPublish:=False
End Sub

saludos,
hector.

__ el codigo expuesto __
Sub Boton22_Haga_clic_en()
Sheets("OFERTA").Select
ActiveSheet.ExportAsFixedFormat Type:=xlTypePDF, Filename:= _
"C:\Documents and Settings\Administrador\Escritorio\Formato oferta_1.pdf", _
Quality:=xlQualityStandard, IncludeDocProperties:=True, IgnorePrintAreas _
:=False, From:=1, To:=1, OpenAfterPublish:=False
Sheets("INTRODUCIR DATOS").Select
End Sub
Respuesta Responder a este mensaje
#7 Silvia
17/11/2009 - 11:04 | Informe spam
Hola Héctor,

Muchas gracias, funciona pero no soy capaz de insertar la variable para que
también me pida donde lo quiero guardar.

Gracias por ayudarme,
Silvia

"Héctor Miguel" escribió:

hola, Silvia !

> Te adjunto la macro que utilizo para generar un pdf, y lo que quiero es
> que me pregunte con que nombre y donde quiero guardar el pdf que creara.
> En excel 2007 te permite guardar como pdf sin impresora virtual si no me equivoco.

por impersora "virtual" me refiero a que NO existe una impresora "fisica" instalada en el sistema
las aplicaciones utilizan "controladores" para hacer (emulando) una salida "impresa" del documento

para que la macro "solicite" el nombre de salida del documento (generalmente) se usa un InputBox
que puedes asignar a una variable (previamente declarada) que se pasa como parte de la instruccion
y la impresion se hara en la carpeta actual (por omision o la ultima detectada de documentos abiertos)
o puedes incluir alguna ruta especifica como parte de la instruccion (o agregarla a la variable del nombre)

prueba con una macro +/- como la siguiente (adapta/corrige/... como creas mas conveniente)
nota: da respuesta al inputbox SIN incluir la EXTension (pdf) para el nombre del archivo (se hace por codigo)

Sub Genera_pdf()
Dim Ruta As String, Nuevo_nombre As String
Ruta = "c:\documents and settings\administrador\escritorio\"
Nuevo_nombre = Trim(InputBox("Ingresa el nombre para el *.PDF"))
If Nuevo_nombre = "" Then Exit Sub Else Nuevo_nombre = Ruta & Nuevo_nombre & ".pdf"
Worksheets("oferta").ExportAsFixedFormat Type:=xlTypePDF, Filename:=Nuevo_nombre, _
Quality:=xlQualityStandard, IncludeDocProperties:=True, IgnorePrintAreas:=False, _
From:=1, To:=1, OpenAfterPublish:=False
End Sub

saludos,
hector.

__ el codigo expuesto __
> Sub Boton22_Haga_clic_en()
> Sheets("OFERTA").Select
> ActiveSheet.ExportAsFixedFormat Type:=xlTypePDF, Filename:= _
> "C:\Documents and Settings\Administrador\Escritorio\Formato oferta_1.pdf", _
> Quality:=xlQualityStandard, IncludeDocProperties:=True, IgnorePrintAreas _
> :=False, From:=1, To:=1, OpenAfterPublish:=False
> Sheets("INTRODUCIR DATOS").Select
> End Sub


.

Respuesta Responder a este mensaje
#8 Héctor Miguel
18/11/2009 - 06:15 | Informe spam
hola, Silvia !

... funciona pero no soy capaz de insertar la variable para que tambien me pida donde lo quiero guardar...



prueba con esta modificacion...

Sub Genera_pdf()
Dim Ruta As String, Titulo As String, Nuevo_nombre As String
Titulo = "Selecciona por favor la ruta para guardar el *.PDF..."
On Error Resume Next ' por si el usuario pulsa {esc} y no selecciona nada :)) '
With CreateObject("shell.application")
Ruta = .BrowseForFolder(0, Titulo, 0, "c:").Items.Item.Path
End With: On Error GoTo 0
If Ruta = "" Then Exit Sub _
Else Nuevo_nombre = Trim(InputBox("Ingresa el nombre para el *.PDF"))
If Nuevo_nombre = "" Then Exit Sub _
Else Nuevo_nombre = Ruta & Nuevo_nombre & ".pdf"
Worksheets("oferta").ExportAsFixedFormat _
Type:=xlTypePDF, Filename:=Nuevo_nombre, _
Quality:=xlQualityStandard, IncludeDocProperties:=True, _
IgnorePrintAreas:=False, From:=1, To:=1, OpenAfterPublish:=False
End Sub

saludos,
hector.
Respuesta Responder a este mensaje
#9 Silvia
18/11/2009 - 23:35 | Informe spam
Hola Héctor,

Muchas gracias. Si la dejo como esta funciona, pero si escojo otra carpeta
para guardar el archivo no funciona.

Por ejemplo quiero guardar un archivo al que llamaré oferta 12 en "mis
documentos", en el cuadro de carpetas le digo que me lo grabe en mis
documentos, y luego le doy el nombre al archivo. Entonces el archivo me
aparece en la carpeta superior (C:\Documents and Settings\Administrador) y el
archivo aparece bajo el nombre "Mis documentosoferta 12".

Necesito ayuda para solucionarlo y poder escoger la ruta correctamente.

Muchas gracias de antemano por tu ayuda. Silvia

"Héctor Miguel" wrote:

hola, Silvia !

> ... funciona pero no soy capaz de insertar la variable para que tambien me pida donde lo quiero guardar...

prueba con esta modificacion...

Sub Genera_pdf()
Dim Ruta As String, Titulo As String, Nuevo_nombre As String
Titulo = "Selecciona por favor la ruta para guardar el *.PDF..."
On Error Resume Next ' por si el usuario pulsa {esc} y no selecciona nada :)) '
With CreateObject("shell.application")
Ruta = .BrowseForFolder(0, Titulo, 0, "c:").Items.Item.Path
End With: On Error GoTo 0
If Ruta = "" Then Exit Sub _
Else Nuevo_nombre = Trim(InputBox("Ingresa el nombre para el *.PDF"))
If Nuevo_nombre = "" Then Exit Sub _
Else Nuevo_nombre = Ruta & Nuevo_nombre & ".pdf"
Worksheets("oferta").ExportAsFixedFormat _
Type:=xlTypePDF, Filename:=Nuevo_nombre, _
Quality:=xlQualityStandard, IncludeDocProperties:=True, _
IgnorePrintAreas:=False, From:=1, To:=1, OpenAfterPublish:=False
End Sub

saludos,
hector.


.

Respuesta Responder a este mensaje
#10 Héctor Miguel
19/11/2009 - 18:58 | Informe spam
hola, Silvia !

Si la dejo como esta funciona, pero si escojo otra carpeta para guardar el archivo no funciona.
Por ejemplo quiero guardar un archivo al que llamare oferta 12 en "mis documentos"
en el cuadro de carpetas le digo que me lo grabe en mis documentos, y luego le doy el nombre al archivo.
Entonces el archivo me aparece en la carpeta superior (C:\Documents and Settings\Administrador)
y el archivo aparece bajo el nombre "Mis documentosoferta 12"...



tienes razon, en la propuesta de codigo me hizo falta "proteger" un separador de rutas ( \ )
cambia esta parte:

If Nuevo_nombre = "" Then Exit Sub _
Else Nuevo_nombre = Ruta & Nuevo_nombre & ".pdf"

por esta otra:

If Nuevo_nombre = "" Then Exit Sub _
Else Nuevo_nombre = Ruta & "\" & Nuevo_nombre & ".pdf"

saludos,
hector.

__ propuesta original __
Sub Genera_pdf()
Dim Ruta As String, Titulo As String, Nuevo_nombre As String
Titulo = "Selecciona por favor la ruta para guardar el *.PDF..."
On Error Resume Next ' por si el usuario pulsa {esc} y no selecciona nada :)) '
With CreateObject("shell.application")
Ruta = .BrowseForFolder(0, Titulo, 0, "c:").Items.Item.Path
End With: On Error GoTo 0
If Ruta = "" Then Exit Sub _
Else Nuevo_nombre = Trim(InputBox("Ingresa el nombre para el *.PDF"))
If Nuevo_nombre = "" Then Exit Sub _
Else Nuevo_nombre = Ruta & Nuevo_nombre & ".pdf"
Worksheets("oferta").ExportAsFixedFormat _
Type:=xlTypePDF, Filename:=Nuevo_nombre, _
Quality:=xlQualityStandard, IncludeDocProperties:=True, _
IgnorePrintAreas:=False, From:=1, To:=1, OpenAfterPublish:=False
End Sub
Respuesta Responder a este mensaje
Ads by Google
Help Hacer una preguntaSiguiente AnteriorRespuesta Tengo una respuesta
Search Busqueda sugerida