Live-Forum - Die aktuellen Beiträge
Anzeige
Archiv - Navigation
1328to1332
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
Solver Add-In über Makro installieren
16.09.2013 12:50:09
muhackl
Hallo an die Forumsgemeinde!
Zunächst einmal finde ich das Forum echt spitze. Bis vor kurzem hatte ich keine VBA-Kenntnisse. Mithilf dieser Seite konnte ich aber viele Probleme lösen.
Woran ich allerdings noch scheitere ist die Installation des Solver Add-Ins in Excel. Ich habe eine Excel-Datei, worin mit dem Solver über VBA mehrere Berechnungen durchgeführt werden. Das alles klappt soweit.
Die Datei soll aber durch mehrere Nutzer verwendet werden, die standardmäßig das Solver Add-In nicht installiert haben. Um die Datei für den Nutzer möglichst "freundlich" zu gestalten, stelle ich mir vor die Installation des Add-Ins über ein Makro laufen zu lassen.
Ist die umsetzbar?
Es müsste beim Start der Datei geprüft werden ob das Add-In vorliegt, andernfalls sollte sofort die Installation gestartet werden (evtl. mit Benutzerabfrage).
Ich hoffe es kann mir jemand helfen!
Vielen Dank schon mal..

6
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: Solver Add-In über Makro installieren
16.09.2013 13:19:23
Hajo_Zi
unter DieseArbeitsmappe, Open
    If AddIns("Solver").Installed = False Then
AddIns("Solver").Installed = True
End If

AW: Solver Add-In über Makro installieren
16.09.2013 14:16:17
fcs
Hallo Muhackl,
nachfolgend Makros, die den Status ermitteln und den Solver ggf. zuschalten. Beim Schließen wird der Solver wieder deaktiviert, wenn er beim Öffnen inaktiv war.
Gruß
Franz
'Code unter "DieseArbeitsmappe" der Datei
'Erstellt unter Excel 2010
Private bolSolverInstalled As Boolean
Private Const strAddInn2007 As String = "Solver.xlam"
Private Const strAddInn2003 As String = "Solver.xla"
Private Const strAddInnName As String = "Solver"
Private Sub Workbook_BeforeClose(Cancel As Boolean)
If fncCheckAddInn(strAddInn2003) = True _
Or fncCheckAddInn(strAddInn2007) = True Then
If bolSolverInstalled = False Then
Application.AddIns(strAddInnName).Installed = False
End If
End If
End Sub
Private Sub Workbook_Open()
If fncCheckAddInn(strAddInn2003) = True _
Or fncCheckAddInn(strAddInn2007) = True Then
bolSolverInstalled = Application.AddIns(strAddInnName).Installed
If bolSolverInstalled = False Then
Application.AddIns(strAddInnName).Installed = True
End If
Else
MsgBox "Das für diese Datei erforderliche AddInn ""Solver"" ist nicht vorhanden!"
End If
End Sub
Private Function fncCheckAddInn(strFileAddInn As String) As Boolean
'Prüfen ob AddInn installiert ist.
Dim objAddInn As AddIn
For Each objAddInn In Application.AddIns
If UCase(objAddInn.Name) = UCase(strFileAddInn) Then
fncCheckAddInn = True
Exit For
End If
Next
End Function

Anzeige
AW: Solver Add-In über Makro installieren
18.09.2013 20:03:12
Muhackl
Hallo,
vielen Dank für eure Nachrichten. Der Code funktioniert für die 2007er Version ganz gut. Allerdings kam es zu Problemen beim Test mit der 2003er Version. Der Solververweis wurde mit solver.xlam gesetzt. Danach musste ich erst manuell den Verweis wieder entfernen und die solver.xla aus den Windows ordner laden.
Wie würde der vba-Code nur bei Verwendung von Excel 2003 aussehen? Ich werden sowieso zwei Dateien anlegen, eine für 2003 und eine für 2007 und aufwärts.
Dann gibt es noch ein anderes Problem, ich hoffe ihr mir helfen. Ich habe die Excel Datei mit Makros und Verweiscode von Franz an einen anderen PC mit Excel 2007 probiert (erstellt auch in 2007). Weiterhin gibt es einen Blatt- und Arbeitsmappenschutz. Beim öffnen an dem anderen PC kam es zu Fehlermeldungen. Anscheinend konnten die Makros nicht gestartet werden. Es kam immer: Makro...nicht verfügbar (oder so ähnlich). An was könnte dies liegen, wie kann ich das umgehen?
Vielen Dank schon mal.
Gruß Muhackl

Anzeige
AW: Solver Add-In über Makro installieren
19.09.2013 00:36:07
fcs
Hallo Muhackl,
bei Excel 2003 kann ich leider nicht weiterhelfen, da ich diese Version nicht habe.
Zeichne einfach mal mit der 2003er Version ein Makro mit dem Makrorecorder auf und deaktiviere und aktiviere dabei das AddInn Solver. Dann solltest du zumindest einen Teil des benötigten Codes haben. Ich kann mich nicht daran erinnern, ob es tasächlich Unterschiede zu Excel 2007 und neuer gibt - außer das die AddInn-Datei jetzt die Endung XLAM statt XLA hat.
Fehler: Makro nicht verfügbar, wenn du die Datei auf einem anderen PC öffnen willst.
Kann ich mir eigentlich nicht erklären. Möglicherweise hast du eines der Makros nicht oder in die falsche Datei kopiert.
Alle Makros gehören in der Datei, in der der Solver benutzt werden soll, unter das Modul "DieseArbeitsmappe".
Der Blatt- und Arbeitsmappenschutz sollte bei der Aktivierung des AddInns keine Rolle spielen.
Er kann evtl. bei der Ausführung des Solvers Probleme verursachen, wenn die Zellen, die der Solver verändert, geschützt sind.
Gruß
Franz

Anzeige
AW: Solver Add-In über Makro installieren
19.09.2013 19:53:27
Muhackl
Hallo Franz,
Fehler: Makro nicht verfügbar, wenn du die Datei auf einem anderen PC öffnen willst.
Kann ich mir eigentlich nicht erklären. Möglicherweise hast du eines der Makros nicht oder in die falsche Datei kopiert.
Alle Makros gehören in der Datei, in der der Solver benutzt werden soll, unter das Modul DieseArbeitsmappe.

Bisher habe ich all meine Makros (außer den Solver-Verweis-Code) unter Module / Modul 1 abgelegt. Könnte dies der Fehler sein? Wann verwendet man eigentlich was?

AW: Makro in allgemeinem Modul oder Klassenmodul
20.09.2013 08:37:20
fcs
Hallo Muhackl,
die Makros
Private Sub Workbook_BeforeClose(Cancel As Boolean)
'und
Private Sub Workbook_Open()

sind sogenannte Ereignismakros. Diese starten automatisch, wenn für ein Objekt (Arbeitsmappe, Tabelle, Chart oder Userform) oder einem darauf plazierten Steuerelement ein zugehöriges Ereignis (z.B. Öffnen, Schliessen, Anklicken, Ändern, etc.) stattfindet. Damit der automatische Start funktioniert müssen diese Makros im VBA-Projekt unter dem entsprechenden Modul angelegt werden.
"Normale" Makros sollten in allgemeinen Modulen gespeichert werden. Sie können auch in den anderen objektbezogenen Modulen gespeichert werden. In meinem Code z.B. die Function fncCheckAddInn, die als Public Function auch in einem allgemeinen Modul gespeichert werden könnte.
Gruß
Franz
Anzeige

300 Forumthreads zu ähnlichen Themen

Anzeige
Anzeige
Anzeige

Links zu Excel-Dialogen

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige