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
784to788
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
784to788
784to788
Aktuelles Verzeichnis
Verzeichnis Index
Verzeichnis Index
Übersicht Verzeichnisse
Inhaltsverzeichnis

Solver funktioniert nicht mehr

Solver funktioniert nicht mehr
21.07.2006 15:51:22
Wetzel
Hallo Leute,
ich steuere über ein Makro einen solver an der mit etwas berechnet. Das funktioniert soweit. Dazu musste ich bei Extras-AddIns Manager den Solver aktivieren.
Wenn ich die Datei nun auf ein anderes Laufwerk packe, dann funktioniert der Solver nicht mehr. Der Grund liegt wohl in der Objektbibliothek:
VBA Editor - Extras - Verweise - nichtvorhandenSolver.xls
Weiss jemand wie man den Verweis auf den Solver beibehalten kann, ohne ihn manuell immer wieder neu machen zu müssen?
Viele Grüße und danke schonmal,
Stephan

8
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: Solver funktioniert nicht mehr
22.07.2006 14:20:09
Horst
Hi,
die Verweise in einer Schleife testen. Falls der Verweis auf den Solver nicht gefunden wird, Verweis z.B. mit der AddFromFile-Methode setzen.
Wenn du es ganz professionell machen willst, vorher noch checken, ob der Solver überhaupt installiert ist.
mfg Horst
AW: Solver funktioniert nicht mehr
24.07.2006 10:04:56
Wetzel
Hallo ihr,
Horsts Lösung klingt interessant. Kann mir die jemand etwas näher erläutern. Ganz sooo gut in VBA bin ich dann doch nicht.
Vielen Dank schonmal im Voraus
Wetzel
AW: Solver funktioniert nicht mehr
24.07.2006 16:21:35
K.Rola
Hallo,
Option Explicit
Sub Verweis_auf_Solver()
Dim strSolver As String, lngVersion As Long, x As Long, bolFound As Boolean, msg As Integer
bolFound = False
lngVersion = Val(Application.Version)
''Hier ggf. das Laufwerk anpassen
strSolver = "c:\programme\microsoft office\office" & lngVersion & "\makro\solver\solver.xla"
If Dir(strSolver) <> "" Then
With ThisWorkbook.VBProject
For x = 1 To .References.Count
If UCase(strSolver) = UCase(.References(x).FullPath) Then bolFound = True
Next
If Not bolFound Then
msg = MsgBox("Der Verweis auf:" & Chr(10) & Chr(10) & _
strSolver & Space(10) & Chr(10) & Chr(10) & _
"wurde nicht gefunden!          " & Chr(10) & Chr(10) & _
"Soll er jetzt erstellt werden?", 32 + 4, "wills wissen...")
If msg = 7 Then Exit Sub
'wenn ja geklickt, Verweis hinzufügen
.References.AddFromFile strSolver
Else
MsgBox "Der Verweis auf:" & Chr(10) & Chr(10) & _
strSolver & Space(10) & Chr(10) & Chr(10) & _
"ist vorhanden!", 64, "weise hin..."
End If
End With
Else
MsgBox "Der Solver ist unter dem angegebenen Pfad nicht installiert!" & Space(10), 64, "Weise hin..."
End If
End Sub
Gruß K.Rola

Anzeige
AW: Solver funktioniert nicht mehr
24.07.2006 17:36:04
Wetzel
Hey danke,
das Skript funktioniert super. Ich musste lediglich "& lngVersion &" aus folgender Zeile entfernen, weil sonst ein Fehler kam:
''Hier ggf. das Laufwerk anpassen
strSolver = "c:\programme\microsoft office\office" & lngVersion & "\makro\solver\solver.xla"
Nun habe ich noch eine kleine Frage in dem Zusammenhang.
Kann man den Pfad zum Solver international dynamisch halten (also egal mit welcher Version oder Sprachversion ich die Datei öffne, soll excel immer den Pfad zum Solver ermitteln.
Den Installationspfad bekomme ich über Application.path
Grüße Wetzel
Anzeige
AW: Solver funktioniert nicht mehr
24.07.2006 21:00:24
K.Rola
Hallo,
Tipp, wenn du noch eine Antwort erwartest, die Frage als offen kennzeichnen, hab nur
zufällig nochmal reingeschaut.
Hab den Fehler erst gar nicht deuten können, aber klar, bei mir sind unterschiedliche
Officeversionen installiert. Der Weg über Application.Path ist daher besser geeignet,
wie im Beispiel unten zu sehen.
Option Explicit
Sub versiv()
Const strSolver As String = "solver.xla"
Dim strAppPath As String, msg As String
Dim i As Long
Dim objFS As Object
Dim bolFound As Boolean
Set objFS = Application.FileSearch
strAppPath = Application.Path
If Right(strAppPath, 1) <> "\" Then strAppPath = strAppPath & "\"
With objFS
.NewSearch
.LookIn = strAppPath
.SearchSubFolders = True
.FileType = 4
If .Execute > 0 Then
For i = 1 To .FoundFiles.Count
If InStr(1, LCase(.FoundFiles(i)), strSolver) Then
MsgBox "Pfad zum Solver:" & Chr(10) & Chr(10) & _
.FoundFiles(i)
bolFound = True
Exit For
End If
Next i
End If
End With
If Not bolFound Then
MsgBox "Der Solver wurde nicht gefunden!" & Space(10), 64, "Stelle fest..."
End If
Set objFS = Nothing
End Sub
Gruß K.Rola

Anzeige
AW: Solver funktioniert nicht mehr
25.07.2006 09:28:24
Wetzel
Hallo K.Rola,
vielen Dank für deine Tipps und Mühen.
Leider funktioniert dein neues Skript nicht richtig. Syntax läuft, aber obwohl ein Solver vorhanden ist kommt die Meldung "Der Solver wurde nicht gefunden".
Kannst du mir sagen, ob es einen Befehl gibt der direkt den Pfad zu den Addins (Solver findet). Sowas wie Application.Addins.Path wäre doch eine super Idee, geht nur leider nicht...
Grüße Stephan
AW: Solver funktioniert nicht mehr
25.07.2006 14:14:26
K.Rola
Hallo,
bin einigermaßen ratlos, warum das bei dir nicht funktioniert, denn bei mir geht das.
Addinpath würde nichts bringen, da der Solver ein eigenes Verzeichnis hat.
Gruß K.Rola
Anzeige
AW: Solver funktioniert nicht mehr
25.07.2006 15:17:32
Wetzel
Ich habs.
Es sind 2 subs geworden, von denen dass untere zuerst aufgerufen wird.
Zuerst wird geprüft ob ein fehlerhafter Verweis vorhanden ist, und dieser wird dann eleminiert. Im Anschluss wird mit dem

Sub "SolverVerweise" nach dem Solver.xla im Installationspfad gesucht und dieser dann als Verweis gebildet.
Vielen Dank nochmal
Unten die Subs:

Sub SolverVerweise()
Const strSolver As String = "Solver.xla"
Dim strAppPath, strcomplete As String, msg As String
Dim q As Long
Dim i, x As Integer
Dim objFS, objfound As Object
Dim bolFound As Boolean
Set objFS = Application.FileSearch
strAppPath = Application.Path
If Right(strAppPath, 1) <> "\" Then strAppPath = strAppPath & "\"
With objFS
.LookIn = strAppPath
.FileType = msoFileTypeAllFiles
.SearchSubFolders = True
.Filename = strSolver
.Execute
End With
With Application.FileSearch
'For i = 1 To .FoundFiles.Count
'MsgBox .FoundFiles(1)
strcomplete = .FoundFiles(1)
' Next i
End With
With ThisWorkbook.VBProject
For x = 1 To .References.Count
If UCase(strcomplete) = UCase(.References(x).FullPath) Then bolFound = True
Next
If Not bolFound Then
ThisWorkbook.VBProject.References.AddFromFile strcomplete
End If
End With
End Sub


Sub VerweisCheck()
Dim intz As Integer
Application.DisplayAlerts = False
With Application.VBE.ActiveVBProject
For intz = 1 To .References.Count
If .References(intz).IsBroken = True Then
ActiveWorkbook.VBProject.References.Remove ThisWorkbook.VBProject.References(intz)
End If
Next intz
End With
Call SolverVerweise
Application.DisplayAlerts = True
End Sub

Anzeige

304 Forumthreads zu ähnlichen Themen

Anzeige
Anzeige
Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige