Comment utiliser la recherche d'objectif dans Visual Basic

Heureusement, Goal Seek est complètement intégré à la VBA, il est donc facile d'écrire une macro pour l'utiliser.

Étape 1

Ouvrez le document Excel dans lequel vous souhaitez exécuter votre macro Goal Seek.

Étape 2

Recherchez deux cellules dans lesquelles vous souhaitez utiliser la recherche d'objectif. La première doit être la cellule dans laquelle vous avez un objectif fixe. La seconde devrait être l'endroit où vous permettez à Excel de changer pour atteindre l'objectif. La valeur de la première cellule doit être une formule basée sur la seconde formule (sinon, les modifications apportées par Excel dans la seconde cellule sont sans importance, car elles n'apparaîtront pas dans la première).

Étape 3

Ouvrez la fenêtre Macro. Dans Excel 2007 ou une version ultérieure, vous pouvez le faire en cliquant sur l'onglet "Affichage" de la liste, puis en cliquant sur "Macros". Dans les versions précédentes d'Excel, cliquez sur le menu "Outils", choisissez "Macros" puis "Macros".

Étape 4

Entrez le nom de votre macro Goal Seek dans la fenêtre Macro, puis cliquez sur "Créer". Cela démarrera le programme Visual Basic pour les applications d’édition et vous montrera le texte de la nouvelle macro, qui apparaîtra comme un sous-programme vide comme celui-ci:

Sub MyMacroName () End Sub

Étape 5

Créez une plage d'objets représentant la cellule pour laquelle vous avez un objectif connu (la première cellule de l'étape 2). Par exemple, si vous souhaitez une recherche d'objectif pour la cellule A1, écrivez:

Dim GoalCell comme Range goalCell = ThisWorkbook.Worksheet (1) .Range ("A1")

Étape 6

Créez une plage d'objets qui représente la cellule que vous souhaitez que Excel modifie pour que la première cellule atteigne la nouvelle cible. Par exemple, si vous souhaitez que Excel manipule la cellule A2, écrivez:

Dim variableCell As Range variableCell = ThisWorkbook.Worksheet (1) .Range ("A2")

Étape 7

Recherchez la méthode GoalSeek dans la plage de la cellule cible. En tant que premier argument, il offre la valeur sur laquelle vous souhaitez appliquer la recherche d'objectif; comme argument, il offre la plage de la cellule variable. Par exemple, si vous souhaitez appliquer l'objectif à zéro, écrivez:

goalCell.GoalSeek (0, variableCell)