Deze tutorial laat je zien hoe je de Oplosser-invoegtoepassing in VBA gebruikt.
Oplosser is een invoegtoepassing die bij Excel wordt geleverd en wordt gebruikt om 'wat-als'-analyses uit te voeren door alternatieve antwoorden te geven op een formule in een cel op basis van waarden die u vanuit andere cellen in uw werkmap aan de formule kunt doorgeven.
De Oplosser-invoegtoepassing inschakelen in Excel
Selecteer de Bestand op het Excel-lint en ga vervolgens naar: Opties.
Selecteer Invoegtoepassingen en klik op de Gaan knop naast Excel-invoegtoepassingen.
Zorg ervoor dat de Oplosser-invoegtoepassing optie is geselecteerd.
Of klik op de Excel-invoegtoepassingen op de Ontwikkelaar lint om het dialoogvenster Invoegtoepassingen te openen.
De Oplosser-invoegtoepassing inschakelen in VBA
Nadat u de Solver-invoegtoepassing in Excel hebt ingeschakeld, moet u er een verwijzing naar toevoegen in uw VBA-project om deze in VBA te gebruiken.
Zorg ervoor dat u bent geklikt in het VBA-project waar u de Oplosser wilt gebruiken. Klik op de Extra menu en dan verder Referenties.
Een verwijzing naar de Oplosser-invoegtoepassing wordt aan uw project toegevoegd.
U kunt nu de Solver-invoegtoepassing in VBA-code gebruiken!
Oplosserfuncties gebruiken in VBA
We moeten 3 Oplosser VBA-functies gebruiken om Oplosser in VBA te gebruiken. Dit zijn OplosserOK, OplosserToevoegen, en OplosserOplossen.
OplosserOK
- SetCell - optioneel - dit moet verwijzen naar de cel die moet worden gewijzigd - het moet een formule bevatten. Dit komt overeen met deDoelcel instellen doos in deOplosserparameters: dialoog venster.
- MaxMinVal - optioneel - U kunt dit instellen op 1 (Maximaliseren), 2 (Minimaliseren) of 3. Dit komt overeen met de Max, Min, enWaarde opties in deOplosserparameters: dialoog venster.
- Waarde van - optioneel -Als de MaxMinValue is ingesteld op 3, moet u dit argument opgeven.
- Bij verandering - optioneel -Dit vertelt de oplosser welke cellen het mag veranderen om de vereiste waarde te krijgen. Dit komt overeen met deDoor variabele cellen te wijzigen doos in deOplosserparameters: dialoog venster.
- Motor - optioneel - dit geeft de oplossingsmethode aan die gebruikt moet worden om tot een oplossing te komen. 1 voor de Simplex LP-methode, 2 voor de GRG Niet-lineaire methode, of 3 voor de Evolutionaire methode. Dit komt overeen met deSelecteer een oplossingsmethode vervolgkeuzelijst in deOplosserparameters: dialoog venster
- MotorBeschrijving - optioneel - dit is een alternatieve manier om de oplossingsmethode te selecteren - hier typt u de tekenreeksen "Simplex LP", "GRG Nonlinear" of "Evolutionary". Dit komt ook overeen met deSelecteer een oplossingsmethode vervolgkeuzelijst in deOplosserparameters: dialoog venster
OplosserToevoegen
- CellRef - verplicht - dit is een verwijzing naar een cel of een reeks cellen die moeten worden gewijzigd om het probleem op te lossen.
- Relatie - verplicht - dit is een geheel getal dat tussen 1 en 6 moet liggen en specificeert de toegestane logische relatie.
- 1 is kleiner dan (<=)
- 2 is gelijk aan (=)
- 3 is groter dan (>=)
- 4 moet eindwaarden hebben die gehele getallen zijn.
- 5 moet waarden hebben tussen 0 of 1.
- 6 moet eindwaarden hebben die allemaal verschillend zijn en gehele getallen.
- FormuleTekst - optioneel - De rechterkant van de beperking.
Een Oplosser-voorbeeld maken
Beschouw het volgende werkblad.
In het bovenstaande blad moeten we break-even maken in maand nummer één door cel B14 op nul te zetten door de criteria in cellen F1 tot F6 te wijzigen.
123 | Sub TestOplosserSolverOk SetCell:="$B$14", MaxMinVal:=3, ValueOf:=0, ByChange:="$F$2:$F$6", Engine:=1, EngineDesc:="GRG Nonlinear"Einde sub |
Nadat u de SolverOK-parameters hebt ingesteld, moet u enkele criteriabeperkingen toevoegen.
1234567 | Sub TestOplosserSolverOk SetCell:="$B$14", MaxMinVal:=3, ValueOf:=0, ByChange:="$F$2:$F$6", Engine:=1, EngineDesc:="GRG Nonlinear"'criteria toevoegen - F3 kan niet kleiner zijn dan 8'SolverAdd CellRef:="$F$3", Relation:=3, FormulaText:="8"'criteria toevoegen - F3 kan niet kleiner zijn dan 5000SolverAdd CellRef:="$F$5", Relation:=3, FormulaText:="5000"Einde sub |
Nadat u de SolverOK en de SolverAdd (indien nodig) hebt ingesteld, kunt u het probleem oplossen.
1234567 | Sub TestOplosserSolverOk SetCell:="$B$14", MaxMinVal:=3, ValueOf:=0, ByChange:="$F$2:$F$6", Engine:=1, EngineDesc:="GRG Nonlinear"'criteria toevoegen - F3 kan niet kleiner zijn dan 8 SolverAdd CellRef:="$F$3", Relation:=3, FormulaText:="8" 'criteria toevoegen - F3 kan niet kleiner zijn dan 5000SolverAdd CellRef:="$F$5", Relation:=3, FormulaText:="5000"'een oplossing vinden door het probleem op te lossen'OplosserOplossenEinde sub |
Nadat u de code hebt uitgevoerd, wordt het volgende venster op uw scherm weergegeven. Selecteer de gewenste optie (dwz de Oplosser-oplossing behouden of Oorspronkelijke waarden herstellen) en klik op OK.