Módulo 10, Lección 1. Ejemplo

Curso Prompt para Excel – Lección 10.1

📘 Curso Prompt para Excel – Módulo 10: Técnicas Avanzadas

🔟1️⃣ Prompting avanzado para automatización multi-etapa

En procesos complejos, muchas tareas requieren ser ejecutadas en etapas o fases, donde la salida de una fase es la entrada de la siguiente. En esta lección aprenderás a crear prompts que especifiquen claramente cada etapa, incluyan validaciones y condiciones, y pidan que se generen macros coordinadas que funcionen en conjunto.

🧩 Aspectos clave para tu prompt:
1. Describir cada fase del proceso con detalle.
2. Definir qué datos entran y qué resultados se esperan.
3. Incluir validaciones o controles condicionales en cada etapa.
4. Pedir comentarios claros en el código generado.
5. Solicitar interacción con el usuario para confirmar o corregir datos.

📌 Ejemplo práctico

A continuación tienes una macro que gestiona un proceso de ventas dividido en cuatro fases:

  • Fase 1: Validación de datos (nombre y venta positiva).
  • Fase 2: Cálculo automático de comisión (5%).
  • Fase 3: Resumen total de ventas y comisiones con mensaje al usuario.
  • Fase 4: Confirmación para guardar los datos.
Sub ProcesoVentasMultiEtapa()
    ' 📌 Macro para proceso multi-etapa de ventas con validaciones y resumen
    
    Dim wsDatos As Worksheet
    Dim ultimaFila As Long
    Dim i As Long
    Dim ventasValidas As Boolean
    Dim totalVentas As Double
    Dim totalComisiones As Double
    Dim respuesta As VbMsgBoxResult
    
    Set wsDatos = ThisWorkbook.Sheets("Ventas")
    
    ' Fase 1: Validar datos (asumimos columnas: A=ID, B=Nombre, C=Venta, D=Comision)
    ultimaFila = wsDatos.Cells(wsDatos.Rows.Count, "A").End(xlUp).Row
    ventasValidas = True
    
    For i = 2 To ultimaFila
        ' Validar que venta sea número positivo
        If Not IsNumeric(wsDatos.Cells(i, "C").Value) Or wsDatos.Cells(i, "C").Value <= 0 Then
            MsgBox "Error en fila " & i & ": La venta debe ser un número positivo.", vbExclamation
            ventasValidas = False
            Exit For
        End If
        ' Validar que el nombre no esté vacío
        If Trim(wsDatos.Cells(i, "B").Value) = "" Then
            MsgBox "Error en fila " & i & ": El nombre del vendedor es obligatorio.", vbExclamation
            ventasValidas = False
            Exit For
        End If
    Next i
    
    If Not ventasValidas Then
        MsgBox "Corrija los errores antes de continuar.", vbCritical
        Exit Sub
    End If
    
    ' Fase 2: Calcular comisión (ejemplo: 5% sobre venta)
    For i = 2 To ultimaFila
        wsDatos.Cells(i, "D").Value = wsDatos.Cells(i, "C").Value * 0.05
    Next i
    
    ' Fase 3: Calcular totales
    totalVentas = Application.WorksheetFunction.Sum(wsDatos.Range("C2:C" & ultimaFila))
    totalComisiones = Application.WorksheetFunction.Sum(wsDatos.Range("D2:D" & ultimaFila))
    
    ' Mostrar resumen al usuario
    MsgBox "Total ventas: $" & Format(totalVentas, "#,##0.00") & vbCrLf & _
           "Total comisiones: $" & Format(totalComisiones, "#,##0.00"), vbInformation, "Resumen de Ventas"
    
    ' Fase 4: Confirmación antes de guardar
    respuesta = MsgBox("¿Desea guardar los datos con las comisiones calculadas?", vbYesNo + vbQuestion, "Confirmar")
    
    If respuesta = vbYes Then
        ThisWorkbook.Save
        MsgBox "Datos guardados exitosamente.", vbInformation
    Else
        MsgBox "Operación cancelada. No se guardaron los datos.", vbExclamation
    End If
End Sub
  

No hay comentarios:

Publicar un comentario

Políticas de Privacidad