Vous êtes sur la page 1sur 2

MACRO SALVAR DESDE EXCEL EN FORMATO

PDF
Estoy construyendo una hoja de clculo con excel donde se controlan los mens.
Como cada persona paga lo que consume, se imprime una especie de factura donde se le indica lo que
debe.
Tengo el Office 2007 y, por tanto, la opcin de guardar directamente en PDF.
Bien.
El tema es: la macro que me convierta a PDF la parte de la hoja ya la tengo hecha, es la siguiente:
Sub ImpPDF()
' ImpPDF Macro

Range("L4:R37").Select
Range("R37").Activate
Selection.ExportAsFixedFormat Type:=xlTypePDF, Filename:= _
"C:\carpetes\ESCOLA\2008-2009\Diners personal\dinars.pdf", _
Quality:=xlQualityStandard, IncludeDocProperties:=True, IgnorePrintAreas _
:=False, OpenAfterPublish:=False
Range("B19").Select
End Sub

Hasta ah todo bien. Mi pregunta es:
En una celda que en mi caso es la B18 de la hoja "Control" tengo definido el nombre con que me gustaria
quye se guardase el fichero que se va a generar.
por tanto donde pone : "C:\carpetes\ESCOLA\2008-2009\Diners personal\dinars.pdf", _
ese dinars.pdf tendra que ser el contenido de la casilla B18. (ej: juan-09.pdf)
Prueba as: (marco en negrita lo que cambia con respecto a lo que tienes)
Cita:

Sub ImpPDF()
'
' ImpPDF Macro
'

'
dim RutaArchivo as string
RutaArchivo="C:\carpetes\ESCOLA\2008-2009\Diners personal\"+cells(18,2)+".pdf"
Range("L4:R37").Select
Range("R37").Activate
Selection.ExportAsFixedFormat Type:=xlTypePDF, Filename:= _
RutaArchivo, _
Quality:=xlQualityStandard, IncludeDocProperties:=True, IgnorePrintAreas _
:=False, OpenAfterPublish:=False
Range("B19").Select
End Sub



Mira lo unico que debes agregar es una variable que te identifique la celda donde pones el nombre del
archivo.

Sub ImpPDF()
'
' ImpPDF Macro
'
'aqui agregamos la variable, y en la parte de Filename checa como agrego la variable

nombre = Range("B18").Value

Range("L4:R37").Select
Range("R37").Activate
Selection.ExportAsFixedFormat Type:=xlTypePDF, Filename:= _
"C:\carpetes\ESCOLA\2008-2009\Diners personal\" & nombre & ".pdf", _
Quality:=xlQualityStandard, IncludeDocProperties:=True, IgnorePrintAreas _
:=False, OpenAfterPublish:=False
Range("B19").Select
End Sub
Tengo este;

Sub Excel_PDF()
nombre = Range("A1").Value
Range("b2:k34").Select
Range("k34").Activate
Selection.ExportAsFixedFormat Type:=xlTypePDF, FileName:= _
"c:\0\" & nombre & ".pdf" + Cells(7, 7) + "", _
Quality:=xlQualityStandard, IncludeDocProperties:=True, IgnorePrintAreas _
:=False, OpenAfterPublish:=False
Range("B2").Select
End Sub

Me funciona pero en esta linea (nombre = Range("A1").Value) quisiera que fuera el nombre que tiene la
pestaa de la hoja y no de la celda, esto porque puedo crear un boton en cada hoja para la misma macro
y donde pone Range

Y
Otra seria que no me seleccionara celdas, no tuviera un rango de celdas sino el area de impresion;
si tiene datos hasta por ejemplo la linea A2:K200 o A2:B120 o A2:S423 ect ect, es decir rango variable

Y

Si existe el archivo pregunte si quier subscribirlo o darle otro nombre

Vous aimerez peut-être aussi