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

Ordner öffnen die 2te

Ordner öffnen die 2te
20.01.2005 12:54:35
Udo
Hallo nochmal!
Vorgestern habe ich hier schonmal gefragt, aber ich habe wohl meine Frage nicht gut formuliert. Also nochmal:
Es geht mir darum, die Namen aller Dateien eines beliebigen Ordners in ein Excelsheet einzufügen.
Den Ordner möchte ich jedesmal beliebig auswählen können.
Bis jetzt mache ich das so:
Ich verwende GetOpenFileName, um eine Datei auszuwählen, die in dem Ordner ist, den ich komplett auflisten möchte.
Dann verwende ich GetParentFolderName, um den Ordner zu bestimmen.
Dann kommt noch meine FileSearch-Methode, die es mir erlaubt, durch die Subfolders-Eigenschaft auszuwählen, ob ich die Dateien der Unterordner auch importieren möchte.
Meine Frage bezieht sich jetzt auf GetOpenFileName. Diese Methode ermöglicht es nämlich nur, Dateien auszuwählen und nicht Ordner. Wenn man einen Ordner anwählt, öffnet er sich. Ich möchte aber einen Ordner anwählen ohne die Dateien zu sehen. Die Anwahl des Ordners soll also sofort den Pfadnamen für den Ordner zurückgeben.
Unter Windows geht sowas (z.B. mit der CopyTo-Methode).
Ich hätte das aber gern auch in VBA.
Wie geht das?
Danke schön
Udo

2
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: Ordner öffnen die 2te
20.01.2005 15:26:46
Josef
Hallo Udo!
Wie findest du das?


      
Option Explicit
'#################################################################
'Created By Chip Pearson and Pearson Software Consulting Services
'\'a9 Copyright 1997-2003 Charles H. Pearson
' http://www.cpearson.com/excel/BrowseFolder.htm

'Using the Shell Controls Library
'
'First you need to set a reference to the "Microsoft Shell
'Controls And Automation" object library.
'In the VBA Editor, go to the Tools menu, choose References,
'and scroll down to this item and put a check next to it.
'
'Then, copy the following code to a standard code module:
Private Const BIF_RETURNONLYFSDIRS As Long = &H1
Private Const BIF_DONTGOBELOWDOMAIN As Long = &H2
Private Const BIF_RETURNFSANCESTORS As Long = &H8
Private Const BIF_BROWSEFORCOMPUTER As Long = &H1000
Private Const BIF_BROWSEFORPRINTER As Long = &H2000
Private Const BIF_BROWSEINCLUDEFILES As Long = &H4000
Private Const MAX_PATH As Long = 260
   
Function BrowseFolder(Optional Caption As String, _
   
Optional InitialFolder As StringAs String
   
Dim SH As Shell32.Shell
   
Dim F As Shell32.Folder
   
Set SH = New Shell32.Shell
   
Set F = SH.BrowseForFolder(0&, Caption, BIF_RETURNONLYFSDIRS, _
   InitialFolder)
   
If Not F Is Nothing Then
      BrowseFolder = F.Items.Item.Path
   
End If
End Function
'####################################################################

Sub Dateien_Auflisten()
'by J.Ehrensberger

'!!! Unter Verweise muss zuerst der Verweis auf
'    "Microsoft Shell Controls And Automation"
'    gesetzt werden!
'!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!

Dim fSearch As FileSearch
Dim wkb As Workbook
Dim strPath As String
Dim iCnt As Integer
Columns(
"A:A").ClearContents
strPath = BrowseFolder(
"Ordner Wählen")
If strPath = "" Then Exit Sub
Set fSearch = Application.FileSearch
With fSearch
.NewSearch
.LookIn = strPath
.SearchSubFolders = 
True  '<<<<Unterordner durchsuchen True/False
.FileType = msoFileTypeAllFiles
.Filename = 
"*.*"
.Execute
    
For iCnt = 1 To .FoundFiles.Count
        Cells(iCnt, 1) = .FoundFiles(iCnt)
    
Next
End With
End Sub 
Anzeige
AW: Ordner öffnen die 2te
20.01.2005 15:34:27
Holger
Hallo Udo,
versuche mal: https://www.herber.de/bbs/user/16474.xls
Ich habe die vor Jahren erstellt, weiß also nicht genau, ob sie heute noch läuft (XP ...).
Holger

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige