📘 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