Solveur VBA

Ce didacticiel vous montrera comment utiliser le complément Solver dans VBA.

Solver est un complément fourni avec Excel et utilisé pour effectuer une analyse de simulation en fournissant des réponses alternatives à une formule dans une cellule en fonction des valeurs que vous pouvez transmettre à la formule à partir d'autres cellules de votre classeur.

Activation du complément Solveur dans Excel

Sélectionnez le Déposer sur le ruban Excel, puis descendez jusqu'à Options.

Sélectionner Compléments et cliquez sur le Aller bouton à côté de Compléments Excel.

Assurez-vous que le Complément Solveur l'option est sélectionnée.

Sinon, cliquez sur le Compléments Excel sur le Développeur ruban pour obtenir la boîte de dialogue Compléments.

Activation du complément Solveur dans VBA

Une fois que vous avez activé le complément Solver dans Excel, vous devez ensuite lui ajouter une référence dans votre projet VBA afin de l'utiliser dans VBA.

Assurez-vous que vous êtes cliqué dans le projet VBA où vous souhaitez utiliser le solveur. Clique sur le Menu Outils et puis sur Les références.

Une référence à la Complément Solveur sera ajouté à votre projet.

Vous pouvez maintenant utiliser le complément Solver dans le code VBA !

Utilisation des fonctions du solveur dans VBA

Nous devons utiliser 3 fonctions Solver VBA pour utiliser Solver en VBA. Ceux-ci sont SolveurOK, SolveurAjouter, et SolveurSolve.

SolveurOK

  • SetCell - optionnel - cela doit faire référence à la cellule qui doit être modifiée - elle doit contenir une formule. Cela correspond à laDéfinir la cellule d'objectif boîte dans leParamètres du solveur boite de dialogue.
  • MaxMinVal - optionnel - Vous pouvez le régler sur 1 (Maximiser), 2 (Minimiser) ou 3. Cela correspond au Max, Min, etValeur options dans leParamètres du solveur boite de dialogue.
  • Valeur de - optionnel -Si MaxMinValue est défini sur 3, vous devez fournir cet argument.
  • Par le changement - optionnel -Cela indique au solveur quelles cellules il peut modifier afin d'obtenir la valeur requise. Cela correspond à laEn modifiant les cellules variables boîte dans leParamètres du solveur boite de dialogue.
  • Moteur - optionnel - cela indique la méthode de résolution qui doit être utilisée pour arriver à une solution. 1 pour la méthode Simplex LP, 2 pour la méthode GRG non linéaire, ou 3 pour la méthode évolutive. Cela correspond à laSélectionnez une méthode de résolution liste déroulante dans leParamètres du solveur boite de dialogue
  • EngineDesc - optionnel - il s'agit d'une autre façon de sélectionner la méthode de résolution - ici, vous tapez les chaînes "Simplex LP", "GRG Nonlinear" ou "Evolutionary". Cela correspond également à laSélectionnez une méthode de résolution liste déroulante dans leParamètres du solveur boite de dialogue

SolveurAjouter

  • RéfCellule - obligatoire - il s'agit d'une référence à une cellule ou à une plage de cellules qui doivent être modifiées pour résoudre le problème.
  • Relation - obligatoire - il s'agit d'un entier qui doit être compris entre 1 et 6 et spécifie la relation logique autorisée.
    • 1 est inférieur à (<=)
    • 2 est égal à (=)
    • 3 est supérieur à (>=)
    • 4 doit avoir des valeurs finales entières.
    • 5 doit avoir des valeurs comprises entre 0 et 1.
    • 6 doit avoir des valeurs finales toutes différentes et entières.
  • TexteFormule - optionnel - Le côté droit de la contrainte.

Création d'un exemple de solveur

Considérez la feuille de travail suivante.

Dans la feuille ci-dessus, nous devons atteindre le seuil de rentabilité dans le mois numéro un en définissant la cellule B14 sur zéro en modifiant les critères des cellules F1 à F6.

123 Solveur de sous-testSolverOk SetCell:="$B$14", MaxMinVal:=3, ValueOf:=0, ByChange:="$F$2:$F$6", Engine:=1, EngineDesc:="GRG Nonlinear"Fin du sous-marin

Une fois que vous avez configuré les paramètres de SolverOK, vous devez ajouter des restrictions de critères.

1234567 Solveur de sous-testSolverOk SetCell:="$B$14", MaxMinVal:=3, ValueOf:=0, ByChange:="$F$2:$F$6", Engine:=1, EngineDesc:="GRG Nonlinear"'ajouter des critères - F3 ne peut pas être inférieur à 8SolverAdd CellRef:="$F$3", Relation:=3, FormulaText:="8"'ajouter des critères - F3 ne peut pas être inférieur à 5000SolverAdd CellRef:="$F$5", Relation:=3, FormulaText:="5000"Fin du sous-marin

Une fois que vous avez défini le SolverOK et le SolverAdd (si nécessaire), vous pouvez résoudre le problème.

1234567 Solveur de sous-testSolverOk SetCell:="$B$14", MaxMinVal:=3, ValueOf:=0, ByChange:="$F$2:$F$6", Engine:=1, EngineDesc:="GRG Nonlinear"'ajouter des critères - F3 ne peut pas être inférieur à 8 SolverAdd CellRef:="$F$3", Relation:=3, FormulaText:="8" 'ajouter des critères - F3 ne peut pas être inférieur à 5000SolverAdd CellRef:="$F$5", Relation:=3, FormulaText:="5000"'trouver une solution en résolvant le problèmeSolveurRésoudreFin du sous-marin

Une fois le code exécuté, la fenêtre suivante s'affichera sur votre écran. Sélectionnez l'option dont vous avez besoin (c.-à-d. Conserver la solution du solveur ou Restaurer les valeurs d'origine), puis cliquez sur OK.

Vous contribuerez au développement du site, partager la page avec vos amis

wave wave wave wave wave