Live-Forum - Die aktuellen Beiträge
Anzeige
Archiv - Navigation
456to460
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
456to460
456to460
Aktuelles Verzeichnis
Verzeichnis Index
Verzeichnis Index
Übersicht Verzeichnisse
Inhaltsverzeichnis

filedialog unter office2000

filedialog unter office2000
19.07.2004 09:41:10
joel
hallo
ich habe unter office XP folgenden code geschrieben. leider funtzt das ganze unter office 2000 (win2000, sp4) nicht. grund: er kennt offensichtlich das "fileDialog"-objekt nicht. muss ich evtl. eine bibliothek zusätzlich laden, oder gibt es dieses objekt in office 2000 noch nicht? wenn ja, wie kann ich das alternativ lösen?
' PUBLIC
'access-datei auswählen und öffnen
Public Function DlgMdbDateiAuswaehlen() As String
Dim fdsiSelectedItem As FileDialogSelectedItems

Set fdsiSelectedItem = DlgDateiAuswaehlen(sTitel:="Access-Datenbank auswählen:", _
sFilterBeschreibung:="Access-Datenbank", _
sFilterEndung:="*.mdb")
If Not fdsiSelectedItem Is Nothing Then
DlgMdbDateiAuswaehlen = fdsiSelectedItem.Item(1)
Else
DlgMdbDateiAuswaehlen = ""
End If
End Function
' PRIVATE
'+ dateiauswahl-dialog anzeigen und ausgewählte dateien öffnen

Private Function DlgDateiAuswaehlen(Optional ByVal bMehrfachauswahl As Boolean = False, _
Optional ByVal sTitel As String = "", _
Optional ByVal sFilterBeschreibung As String = "", _
Optional ByVal sFilterEndung As String = "") _
As FileDialogSelectedItems
Dim fd As FileDialog    'fileDialog-objekt
Dim vSelectedItem As Variant    'variable für alle selektierten items. muss ein
'variant sein, da "For Each ... Next" nicht mit
'einem string funktioniert
Set fd = Application.FileDialog(fileDialogType:=msoFileDialogFilePicker)    'dateiauswahl-dialogfeld
With fd
.AllowMultiSelect = bMehrfachauswahl    'es kann nur eine datei ausgewählt werden
If sTitel <> "" Then    'sezte titel, falls einer angegeben wurde, ansonsten standard-titel
.Title = sTitel
End If
Call .Filters.Add(Description:=sFilterBeschreibung, _
Extensions:=sFilterEndung, _
Position:=1)  'neuen filter definieren
.FilterIndex = 1    'neuen filter auswählen
If .Show = -1 Then  'falls der benutzer die schaltfläche zum ausführen der aktion gedrückt hat
Set DlgDateiAuswaehlen = .SelectedItems
Else
Set DlgDateiAuswaehlen = Nothing
End If
End With
Set fd = Nothing    'lösche der objekt-variable
End Function

danke für eure hilfe
gruss joel

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

Betreff
Datum
Anwender
Anzeige
AW: filedialog unter office2000
Ramses
Hallo
Der Dateidialog wird von allen Versionen unter XP nicht unterstützt.
Das geht nur, wenn ein Verweis auf die Office 11 Library auf dem betreffenden Rechner gesetzt werden kann.
Da musst du dir was völlig neues aufbauen, und/oder allenfalls die Versionen abfragen, welchen Dialog du zur Ansicht bringst
Gruss Rainer
AW: filedialog unter office2000
19.07.2004 11:06:03
joel
hallo rainer
hab mich inzwischen auch ein wenig "klug" gelesen.. office library 10 oder höher brauchts. hab mir jetzt für office2000 folgendes gebastelt..
'eine access-datenbank auswählen (*.mdb)
Public Function dlgMdbDateiAuswaehlen() As String
Dim sFilter As String
Dim sTitle As String

sTitle = "Access-Datenbank auswählen:"
sFilter = "Acccess-Datenbank (*.mdb),*.mdb"

dlgMdbDateiAuswaehlen = dlgDateiAuswaehlen(sTitle:=sTitle, _
sFilter:=sFilter)
End Function
' PRIVATE
'+ dateiauswahl-dialog anzeigen

Private Function dlgDateiAuswaehlen(Optional ByVal sTitle As String = "", _
Optional ByVal sFilter As String = "", _
Optional ByVal iFilterIndex As Integer = 1, _
Optional ByVal bMultiselect As Boolean = False) _
As Variant
Dim vDateiName As Variant
vDateiName = Application.GetOpenFilename(filefilter:=sFilter, _
filterindex:=iFilterIndex, _
Title:=sTitle, _
MultiSelect:=bMultiselect)
dlgDateiAuswaehlen = IIf(TypeName(vDateiName) = "Boolean", _
"", _
vDateiName)
End Function

es gibt mir entweder einen string ("" oder namen der datei bei multiselect = false) oder ein string-array (name(n) der datei(en) bei multiselect = true)
werds aber wohl noch ausbauen
danke trotzdem,
gruss joel
ps: wieso erkennt er mir hier im forum eigentlich immer nur zufallsmässig den code?
Anzeige
AW: filedialog unter office2000
Ramses
Hallo
Raffinierte Variante :-)
Der Code wird anhand des Schlüsselwortes "Private" oder "Sub" erkannt.
Je nachdem wird dann richtig oder nicht richtig dargestellt
Gruss Rainer
*geschmeicheltfühl & danke für tipp (oT)
19.07.2004 11:58:57
joel
.

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige