Live-Forum - Die aktuellen Beiträge
Datum
Titel
29.03.2024 13:14:12
28.03.2024 21:12:36
28.03.2024 18:31:49
Anzeige
Archiv - Navigation
1288to1292
Aktuelles Verzeichnis
Verzeichnis Index
Übersicht Verzeichnisse
Vorheriger Thread
Rückwärts Blättern
Nächster Thread
Vorwärts blättern
Anzeige
HERBERS
Excel-Forum (Archiv)
20+ Jahre Excel-Kompetenz: Von Anwendern, für Anwender
Inhaltsverzeichnis

Solver Add-In mit VBA starten

Solver Add-In mit VBA starten
30.11.2012 10:39:44
Ralf
Hallo Forum,
ich habe ein Problem mit dem Solver Add-In.
Im Büro setzen wir Office 2007 ein, zu Hause habe ich Office 2010.
Ich hatte nun gestern eine Datei mit einer VBA Zielwertsuche. Auf meinem Bürorechner lief Sie problemlos, bei meinem Kollegen nicht. Zu Hause funktionierte die Berechnung ebenfalls nicht. Ich habe dann im Internet folgendes ausfindig gemacht:
'für Excel 2007 gilt dies:
Set Solv = AddIns("Solver Add-In")
If Solv.Installed = False Then
AddIns("Solver Add-in").Installed = True
End If
'für Excel 2010 gilt dies:
AddIns("Solver").Installed = True
Zusätzlich habe ich im VBA Editor einen Verweis für Solver erstellt.
Zu Hause hat die Berechnung dann funktioniert.
Habe ich grundsätzlich etwas falsch gemacht?
Kann man die beiden oben genannten Scripte verbinden, also Versionsabfrage => wenn 2007er Version dann 1. Script => wenn 2010er Version dann 2. Script?
Vielen Dank im Voraus für eine Rückmeldung.
Viele Grüße
Ralf

16
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: Solver Add-In mit VBA starten
30.11.2012 13:00:42
Hajo_Zi
Hallo Ralf,
MsgBox Val(Application.Version)

AW: Solver Add-In mit VBA starten
30.11.2012 13:48:15
Ralf
Hallo Hajo,
wo soll das hin, was passiert dann, ist das dann allgemein gültig, so dass bei nicht gesetztem Haken in den Add-Ins keine Fehlermeldung kommt?
Hm, damit kann ich jetzt nicht wirklich etwas anfangen.
Viele Grüße
Ralf

AW: Solver Add-In mit VBA starten
30.11.2012 15:39:48
Luschi
Hallo Ralf,
den Vorschlag von Hajo kannst Du vergessen. Da Excel-Vba eine Script-Sprache ist, wird vor dem Ausführen des Vba-Code alles erst kompiliert. Deshalb muß beim Öffnen der Arbeitsmappe der entsprechende Vba-Code ausgetauscht/aktiviert werden.
Dazu gibt es bedingte Compiler-Konstanten, die als 1. Zeichen mit dem #-Zeichen beginnen und bedingte Verzweigungen in der Form '#If #Else #End'.
Leider kann man die Compiler-Konstanten nicht mit einer Funktion festlegen, sondern nur durch Literale vorbelegen. So ist es seit Visual Basic 5/6, Vba bis hin zu VB.Net.
Wie das geht, kannst Du in diesem Beispiel von mir sehen:
http://www.ms-office-forum.net/forum/showthread.php?t=292815#13
Hierbei geht es darum, einem entsprechenden Menü-Befehl/Ribbon-Button per Vba zu starten - je nach dem, ob die xls-Datei mit Excel 2003 oder 2007/2010 geöffnet wird.
Gruß von Luschi
aus klein-Paris

Anzeige
AW: Solver Add-In mit VBA starten
30.11.2012 16:54:00
Hajo_Zi
Hallo Ralf,
Du hast einen Code erstellt und Wolltest nur die Abfrage der Version, diese wir bei der Msgbox angezeigt. ein If machen dürfte nicht das Problem sein.
Gruß Hajo

AW: Solver Add-In mit VBA starten
30.11.2012 17:35:41
Luschi
Hallo Hajo,
Ralf wollte nicht die eingesetzte Excel-Version wissen, sondern er will den Solver aktivieren, falls nicht das Häckchen in 'Vba-Extras-Verweise' gesetzt ist.
Und hier zeigt sich wieder einmal, das nicht alles 1:1-umsetzbar ist zwischen E_2007 & 2010/2012.
Bis Excel 2007 ist der Solver (von dem ich sehr viel halte und einsetze) ein Add-In und muz deshalb ander aktiviert werden als in E_2010/2012.
Da das im Vba-Code passiert, muß hier die bedingte Compilierung eingreifen (siehe mein Beispiel!)
Gruß von Luschi
aus klein-Paris

Anzeige
AW: Solver Add-In mit VBA starten
03.12.2012 06:40:55
Ralf
Hallo Luschi,
danke für Deine ausführliche Beschreibung, aber ....
ich erstelle VBA-Codes (fast) ausschließlich mit dem Makrorekorder. Daher verstehe ich Deine Antwort nicht annähernd. Deinen Link habe ich mir angesehen und die If Abfrage bezgl. der Versionsabfrage mitgenommen. Aber auch damit kann ich den Solver nicht starten.
Viele Grüße
Ralf

AW: Solver Add-In mit VBA starten
03.12.2012 07:51:40
Luschi
Hallo Ralf,
das ist auch nicht so einfach, da hier beim Öffnen der Arbeitsmappe mindestens eine Zeile Vba-Code durch Vba selbst ausgetauscht werden muß. Das liegt daran, das zwischen den verschiedenen Excel-Versionen der Vba-Code an wenigen - aber meist wichtigen Stellen - nicht zueinander kompatibel ist.
M$ kann es sich wahrscheinlich nicht vorstellen, daß in einer dt. Firma nicht alle PC's gleichzeitig auf die neue Excel-Version umgestellt werden.
Lange Rede - kurzer Sinn: mache eine kleine Demo-Datei, schreibe noch ein paar mehr Info's dazu und ich helfe Dir gern weiter.
Gruß von Luschi
aus klein-Paris

Anzeige
AW: Solver Add-In mit VBA starten
03.12.2012 08:51:49
Ralf
Hallo Luschi,
hier findest Du die gewünschte Datei:
https://www.herber.de/bbs/user/82861.xlsm
Ich hoffe, Du kannst damit etwas anfangen.
Vielen Dank im Voraus für eine Rückmeldung.
Viele Grüße
Ralf

AW: Solver Add-In mit VBA starten
03.12.2012 14:06:54
Luschi
Hallo Ralf,
bin am Thema dran, aber mein Boss stört z.Z. unsere vertrauensvolle Zusammenarbeit.
Gruß von Luschi
aus klein-Paris

AW: Solver Add-In mit VBA starten
03.12.2012 14:08:06
Ralf
Hallo Luschi,
hm, hm, lustig.
Bin auf Deine Lösung gespannt.
Viele Grüße
Ralf

AW: Solver Add-In mit VBA starten
03.12.2012 14:30:14
Luschi
Hallo Ralf,
hab doch noch 'ne Frage (oder auch 2).
1. Spielt Excel-2003 mit dem Kompatibilitätspackt für Excel 2007 auch eine Rolle in der Firma?
2. Der in Deiner Datei gesetzte Vba-Verweis: //nv01001.?group.net\q232024\SOLVER.XLAM ist doch sicher der Verweis auf den Excel2007-Solver?
Muß erst noch raus kriegen, ob diese Datei mit der selben von Excel2010 kompatibel ist oder ob hier ein anderes Verzeichnis erforderlich ist.
Leider wird beim Thema 'Excel-Solver' in den dt./amerk.-NewsGroups viel um den heißen Brei herumgeredet und die Hilfe-Beispiele im MSDN sind genauso bescheiden wie in der Excel-Hilfe (Abklatsch 1:1).
Hier verspielt M$ viel Kredit bei mir.
Gruß von Luschi
aus klein-Paris

Anzeige
AW: Solver Add-In mit VBA starten
03.12.2012 14:36:16
Ralf
Hallo Luschi,
zu 1.) nein, Excel 2003 spielt keine Rolle.
zu 2.) ich habe die Datei solver.xlam einmal unter Deinem angegebenen Pfad, und ein weiteres mal unter diesem Pfad: C:\Program Files\Microsoft Office\Office12\Library\SOLVER
Und genau richtig erkannt, das ganze sollte kompatibel zu Excel 2010 sein.
Wo die Datei unter Excel 2010 liegt, kann ich heute Abend zu Hause nachsehen.
Viele Grüße
Ralf

AW: Solver Add-In mit VBA starten
04.12.2012 09:59:11
Luschi
Hallo Ralf,
habe das Teil jetzt soweit fertig, daß die korrekte Solver-xlam-Datei für E2007 & E2010
gesetzt wird - auch wenn zuvor die Datei von der anderen Excel-Version gestartet wurde.
Habe ein paar Meldungsboxen in der Form 'CreateObject("WScript.Shell").Popup' reingesetzt,
die sich nach 1 Sekunde von selbst schließen!
https://www.herber.de/bbs/user/82877.xlsm
Gruß von Luschi
aus klein-Paris

Anzeige
AW: Solver Add-In mit VBA starten
04.12.2012 10:15:57
Ralf
Hallo Luschi,
vielen Dank für Deine kompetente Hilfe.
Ich werde es nachher an dem Rechner meines Kollegen ausprobieren.
Folgende Fragen habe ich aber noch:
- Beim Öffnen der Mappe bekomme ich die MsgBox "Ressource schon gesetzt". Dies muss ich mit OK bestätigen. Kann man das übergehen bzw. im Hintergrund laufen lassen?
- Muss der Verweis auf Solver.xlam weiterhin in der Mappe gesetzt bleiben?
- Um Deine Arbeit in eine weitere Arbeitsmappe zu übertragen: Reicht es aus das Modul "mod_Luschi" in die neue Mappe einzufügen?
Kannst Du mir bei Zeiten darauf noch eine Rückmeldung geben?
Vielen Dank im Voraus?
Viele Grüße
Ralf

Anzeige
AW: Solver Add-In mit VBA starten
04.12.2012 10:44:00
Luschi
Hallo Ralf,
sicher meinst Du diese Vba-Zeile:
CreateObject("WScript.Shell").Popup "Reference schon gesetzt", 2, "Solver"
Hier soll eigentlich das stehen:
CreateObject("WScript.Shell").Popup "Reference schon gesetzt", 1, "Solver"
Dieses VB(6)-Script-Objekt schließt sich automatisch nach 1 Sekunde (oder kann auch etwas länger dauern), jenach dem, wieviele andere Ressorcen noch den Windows-Timer gerade benutzen.
Du kannst sie natürlich durch ein Kommentarzeichen deaktivieren.
Ich brauchte sie, um den Ablaufweg zu verfolgen, da beim De-/Aktivieren des Solvers die der Schritt-Debugger nicht so richtig mitspielt!
Wenn die Datei gerade mit E2010 bearbeitet wird, muß beim Schließen der Solver nicht deaktiviert werden, wenn man weiß, daß beim nächsten Mal die Datei mit E2007 beackert wird (oder auch umgekehrt!)
Ich habe das x-mal hin und her getestet.
Du mußt das komplette Modul 'mod_Luschi' in die Original-Test-Datei! übernehmen und zusätzlich die Befehle aus:
DieseArbeitsmappe-Workbook-Open()
Das Modul am Besten im Vba-Explorer Exportieren und in der anderen Datei wieder Importieren,
dann passieren die wenigsten Fehler.
Das (Klassen)-Modul 'DieseArbeitsmappe' kann man auf diese Weise nicht übernehmen, da Excel dann daraus ein 'richtiges' Klassenmodul macht, das nicht mehr unter 'Microsoft Office Objekte' sondern in einer neuen Gruppe 'Klassenmodule' zu finden ist.
Gruß von Luschi
aus klein-Paris

Anzeige
AW: Solver Add-In mit VBA starten
04.12.2012 11:10:42
Ralf
Hallo Luschi,
alles klar. Ich werde es testen. Heute Abend dann auch zu Hause unter Excel 2010. Bei Bedarf melde ich mich wieder.
Ist das Script zukunftsfähig und auch unter Excel 2013 lauffähig?
Vielen Dank nochmals für Deine Hilfe. Verdammt gute Arbeit!
Viele Grüße
Ralf

48 Forumthreads zu ähnlichen Themen

Anzeige
Anzeige
Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige