Live-Forum - Die aktuellen Beiträge
Anzeige
Anzeige
HERBERS
Excel-Forum (Archiv)
20+ Jahre Excel-Kompetenz: Von Anwendern, für Anwender

Forumthread: makro excel verweise ueberpruefen

makro excel verweise ueberpruefen
15.05.2006 12:40:06
Horst
Hey !
Ich hatte schon mal ueber excel verweise nachgefragt:
https://www.herber.de/forum/archiv/760to764/t762235.htm
loesung unter:
http://www.schmittis-page.de/index.html?/excel/vba/t70.htm
Das was ich nicht gesehen hatte, ist das die loesung ein manko aufweist:
Anscheinend wird ein verweis uberprufungng nur mit gefunden (wahr/ true) beantwortet, wenn vorher einmal das vba-projekt geoeffnet worden ist (alt+f11)
Die frage ist nun warum !?!
weist der beispiel code von:
http://www.schmittis-page.de/index.html?/excel/vba/t70.htm
einen fehler auf?
Wenn ja welcher?
Für meine belange ist es zwecklos erst das vba-projekt zu oeffnen, wieder zu schliessen und dann per makro entscheiden zu koennen ob ein verweis istalliert ist oder nicht.
Diese Abfrage moechte ich ja beim starten der excel anwendung durchfuehren um so entscheideun zu koenn ob ich einen verweis istallieren muss oder nicht !?!
wer weis hier rat?
Gruss
horst
Anzeige

7
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: makro excel verweise ueberpruefen
15.05.2006 13:29:09
Tassos
Hallo Horst,
Dateiname = Ordner & "msoutl.olb"
stat
Dateiname = Ordner & "msoutl9.olb"
Gruss
Tassos
AW: makro excel verweise ueberpruefen
15.05.2006 13:51:10
horst_skoff
Hey tasso !
Ich moechte das mach, ueberpruefen auf solver installiert.
Es geht mir in erstlinie darum:
---------------------------------

Function Verweis_installiert(Verweisname) As Boolean
On Error GoTo Fehler
Verweis_installiert = False
Set VBE = Application.VBE.ActiveVBProject
With VBE
For x = 1 To .References.Count
If UCase(.References(x).Name) = UCase(Verweisname) Then
Verweis_installiert = True
Exit Function
End If
Next x
End With
GoTo Ende
Fehler:
'MsgBox "an error has occured... VerweiseModule/ Verweis_installiert"
Ende:
End Function

--------------------------------

Sub Testen()
'Verweis_installiert ("SOLVER")
MsgBox Verweis_installiert("SOLVER")
End Sub

-------------------------------
Und das testen kommt nur zum wahr ergebnis wenn ich beim schon installierten solver, vorher das vba-project (alt f11) einmal geoeffnet hatte.
Ansonsten ist das ergbinis von testen() == False (Falsch)
Die frage ist nun warum?
und wie ich das beheben kann !?!
gruss
horst
Anzeige
AW: makro excel verweise ueberpruefen
15.05.2006 19:12:32
Tassos
Hallo Horst,
Ersetze "Set VBE = Application.VBE.ActiveVBProject" ' (Anwendung)
mit "Set VBE = ThisWorkbook.VBProject" '(Die bestimmte Arbeitsmappe)
Dann wird deine Mappe angesprochen und nicht die Anwendung
Gruss
Tassos
AW: makro excel verweise ueberpruefen
16.05.2006 10:09:09
Horst
hallo tasso !
ne das war leider auch:
-------------------------------

Sub Testen()
'Verweis_installiert ("SOLVER")
MsgBox Verweis_installiert("SOLVER")
End Sub

----------------------------------
Texten ist immer auch beim istallierten solver false (Falsch)
Ich habe dann vorher jenes getan:
SendKeys "%{F11}" & "%q", Wait:=True
Dann evaluiert Testen zu true (Wahr)
Ein wenig unkonventionell, und von hinten durch die brust ist auge !
Sonst noch andere ideen?
Gruss
horst
Anzeige
AW: makro excel verweise ueberpruefen
16.05.2006 22:36:41
Tassos
Hallo Horst,
"Set VBE = Application.VBE.ActiveVBProject" IST FALSCH!!
Erklärung:
Mit dieser Zeile wird der VBE Editor der Excel-Anwendung angesprochen
und nicht die Arbeitsmappe (ThisWorkbook.VBProject) in der sich der evtl
aktivierter Solver-Verweis befindet.
Da es beim Starten der Datei kein aktivierter VBE Editor gibt
zeigt Deine Funktion "Falsch" und erst wenn Du den VBE Editor
gestartet hast zeigt sie „wahr“.
Also damit hat man "daneben geschossen".
Darum habe ich geschrieben:
"Ersetze "Set VBE = Application.VBE.ActiveVBProject" ' (Anwendung)
mit "Set VBE = ThisWorkbook.VBProject" '(Die bestimmte Arbeitsmappe)"
Ich kenne die Zusammenhänge Deines Excel-Projectes nicht
aber folgendes muss funktionieren:


Option Explicit
'In "DieseArbeitsmappe" einfügen
Private Sub Workbook_Open()
MsgBox Verweis_installiert("SOLVER")
End Sub
Function Verweis_installiert(Verweisname) As Boolean
On Error GoTo Ende
Verweis_installiert = False
Set VBE = ThisWorkbook.VBProject
With VBE
For x = 1 To .References.Count
If .References(x).Name = Verweisname Then
Verweis_installiert = True
Exit Function
End If
Next
End With
Ende:
End Function


Gruss
Tassos
Anzeige
AW: Nachtrag...
16.05.2006 22:49:47
Tassos
Hab die erste zeile der Funktion vergessen!: Dim VBE, x%
Gruss
Tassos
AW: Nachtrag...
18.05.2006 09:34:30
Horst
Hallo Tasso !
Danke das war es !
Gruss
horst
;

Forumthreads zu verwandten Themen

Anzeige
Anzeige
Anzeige
Anzeige
Entdecke relevante Threads

Schau dir verwandte Threads basierend auf dem aktuellen Thema an

Alle relevanten Threads mit Inhaltsvorschau entdecken
Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Entdecke mehr
Finde genau, was du suchst

Die erweiterte Suchfunktion hilft dir, gezielt die besten Antworten zu finden

Suche nach den besten Antworten
Unsere beliebtesten Threads

Entdecke unsere meistgeklickten Beiträge in der Google Suche

Top 100 Threads jetzt ansehen
Anzeige