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

.BrowseForFolder

.BrowseForFolder
12.03.2006 10:56:35
ransi
Guten morgen
Habe da eine Frage:
Ich bastel grade an einer Alternative zu GetOpenFilename mit voreingestelltem
Startordner.
Ausgehend von diesem code:
Option Explicit

Sub Aufruf()
Call get_Folder("Was soll ich machen?", "C:\Eigene Dateien")
End Sub


Sub get_Folder(Optional capt, Optional initF)
'Original von K.Rola
Dim objShell As Object
Dim objFolder As Object
Dim objItem As Object
Set objShell = CreateObject("Shell.Application")
With objShell
Set objFolder = .BrowseForFolder(0&, capt, &H4000 + &H200 + &H10, initF)
End With
If Not objFolder Is Nothing Then
Set objItem = objFolder.Self
MsgBox objItem.Path
End If
End Sub

Problem:
wenn ich einen ordner auswähle gehts,
wähle ich eine datei kommt Fehlermeldung:
Automatisierungsfehler
Das System kann die angegebene Datei nicht finden.
Wo habe ich da den Denkfehler?
ransi

6
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: .BrowseForFolder
12.03.2006 11:33:56
Nepumuk
Hallo ransi,
das Flag &H200 gibt es nicht.
Option Explicit

Private Const BIF_BROWSEINCLUDEFILES = &H4000

Sub Aufruf()
    Call get_Folder("Was soll ich machen?", "C:\Eigene Dateien")
End Sub

Sub get_Folder(Optional capt, Optional initF)
    'Original von K.Rola
    Dim objShell As Object
    Dim objFolder As Object
    Dim objItem As Object
    Set objShell = CreateObject("Shell.Application")
    Set objFolder = objShell.BrowseForFolder(0&, capt, _
        BIF_BROWSEINCLUDEFILES, initF)
    If Not objFolder Is Nothing Then
        Set objItem = objFolder.Self
        MsgBox objItem.Path
    End If
End Sub

Alle Flags:
Private Const BIF_RETURNONLYFSDIRS = &H1
Private Const BIF_DONTGOBELOWDOMAIN = &H2
Private Const BIF_STATUSTEXT = &H4
Private Const BIF_RETURNFSANCESTORS = &H8
Private Const BIF_EDITBOX = &H10
Private Const BIF_VALIDATE = &H20
Private Const BIF_NEWDIALOGSTYLE = &H40
Private Const BIF_BROWSEINCLUDEURLS = &H80
Private Const BIF_BROWSEFORCOMPUTER = &H1000
Private Const BIF_BROWSEFORPRINTER = &H2000
Private Const BIF_BROWSEINCLUDEFILES = &H4000
Private Const BIF_SHAREABLE = &H8000

Gruß
Nepumuk

Anzeige
AW: .BrowseForFolder
ransi
Hallo Nepumuk
Die &H200 hab ich hier her:
http://ms-office-forum.net/forum/printthread.php?t=95650
Dein code gibt eine andere Fehlermeldung.
"Die Methode Browseforfolder für das object Ishelldispatch4 ist fehlgeschlagen."
Hier setzt der debugger an:
Set objFolder = objShell.BrowseForFolder(0&, capt, _
BIF_BROWSEINCLUDEFILES, initF)
Kannst du mit dem von dir geposteten code eine Datei auswählen?
ransi
Nachtrag
12.03.2006 11:38:36
Nepumuk
Hallo ranst,
du kannst den Dialog auch an Modal anzeigen.
Option Explicit

Private Declare Function GetActiveWindow Lib "user32.dll" () As Long

Private Const BIF_BROWSEINCLUDEFILES = &H4000

Sub Aufruf()
    Call get_Folder("Was soll ich machen?", "C:\Eigene Dateien")
End Sub

Sub get_Folder(Optional capt, Optional initF)
    'Original von K.Rola
    Dim objShell As Object
    Dim objFolder As Object
    Dim objItem As Object
    Set objShell = CreateObject("Shell.Application")
    Set objFolder = objShell.BrowseForFolder(GetActiveWindow, _
        capt, BIF_BROWSEINCLUDEFILES, initF)
    If Not objFolder Is Nothing Then
        Set objItem = objFolder.Self
        MsgBox objItem.Path
    End If
End Sub

Gruß
Nepumuk

Anzeige
AW: .BrowseForFolder
17.03.2006 00:13:33
MichaV
Hallo ransi,
vielleicht hilfts Dir ja wenn ich Dir sage, daß Dein Code bei mir funzt. Mit Dateien und Ordnern.
Gruß- Micha
AW: .BrowseForFolder
17.03.2006 00:40:40
Reinhard
Hallo Micha,
soll ransi jetzt zu Peter rübergehen um deine Version zu ermitteln *grien*
Ich glaube du hast auch 9.0.
Mit meiner 9.0 auf WinXP kommt bei beiden eine Fehlermeldung. Aber ne unterschiedliche. Also beides so Automatisierungsfehler, aber unterscheiden sich im Aufbau der Meldung.
Ui, grad nochmal was probiert, wenn ich Eigenedateien aufrufe kommt die msgbox, aber dateien in diesem Ordner negativ=Fehler
Gruß
Reinhard
AW: .BrowseForFolder
17.03.2006 08:26:02
MichaV
Hi Reinhardt,
er kann ja fragen ;o)
Ich hab auch XL9.0 aber im Gegensatz zu Euch auf Win2k.
Schönes Wochenende allen Beiteiligten.
Gruss- Micha
Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige
Archiv - Verwandte Themen
Forumthread
Beiträge