Live-Forum - Die aktuellen Beiträge
Anzeige
Archiv - Navigation
1284to1288
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
Inhaltsverzeichnis

Ordnernamen auflisten

Ordnernamen auflisten
18.11.2012 18:39:42
Franz
Hallo zusammen,
ich bin auf der Suche nach einem Makro, was zu einem Ordner - den ich in Excel vorgebe - die Unterordner in Excel aufliste.
Beispiel: Ordner: P:\Privat
Hier bestehen nun zwei Unterordner:
P:\Privat\Dokumente\Excel
P:\Privat\Tabellen
Aufgelistet werden müssten untereinander ohne Pfadangabe (ich brauche nur die Ordnername)
Dokumente
Tabellen
Wer hat sowas schon einmal gemacht oder vielleicht ein derartiges Makro bereits im Gebrauch?
Vielen Dank!
Franz Kupfer

5
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: Ordnernamen auflisten
18.11.2012 18:46:55
ransi
Hallo
Wer hat sowas schon einmal gemacht oder vielleicht ein derartiges Makro...?
Teste mal dies:
' **********************************************************************
' Modul: Tabelle2 Typ: Element der Mappe(Sheet, Workbook, ...)
' **********************************************************************

Option Explicit

' **********************************************************************
' Modul: Tabelle1 Typ: Element der Mappe(Sheet, Workbook, ...)
' **********************************************************************


Dim zaehler As Long
Dim arr
Public Sub Aufruf()
    Dim objShell As Object
    Dim objFolder As Object
    Dim objItem As Object
    Redim arr(0)
    Set objShell = CreateObject("Shell.Application")
    With objShell
        Set objFolder = .BrowseForFolder(0&, "Was soll ich machen?", 0)
    End With
    If Not objFolder Is Nothing Then
        Set objItem = objFolder.Self
        arr(0) = objItem.Path
        Else: Exit Sub
    End If
    Schreiben objItem.Path, True 'True wenn die Unterordner auch wieder geschrieben werden sollen.
    'Sonst False oder weglassen. Entspricht SearchSubfolders
    Range("a1").Resize(UBound(arr)) = WorksheetFunction.Transpose(arr) 'ausgeben
    zaehler = 0
End Sub


Public Sub Schreiben(Suchordner, Optional sbfolds As Boolean = False)
    Dim fso As Object
    Dim datei
    Dim Unterordner
    Set fso = CreateObject("Scripting.FileSystemObject")
    Set datei = fso.getfolder(Suchordner)
    On Error Resume Next
    Select Case sbfolds
        Case True
            For Each Unterordner In datei.subfolders
                zaehler = zaehler + 1
                Redim Preserve arr(zaehler)
                arr(zaehler) = Unterordner.Path
                Schreiben Unterordner, True
            Next
        Case False
            For Each Unterordner In datei.subfolders
                zaehler = zaehler + 1
                Redim Preserve arr(zaehler)
                arr(zaehler) = Unterordner.Path
            Next
    End Select
    Set fso = Nothing
    Set datei = Nothing
End Sub


ransi

Anzeige
AW: Ordnernamen auflisten
18.11.2012 19:04:35
Franz
Hallo Ransi,
vielen Dank, damit hast Du mir sehr weitergeholfen.
Franz

Zellinhalt zerlegen
19.11.2012 07:15:39
Franz
Hallo zusammen,
Ransi hat mir netterweise das Makro zur Verfügung gestellt. Allerdings komme ich aufgrund meines Wissens nicht weiter.
Wie kann ich den Zellinhalt nun so zerlegen, dass ich aus folgender Beispieldarstellung (aufgelistet in Spalte A)
P:\Privat
P:\Privat\Dokumente\Excel
P:\Privat\Tabellen
diese Werte erhalte (am besten in Spalte B)
Dokumente
Tabellen
Kurz zum besseren Verständnis: Ich möchte aus einem Ordner lediglich die Namen der Unterordner haben, aber sohne Pfadangabe.
Vielen Dank für Eure Hilfe!
Gruß
Franz

Anzeige
AW: Zellinhalt zerlegen
19.11.2012 07:39:43
ransi
Hallo Franz
DAzu musst du nur das erste Makro etwas ändern.
Teste mal:
Option Explicit



Dim zaehler As Long
Dim arr
Public Sub Aufruf()
    Dim objShell As Object
    Dim objFolder As Object
    Dim objItem As Object
    Dim L As Long
    Redim arr(0)
    Dim tmp
    Set objShell = CreateObject("Shell.Application")
    With objShell
        Set objFolder = .BrowseForFolder(0&, "Was soll ich machen?", 0)
    End With
    If Not objFolder Is Nothing Then
        Set objItem = objFolder.Self
        arr(0) = objItem.Path
        Else: Exit Sub
    End If
    Schreiben objItem.Path, True 'True wenn die Unterordner auch wieder geschrieben werden sollen.
    'Sonst False oder weglassen. Entspricht SearchSubfolders
    '################
    For L = LBound(arr) To UBound(arr)
        tmp = Split(arr(L), Application.PathSeparator)
        Cells(L + 1, 1).Resize(1, UBound(tmp) + 1) = tmp 'ausgeben
    Next
    '################
    ' Range("a1").Resize(UBound(arr)) = WorksheetFunction.Transpose(arr)
    zaehler = 0
End Sub



ransi

Anzeige
AW: Zellinhalt zerlegen
21.11.2012 12:29:36
Franz
Hallo Ransi,
vielen Dank für Deine Mühe. In dieser Zeile
Schreiben objItem.Path, False 'True wenn die Unterordner auch wieder geschrieben werden sollen.
kommt noch ein Fehler.
Fehler beim Kompilieren
Sub oder Function nicht definiert.
Vielen Dank!
Franz

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige