Generar pdf de hoja seleccionada en Combobox

Tengo un archivo con muchas hojas y un formulario con un Combobox.

Quisiera saber como generar desde la selección de un Combobox donde se encuontarian listadas las hojas se genere un pdf de la hoja seleccionada.

Si gustan les envío el archivo por mail.

Hasta pronto.

1 Respuesta

Respuesta
1

H o l a:

Te paso la macro

Private Sub CommandButton1_Click()
If ComboBox1.ListIndex = -1 Then
MsgBox "Seleccione una hoja", vbInformation, "AVISO"
Exit Sub
End If
Set h = Sheets(ComboBox1.ListIndex)
Application.ScreenUpdating = False
Application.DisplayAlerts = False
Ruta = ThisWorkbook.Path & "\"
    nomb = h.Name
h.ExportAsFixedFormat Type:=xlTypePDF, _
Filename:=Ruta & nomb & ".pdf", _
Quality:=xlQualityStandard, IncludeDocProperties:=True, _
IgnorePrintAreas:=False, OpenAfterPublish:=True
MsgBox "Se ha guardado la hoja en PDF", vbInformation
Unload Me
End Sub

Esto para listar las hojas en el Combobox1

Private Sub UserForm_Activate()
 For Each h In Sheets
        ComboBox1.AddItem h.Name
    Next
End Sub

Recuerda valorar para finalizar Saludos!!

Muchas gracias por la respuesta.

Al momento de ejecutar con el botón para generar el PDF después de elegirlo en el Combobox me surge Error 9 (subíndice fuera de intervalo) Adjunto la imagen.

¿

Podrás ayudarme nuevamente?

Macro actualizada

If ComboBox1.ListIndex = -1 Then
MsgBox "Seleccione una hoja", vbInformation, "AVISO"
Exit Sub
End If
Set h = Sheets(ComboBox1.ListIndex + 1)
Application.ScreenUpdating = False
Application.DisplayAlerts = False
Ruta = ThisWorkbook.Path & "\"
    nomb = h.Name
h.ExportAsFixedFormat Type:=xlTypePDF, _
Filename:=Ruta & nomb & ".pdf", _
Quality:=xlQualityStandard, IncludeDocProperties:=True, _
IgnorePrintAreas:=False, OpenAfterPublish:=True
MsgBox "Se ha guardado la hoja en PDF", vbInformation
Unload Me

recuerda cambiar la valoración y seguir aportando saludos!

Adriel.

Pude ver que agregaste (-1) en una parte de la rutina y sin embargo ahora sale un error 5.

Si quieres te envío el archivo por mail.

Gracias.

Set h = Sheets(ComboBox1.ListIndex + 1)

le agregué + 1  a ListIndex. 

Copia toda la macro que te envié.

Mi email es [email protected]

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas