Macro para que al exportar mediante botón, me pregunte en qué formato lo deseo exportar (EXCEL o PDF)

Tengo un excel en el cual ya tengo macros armadas con los códigos para exportar en formato .xlsx y también para exportar en formato .PDF.

Ambas las ejecuto mediante botones independientes.

La idea es que el lugar de tener tantos botones, tener solo uno "EXPORTAR" y que a continuación me aparezca un formulario (el cual ya creé) preguntandome en qué formato lo deseo exportar, siendo las opciones las dos ya expuestas.

Yo ya creé los códigos como dije, y creé el formulario con las opciones, la cuestión es que no se como al clickear un botón me accione la macro de exportación.

Supongo que es al clickear "Excel" llama a la macro de exportación de excel.

No sé, si alguno es tan amable y puede ayudarme, le adjunto un link con el archivo pronto.

Desde ya muchas gracias.

https://drive.google.com/file/d/13wAhlXIBQqb9hEq-wVxCfbGoFjoYGCZm/view?usp=drivesdk 

1 Respuesta

Respuesta
1

H o l a 

prueba así

Private Sub Aceptar_Click()
''
If ListBox1.ListIndex = -1 Then Exit Sub
If Opciones.ListIndex = -1 Then Exit Sub
'
        Select Case Opciones.ListIndex
        Case 0
            Application.ScreenUpdating = False
            Application.DisplayAlerts = False
            '
            Sheets(ListBox1.ListIndex + 1).Copy
            Cells.Copy
            Range("A1").PasteSpecial Paste:=xlPasteValues
            ruta = ThisWorkbook.Path & "\"
            nombre = "Reporte"
            fecha = Format(Date, "dd-mm")
            ActiveWorkbook.SaveAs Filename:=ruta & nombre & fecha & ".xlsx", _
                FileFormat:=xlOpenXMLWorkbook, CreateBackup:=False
            MsgBox "fin", vbInformation, "AVISO"
            ActiveWorkbook.Close
            ActiveWorkbook.Close False
        Case 1
                ruta = ThisWorkbook.Path & "\"
                nombre = "Reporte"
            Sheets(ListBox1.ListIndex + 1).ExportAsFixedFormat Type:=xlTypePDF, Filename:= _
            ruta & nombre & ".pdf", Quality:= _
            xlQualityStandard, IncludeDocProperties:=True, IgnorePrintAreas:=False, _
            OpenAfterPublish:=True
         MsgBox "Se ha guardado correctamente", vbInformation
        End Select
End Sub

Sub UserForm_Activate()
For Each h In Sheets
    ListBox1.AddItem h.Name
Next h
'
Opciones. AddItem "Excel"
Opciones. AddItem "PDF"
End Sub

Buenas gracias por la respuesta, supuse que el primer código es para el botón y el segundo es dentro del formulario ya creado.

Al ejecutar el primer código me da error en la siguiente línea,

If ListBox1.ListIndex = -1 Then

Crea un listbox en tu formulario

¡Gracias! La creé y me da error en la línea siguiente,

Opciones. AddItem "Excel"

Pasa tu email y te envío el archivo

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas