Hi Benny,
dann findest du sowas wie das Nachfolgende. Wars hilfreich?
Gruß
Reinhard
Hallo Leute,
habe ein Projekt mit Makros unter Excel 2003 erstellt (funktioniert auch perfekt), wo per Mausklick auf eine Schaltfläche ein "Datei Öffnen"-Dialog angezeigt wird. Nun funktioniert aber das Makro unter Excel 2000 plötzlich nicht mehr ("Kompilierungsfehler").
Ich habe in meinem Projekt folgendes Makro in Verwendung:
-------------------------------------------------------------------
' Funktion: Rückgabe eines Dateinamens per "Datei öffnen"-Dialogfeld.
Function datei_open()
' Variable als FileDialog - Objekt definieren:
Dim vrtSelectedItem As Variant
Dim fd As FileDialog
' FileDialog-Objekt als File Picker Dialogbox definieren:
Set fd = Application.FileDialog(msoFileDialogFilePicker)
' Verwendung eines Width ... End Width Blocks zum Referenzieren des FileDialog-Objekts:
With fd
' Festlegen einiger Eigenschaften wie Sperre auf einen Dateityp, Sperre von Mehrfachauswahl:
.Filters.Add "Excel", "*.xls", 1
.AllowMultiSelect = False
' Show-Methode um den FilePicker-Dialog anzuzeigen. Wenn der User Action gedrückt hat, Rückgabe des Wertes:
If .Show = -1 Then
' Durchlauf aller FileDialogSelectedItems:
For Each vrtSelectedItem In .SelectedItems
' vrtSelectedItem gibt den Dateinamen zurück. Speichern in einer Variable:
datei_open = vrtSelectedItem
Next vrtSelectedItem
' Wenn der User "Cancel" anklickt:
Else
End If
End With
' Variable zurücksetzen
Set fd = Nothing
End Function
----------------------------------------------------------------------
Der Fehler tritt in der Zeile "dim fd as FileDialog" auf, und zwar "Benutzerdefinierter Typ nicht erlaubt".
Gibt's Abhilfe, wie ich das ganze auch unter Excel 2000 zum Laufen bringe?
MFG,
BW
Beitrag 2 aus der Diskussionsgruppe
Von:Melanie Breden (Melanie.BredenNOSPAM@mvps.org)
View this article only
Newsgroups:microsoft.public.de.excel
Datum:2004-01-02 06:38:21 PST
Hallo B.?
gib bitte deinen Vornamen an :-)
"B. Winkelmayer" schrieb:
> habe ein Projekt mit Makros unter Excel 2003 erstellt (funktioniert auch perfekt), wo per Mausklick auf eine Schaltfläche ein "Datei Öffnen"-Dialog angezeigt wird. Nun funktioniert aber das Makro unter Excel 2000 plötzlich nicht mehr ("Kompilierungsfehler").
> Ich habe in meinem Projekt folgendes Makro in Verwendung:
[Snipp Code]
> Der Fehler tritt in der Zeile "dim fd as FileDialog" auf, und zwar "Benutzerdefinierter Typ nicht erlaubt".
> Gibt's Abhilfe, wie ich das ganze auch unter Excel 2000 zum Laufen bringe?
das FileDialog-Objekt steht erst ab Excel XP zur Verfügung.
Verwende folgende Api-Funktion:
Private Declare
Function GetTempPath Lib "kernel32" Alias "GetTempPathA" _
(ByVal nBufferLength As Long, _
ByVal lpBuffer As String) As Long
Diese kannst du in deine Prozeduren oder
Function integrieren:
Function datei_open() As String
datei_open = Application.GetOpenFilename("(*.xls),*.xls")
' Bei Dialog-Abbruch
If datei_open = "Falsch" Then datei_open = ""
End Function
--
Mit freundlichen Grüssen
Melanie Breden
- Microsoft MVP für Excel -
http://excel.codebooks.de (Das Excel-VBA Codebook)
#Excel-Auftragsprogrammierung#