๐ Ejercicio 2 – Filtrar y exportar datos a PDF con un prompt
๐ Planteamiento del problema:
Una empresa necesita generar **reportes en PDF** de los clientes **VIP**. Para lograrlo, se requiere una macro que:
- ✅ Filtre en la hoja "Clientes" solo los clientes con estado "VIP".
- ✅ Copie ese filtro a una hoja nueva llamada "Reporte VIP".
- ✅ Exporte la hoja "Reporte VIP" como un archivo PDF.
- ✅ Guarde el PDF en la carpeta “Documentos” del usuario.
๐ Tu objetivo es escribir un prompt que indique claramente estos pasos para que la IA genere la macro VBA completa.
"Genera una macro en VBA que: 1️⃣ Filtre en la hoja 'Clientes' solo los clientes con estado 'VIP'. 2️⃣ Copie los datos filtrados a una nueva hoja llamada 'Reporte VIP' (eliminando la anterior si existe). 3️⃣ Exporte la hoja 'Reporte VIP' como PDF. 4️⃣ Guarde el archivo PDF en la carpeta Documentos del usuario con el nombre 'Reporte_VIP.pdf'."
Sub ExportarVIP()
Dim ws As Worksheet, reporte As Worksheet
Dim ruta As String
' Configurar hoja Clientes
Set ws = Sheets("Clientes")
' Quitar filtros previos
On Error Resume Next
ws.ShowAllData
On Error GoTo 0
' Aplicar filtro para VIP
ws.Range("A1:D1").AutoFilter Field:=3, Criteria1:="VIP"
' Eliminar hoja anterior si existe
Application.DisplayAlerts = False
On Error Resume Next
Sheets("Reporte VIP").Delete
On Error GoTo 0
Application.DisplayAlerts = True
' Crear hoja nueva
Set reporte = Sheets.Add
reporte.Name = "Reporte VIP"
' Copiar datos filtrados
ws.Range("A1:D100").SpecialCells(xlCellTypeVisible).Copy reporte.Range("A1")
' Exportar a PDF
ruta = Environ("USERPROFILE") & "\Documents\Reporte_VIP.pdf"
reporte.ExportAsFixedFormat Type:=xlTypePDF, Filename:=ruta, Quality:=xlQualityStandard
MsgBox "✅ Reporte PDF generado en: " & ruta
End Sub
No hay comentarios:
Publicar un comentario