Ejercicio 4 Prompt Excel

Ejercicio 4 – Prompt para Excel

📘 Ejercicio 4 – Generación de cartas personalizadas desde Excel a Word

📌 Planteamiento del problema:

Una empresa quiere automatizar la creación de **cartas personalizadas** a sus clientes morosos. El objetivo es que, a partir de los datos en Excel, se genere un documento Word para cada cliente.

  • ✅ En la hoja Clientes, hay columnas con Nombre, Dirección y Saldo pendiente.
  • ✅ La macro debe abrir Word, crear una carta para cada cliente con deuda y completar los datos dinámicamente.
  • ✅ Cada carta debe guardarse como PDF con el nombre del cliente.
  • ✅ Todos los PDFs deben guardarse en la carpeta “Documentos”.

👉 Tu trabajo es generar un prompt lo bastante claro y completo para que la IA devuelva la macro VBA correcta.

"Escribe una macro en VBA que:
1️⃣ Lea en la hoja 'Clientes' los datos de Nombre, Dirección y Saldo pendiente.
2️⃣ Cree una carta personalizada en Word para cada cliente con deuda.
3️⃣ Inserte los datos de cada cliente en el texto de la carta.
4️⃣ Guarde cada carta como PDF con el nombre del cliente en la carpeta Documentos.
5️⃣ Incluya comentarios explicativos en cada bloque de código."
  
Sub CartasPersonalizadas()
    Dim WordApp As Object, Doc As Object
    Dim ws As Worksheet
    Dim i As Long
    Dim nombre As String, direccion As String, saldo As Double
    Dim ruta As String
    
    Set ws = Sheets("Clientes")
    Set WordApp = CreateObject("Word.Application")
    WordApp.Visible = True
    
    For i = 2 To ws.Cells(ws.Rows.Count, "A").End(xlUp).Row
        If ws.Cells(i, 3).Value > 0 Then  ' Solo clientes con deuda
            nombre = ws.Cells(i, 1).Value
            direccion = ws.Cells(i, 2).Value
            saldo = ws.Cells(i, 3).Value
            
            ' Crear documento
            Set Doc = WordApp.Documents.Add
            
            ' Escribir contenido
            Doc.Content.Text = "Estimado/a " & nombre & "," & vbCrLf & vbCrLf & _
                "Le informamos que su saldo pendiente es de $" & saldo & "." & vbCrLf & _
                "Dirección registrada: " & direccion & vbCrLf & vbCrLf & _
                "Le agradecemos regularizar su situación lo antes posible." & vbCrLf & vbCrLf & _
                "Atentamente," & vbCrLf & "Departamento de Cobranzas"
            
            ' Guardar como PDF
            ruta = Environ("USERPROFILE") & "\Documents\" & nombre & "_Carta.pdf"
            Doc.ExportAsFixedFormat ruta, 17
            
            ' Cerrar documento
            Doc.Close False
        End If
    Next i
    
    MsgBox "✅ Todas las cartas fueron generadas y guardadas como PDF."
End Sub
  

No hay comentarios:

Publicar un comentario

Políticas de Privacidad