Problema para exportar a PDF en Excel VBA

Estoy realizando un proyecto donde debo exportar a PDF un archivo de Excel; en una hoja específica tengo 2 páginas, y requiero que en algún momento necesite sólo exportar la primera página pero siempre el archivo me exporta las 2.

2 respuestas

Respuesta
1

Lo más simple es que copies la primera página a una nueva hoja y exportes la nueva hoja a pdf.

Cuando guardas el archivo como PDF en opciones puedes elegir las páginas:


También te paso la macro:

Sub Macro()
  ActiveSheet.ExportAsFixedFormat Type:=xlTypePDF, _
    Filename:=ThisWorkbook.Path & "\archivo.pdf", _
    Quality:=xlQualityStandard, IncludeDocProperties:=True, _
    IgnorePrintAreas:=False, From:=1, To:=1, OpenAfterPublish:=False
End Sub

[No olvidar valorar la respuesta.

Dante buenas noches

Te voy a mostrar un pantallazo de lo que estoy haciendo y el código que utilizo para ejecutar... y no me funciona...

La idea es que si la celda B21 tiene información y la celda B55 está vacía entonces que me exporte sólo la página 1, y si las celdas B21 y B55 hay información me exporte las 2 páginas... utilicé el código que me enviaste y le configuré a cada una las páginas a exportar. ya te envío el código.... 

Dim cliente, cliente1 As String
Dim recibo22 As Integer
Sheets("formato_busqueda").Select
Range("C13").Value = cmbcliente.Value
Range("C15").Value = txtdir.Value
Range("G13").Value = lblfecha.Caption
Range("G15").Value = txtnit.Value
Range("D10").Value = txtcotiza.Value
Range("C47").Value = cmbcliente.Value
Range("C49").Value = txtdir.Value
Range("G47").Value = lblfecha.Caption
Range("G49").Value = txtnit.Value
Range("D44").Value = txtcotiza.Value
cliente1 = cmbcliente.Value
recibo22 = txtcotiza.Value
If Range("B21").Value <> "" And Range("B55").Value = "" Then
ActiveSheet.ExportAsFixedFormat Type:=xlTypePDF, _
Filename:="D:\cotizacion\informes\Cotizaciones\Cotización " & cliente1 & " - " & txtcotiza.Value, _
Quality:=xlQualityStandard, IncludeDocProperties:=True, _
IgnorePrintAreas:=False, From:=1, To:=1, OpenAfterPublish:=True
Else
If Range("B21").Value <> "" And Range("B55").Value <> "" Then
ActiveSheet.ExportAsFixedFormat Type:=xlTypePDF, _
Filename:="D:\cotizacion\informes\Cotizaciones\Cotización " & cliente1 & " - " & txtcotiza.Value, _
Quality:=xlQualityStandard, IncludeDocProperties:=True, _
IgnorePrintAreas:=False, From:=1, To:=2, OpenAfterPublish:=True
End If
End If

Muchas gracias por tu ayuda...

Prueba así:

  Dim cliente, cliente1 As String
  Dim recibo22 As Integer
  Dim n As Long
  '
  Sheets("formato_busqueda").Select
  Range("C13").Value = cmbcliente.Value
  Range("C15").Value = txtdir.Value
  Range("G13").Value = lblfecha.Caption
  Range("G15").Value = txtnit.Value
  Range("D10").Value = txtcotiza.Value
  Range("C47").Value = cmbcliente.Value
  Range("C49").Value = txtdir.Value
  Range("G47").Value = lblfecha.Caption
  Range("G49").Value = txtnit.Value
  Range("D44").Value = txtcotiza.Value
  cliente1 = cmbcliente.Value
  recibo22 = txtcotiza.Value
  If Range("B21").Value <> "" And Range("B55").Value = "" Then n = 1
  If Range("B21").Value <> "" And Range("B55").Value <> "" Then n = 2
  ActiveSheet.ExportAsFixedFormat Type:=xlTypePDF, _
    Filename:="D:\cotizacion\informes\Cotizaciones\Cotización " & cliente1 & " - " & txtcotiza.Value, _
    Quality:=xlQualityStandard, IncludeDocProperties:=True, _
    IgnorePrintAreas:=False, From:=1, To:=n, OpenAfterPublish:=True

.[No olvidar valorar...

¡Dante, muchas gracias por tu ayuda, se que te tomaste el tiempo para ayudarme con el inconveniente que relaté en este espacio; pero la realidad es que no me funcionó el código que me enviaste, por eso no me atreví a darle una valoración positiva.  De todas formas te agradezco por querer ayudarme...

Bendiciones...

Respuesta

Añado que la página I lovePDF, gratuita, te permite hacer toda clase de conversiones, y operaciones con los ficheros, rápida y fiable, que utilizo a menudo.

https://www.ilovepdf.com/es 

¡Muchas Gracias Francisco por tu aporte! la idea es que desde un botón en un formulario de Excel me haga ese proceso y no tenga que recurrir a una página que es excelente, para hacer este proceso,  ya que esta cotización es para una Empresa y ellos requieren que desde ese botón se haga todo... de todas formas te agradezco por quererme ayudar.. Bendiciones...

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas