Live-Forum - Die aktuellen Beiträge
Anzeige
Archiv - Navigation
1108to1112
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

Ofice Versionen

Ofice Versionen
Dieterlem
Hallo Excelfreunde,
ich habe eine Exceldatei, die von vielen Usern auf verschiedenen Rechnern genutzt wird. Die Datei wurde mit Excel 2000 erstellt. Nun wurde mir gemeldet, dass die Datei Fehler bei neueren Officeversionen hat. Ich habe festgestellt, dass die Verweise der Bibliotheken nicht mehr stimmen. Ich verwende folgende Verweise:
1. Visual Basic for Applications
. Pfad: C:\Programme\Gemeinsame Dateien\Microsoft Shared\VBA\VBA6\
2. Microsoft Excel 9.0 Object Library
. Pfad: C:\Programme\Microsoft Office\Office\Excel9.olb
3. OLE Automation
. Pfad: C:\WINNT\System32\stdole2.tlb
4. Microsoft Office 9.0 Object Library
. Pfad: C:\Programme\Microsoft Office\Office\MSO0.DLL
5. Ref Edit Control
. Pfad: C:\Programme\Microsoft Office\Office\REFEDIT.DLL
Bei Office 2003 habe ich herausgefunden, dass der Pfad z.B. bei Ref Edit Control folgender ist:
Pfad: C:\Programme\Microsoft Office\Office 11\REFEDIT.DLL
Daher funktionieren einige Verweise nicht bei neueren Officeversionen. Ich habe herausgefunden, dass ich mit select case Application.version die Versionen abfragen kann und auch wie ich Verweise installieren kann.
Wie finde ich nun heraus, welchen Pfad das installierte Office hat, welches der User auf seinem Rechner verwendet?
Haben die Verweise auch den gleichen Dateinamen?
Gruß
Dieterlem

4
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Benutzer
Anzeige
Pfad = Application.Path
18.10.2009 13:06:46
Original
oT
AW: Pfad = Application.Path
18.10.2009 13:10:57
Dieterlem
Danke Kurt,
manches kann ja so einfach sein.
Sind die Dateinamen der Verweise bei allen Versionen die gleichen?
Gruß
Dieterlem
AW: Pfad = Application.Path
18.10.2009 14:53:16
Dieterlem
Hallo Excelfreunde,
mein Code sieht nun wie folgt aus:
Sub Verweise_installieren()
Dim Ordner As String
Dim Dateiname As String
Dim VBE As Variant
Set VBE = Application.VBE.ActiveVBProject
'Office-Ordner (kann bei den Versionen unterschiedlich sein)
Ordner = Application.Path
If Right(Ordner, 1)  "\" Then Ordner = Ordner & "\"        'ggf. einen Backslash anhängen
If Not Verweis_installiert("VBA") Then
Dateiname = "C:\Programme\Gemeinsame Dateien\Microsoft Shared\VBA\VBA6\VBE6.DLL"
If Dir(Dateiname)  "" Then VBE.References.AddFromFile Dateiname  'Wenn Datei existiert,  _
dann Verweis setzen
End If
If Not Verweis_installiert("EXCEL") Then
'vollen Dateinamen zusammensetzen
Dateiname = Ordner & "EXCEL9.OLB"
If Dir(Dateiname)  "" Then VBE.References.AddFromFile Dateiname  'Wenn Datei existiert,  _
dann Verweis setzen
End If
If Not Verweis_installiert("STDOLE") Then
Dateiname = "C:\WINNT\System32\stdole2.tlb"
If Dir(Dateiname)  "" Then VBE.References.AddFromFile Dateiname  'Wenn Datei existiert,  _
dann Verweis setzen
End If
If Not Verweis_installiert("OFFICE") Then
'vollen Dateinamen zusammensetzen
Dateiname = Ordner & "MSO9.DLL"
If Dir(Dateiname)  "" Then VBE.References.AddFromFile Dateiname  'Wenn Datei existiert,  _
dann Verweis setzen
End If
If Not Verweis_installiert("MSFORMS") Then
Dateiname = "C:\WINNT\System32\FM20.DLL"
If Dir(Dateiname)  "" Then VBE.References.AddFromFile Dateiname  'Wenn Datei existiert,  _
dann Verweis setzen
End If
If Not Verweis_installiert("REFEDIT") Then
'vollen Dateinamen zusammensetzen
Dateiname = Ordner & "REFEDIT.DLL"
If Dir(Dateiname)  "" Then VBE.References.AddFromFile Dateiname  'Wenn Datei existiert,  _
dann Verweis setzen
End If
End Sub
Function Verweis_installiert(Verweisname) As Boolean
'prüft ob Verweis installiert ist
Dim VBE As Variant
Dim x As Integer
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
End Function

Das Problem was ich noch immer habe ist, dass die Verweise unter Excel 2000 auch installiert werden falls sie fehlen. Den Officeordner wird auch richtig ausgewählt.
Aber sind die Dateinamen z.B. MSO9.DLL bei neueren Versionen gleich? Steht die 9 in MSO9.DLL nicht für Office 9 (also Office 2000)?
Wie sieht es mit den Verweisen aus, die nicht in einem Office-Ordner liegen wie z.B. MSFORMS (C:\WINNT\System32\FM20.DLL)?
bleiben die bie neueren Versionen Office oder Betriebssystem gleich?
Gruß
Dieterlem
Anzeige
References.AddFromGUID oT
19.10.2009 19:54:34
Dieterlem

Links zu Excel-Dialogen

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige