Búsqueda de objetivos de VBA

Búsqueda de objetivos en Excel VBA

Goal Seek es la herramienta disponible en excel VBA que nos ayuda a encontrar el número requerido que se debe lograr para llegar al objetivo establecido.

Por ejemplo, es un estudiante y se ha fijado como objetivo una puntuación media del 90% en seis materias disponibles. A partir de ahora, ha completado 5 exámenes y solo le queda una asignatura, sus puntajes anticipados de cinco asignaturas completadas son 89, 88, 91, 87, 89 y 90. Ahora quiere saber cuánto debe obtener en el examen final para alcanzar el objetivo de porcentaje medio global del 90%.

Esto se puede hacer usando GOAL SEEK en la hoja de trabajo de Excel, así como en la codificación VBA. Veamos cómo funciona con VBA.

Sintaxis de búsqueda de objetivos de VBA

En VBA Goal Seek, necesitamos especificar el valor que estamos cambiando y llegar al resultado final objetivo, así que proporcione la referencia de celda usando el objeto VBA RANGE, luego podemos acceder a la opción GOAL SEEK.

A continuación se muestra la sintaxis de la búsqueda de objetivos en VBA.

  • Rango (): en esto, necesitamos proporcionar la referencia de celda donde necesitamos lograr el valor objetivo.
  • Meta: En este argumento, necesitamos ingresar cuál es la meta que estamos tratando de lograr.
  • Cambio de celda: en este argumento, necesitamos suministrar cambiando el valor de celda que necesitamos para lograr el objetivo.

Ejemplos de búsqueda de objetivos de Excel VBA

A continuación se muestran los ejemplos de búsqueda de objetivos en Excel VBA.

Puede descargar esta plantilla de Excel de búsqueda de objetivos de VBA aquí - Plantilla de Excel de búsqueda de objetivos de VBA

Búsqueda de objetivos de VBA: ejemplo n. ° 1

Tomemos el ejemplo de la puntuación media de un examen únicamente. A continuación se muestra la puntuación anticipada de 5 materias del examen finalizado.

Primero, necesitamos llegar a cuál es el puntaje promedio de las 5 materias completadas. Aplicar la función PROMEDIO en la celda B8.

En este ejemplo, nuestro objetivo es 90, el cambio de celda será B7 . Por lo tanto, Goal Seek nos ayudará a encontrar el puntaje objetivo de la asignatura final para lograr el promedio general de 90.

Inicie el subprocedimiento en el módulo de clase VBA.

Código:

 Sub Goal_Seek_Example1 () End Sub 

Ahora necesitamos el resultado en la celda B8, así que proporcione esta referencia de rango usando el objeto RANGE.

Código:

 Sub Goal_Seek_Example1 () Rango ("B8") End Sub 

Ahora ponga un punto e ingrese la opción "Buscar objetivo".

El primer argumento es "Meta" para esto, necesitamos ingresar nuestra meta final para llegar al RANGO B8. En este ejemplo, estamos intentando alcanzar el objetivo de 90.

Código:

 Sub Goal_Seek_Example1 () Rango ("B8"). GoalSeek Goal: = 90 End Sub 

El siguiente argumento es "Cambiar celda", para esto necesitamos proporcionar en qué celda necesitamos el nuevo valor para lograr el Objetivo.

Código:

 Sub Goal_Seek_Example1 () Range ("B8"). GoalSeek Goal: = 90, ChangingCell: = Range ("B7") End Sub 

En este ejemplo, nuestra celda cambiante es la celda Sub 6, es decir, la celda B7.

Ok, ejecutemos el código para ver qué se necesita hacer en el tema final para lograr el porcentaje promedio general de 90.

Entonces, en la asignatura final hay que puntuar 95 para obtener el promedio general de 90.

Búsqueda de objetivos de VBA: ejemplo n. ° 2

Hemos aprendido cómo aplicar GOAL SEEK para encontrar el número necesario para lograr el objetivo. Ahora veremos un ejemplo avanzado de cómo encontrar la puntuación del examen final para más de un estudiante.

A continuación se muestran las puntuaciones previstas de 5 asignaturas después del examen.

Dado que estamos encontrando el objetivo para más de un estudiante, necesitamos usar bucles, a continuación se muestra el código para usted.

Código:

 Sub Goal_Seek_Example2 () Dim k As Long Dim ResultCell como rango Dim ChangingCell como rango Dim TargetScore como entero TargetScore = 90 For k = 2 to 5 Set ResultCell = Cells (8, k) Set ChangingCell = Cells (7, k) ResultCell.GoalSeek TargetScore, ChangingCell Siguiente k End Sub 

Este código recorrerá todos los puntajes de los estudiantes y obtendrá el puntaje del examen final requerido para alcanzar el promedio general de 90.

Así que obtuvimos el resultado final ahora como,

El estudiante A necesita obtener una puntuación de solo 83 para obtener el porcentaje general del 90 y el estudiante D debe obtener una puntuación de 93.

Pero mire a los estudiantes B y C, necesitan obtener 104 cada uno en el examen final, lo cual no es posible en absoluto.

De esta manera, utilizando el análisis de GOAL SEEK, podemos encontrar el número requerido para lograr el número objetivo a la mitad del proyecto o proceso.

Cosas para recordar

  • Goal Seek está disponible tanto con la herramienta de hoja de trabajo como con la herramienta VBA.
  • La celda de resultado siempre debe contener una fórmula.
  • Necesitamos ingresar el valor del objetivo y cambiar la referencia de celda a la herramienta de búsqueda de objetivo.