kostenloser Webspace werbefrei: lima-city


[VBA] Dateiauswahldialog

lima-cityForumProgrammiersprachenBasic

  1. Autor dieses Themas

    burgi

    Co-Admin Kostenloser Webspace von burgi

    burgi hat kostenlosen Webspace.

    Hi!

    Ich hab für AutoCAD 2004 ein VBA-Makro geschrieben, das mit einer AutoCAD-Datei gewissen Vorgänge ausführt (was ist eigentlich irrelevant). Nun möchte ich, dass ich einfach 'ne Menge Dateien markieren kann, und dann das Makro für diese jeweils ausgeführt wird! Deshalb möchte ich wissen, wie man einen Dateiauswahldialog in VBA implementiert.
    Also zweite "Auswahlmethode" möchte ich zur Verfügung stellen, dass der Anwender einen Ordner auswählen kann, und dieser dann anschließend samt aller Unterverzeichnisse nach DWGs durchsucht wird, und auf diese Dateien das Makro angewendet wird. Nur weiß ich nicht, wie man mit VBA eine rekursive Suche erstellt (da ich normalerweise mit Delphi arbeite).

    Wäre für jegliche Antwort sehr dankbar!
  2. Diskutiere mit und stelle Fragen: Jetzt kostenlos anmelden!

    lima-city: Gratis werbefreier Webspace für deine eigene Homepage

  3. Ich bin jetzt nicht unmittelbar der Spezialist, aber ich denke nicht das das mit VBA überhaupt geht, aber ich lasse mich gerne eines besseren beleheren, ich wüsste jetzt nicht wie und darum behaupte ich mal das geht nicht.
  4. Autor dieses Themas

    burgi

    Co-Admin Kostenloser Webspace von burgi

    burgi hat kostenlosen Webspace.

    Doch! Das muß gehen! Irgendwie mit der Dir$-Funktion! Nur wie finde ich da die Unterverzeichnisse, und die einzelnen Dateien? Irgendwie hab' ich sowas schon mal geschafft!?
  5. cbhp

    Co-Admin Kostenloser Webspace von cbhp

    cbhp hat kostenlosen Webspace.

    Hi. Dateiauswahldialogfelder stehen in VBA leider nicht zur Verfügung. Im Prinzip stehen dir gar keine Dialogfelder in VBA zur Verfügung, die du selbst verwenden kannst.

    Hier ist ein Beispiel für eine rekursive Dateisuche, die dir eine Liste von Dateien zurückgibt. Du musst nur einen Ordner angeben. Es kann auch nur nach bestimmten Dateiendungen gesucht werden.

    Code:

    Option Explicit
    
    Private Sub ButtonSearch_Click()
    
        Dim Auflistung As String
        Auflistung = Auflistung & CreateFileList("A:\", False, ".htm")
        Auflistung = Auflistung & CreateFileList("B:\", False)
        Auflistung = Auflistung & CreateFileList("C:\", True, ".txt")
        Auflistung = Auflistung & CreateFileList("D:\", True)
        UserForm1.TextBox1.Text = Auflistung
    
    End Sub
    
    Function CreateFileList(ByVal StartFolder As String, ByVal IncluceSubFolders As Boolean, Optional ByVal ExtensionFilter As String = "") As String
        
        On Error Resume Next
        
        Dim mFileSystemObject As Object
        Dim mFolders As Object
        Dim mFolder As Object
        Dim mFiles As Object
        Dim mFile As Object
        Dim mList As String
        
        Set mFileSystemObject = CreateObject("Scripting.FileSystemObject")
    
        Set mFolder = mFileSystemObject.GetFolder(StartFolder)
        
        'Dient dazu, dass das Programm weiterhin auf Benutzereingaben reagiert.
        Call VBA.DoEvents
        
        Set mFiles = mFolder.Files
        For Each mFile In mFiles
            'Alle Dateien abrufen und mit Filter vergleichen
            If StrConv(mFile.Name, vbUpperCase) Like StrConv("*" & ExtensionFilter, vbUpperCase) Then
                mList = mList & mFile.Path & vbNewLine
            End If
        Next
            
        If IncluceSubFolders = True Then
            'Ab hier rekursiver Aufruf für alle Unterverzeichnisse!
            Set mFolders = mFolder.SubFolders
            For Each mFolder In mFolders
                mList = mList & CreateFileList(mFolder.Path, IncluceSubFolders, ExtensionFilter)
            Next
        End If
        
        CreateFileList = mList
        
    End Function
  6. Autor dieses Themas

    burgi

    Co-Admin Kostenloser Webspace von burgi

    burgi hat kostenlosen Webspace.

    Danke, cbhp. Genau so meinte ich das ja, dass ich meinen eigenen Dateiauswahldialog basteln muß! So wird's gehen!

    Bitte closen ...
  7. Diskutiere mit und stelle Fragen: Jetzt kostenlos anmelden!

    lima-city: Gratis werbefreier Webspace für deine eigene Homepage

Dir gefällt dieses Thema?

Über lima-city

Login zum Webhosting ohne Werbung!