Maximale Pfadlänge in Windows und VBA umgehen?

Hallo,

ich benutze folgenden Code in Excel VBA um mir Dateipfad und Dateiname eines Ordners und allen darin enthaltenen Unterordnern aufzulisten.
(Ihr könnt es testen, den Code einfach in ein Modul kopieren, "MainList" ausführen und einen Ordner eurer Wahl auswählen)

Ich habe jetzt das Problem, dass dieser Code alle Dateien überspringt, deren Pfadlänge über 255 Zeichen lang ist. Einige Dateien überschreiten nämlich die 255 Zeichen mit dem angehängten Dateinamen.
Sie liegen aber dennoch ab. Nur liest VBA diese nicht aus. Kann man da was dran machen?

Sub MainList()
'Updateby Extendoffice
Set Folder = Application.FileDialog(msoFileDialogFolderPicker)
If Folder.Show <> -1 Then Exit Sub
xDir = Folder.SelectedItems(1)
Call ListFilesInFolder(xDir, True)
End Sub

Sub ListFilesInFolder(ByVal xFolderName As String, ByVal xIsSubfolders As Boolean)
Dim xFileSystemObject As Object
Dim xFolder As Object
Dim xSubFolder As Object
Dim xFile As Object
Dim rowIndex As Long
Set xFileSystemObject = CreateObject("Scripting.FileSystemObject")
Set xFolder = xFileSystemObject.GetFolder(xFolderName)
rowIndex = Application.ActiveSheet.Range("A65536").End(xlUp).Row + 1
For Each xFile In xFolder.Files
  Application.ActiveSheet.Cells(rowIndex, 1).Formula = xFile.Path
  Application.ActiveSheet.Cells(rowIndex, 2).Formula = xFile.Name
  rowIndex = rowIndex + 1
Next xFile
If xIsSubfolders Then
  For Each xSubFolder In xFolder.SubFolders
    ListFilesInFolder xSubFolder.Path, True
  Next xSubFolder
End If
Set xFile = Nothing
Set xFolder = Nothing
Set xFileSystemObject = Nothing
End Sub

Function GetFileOwner(ByVal xPath As String, ByVal xName As String)
Dim xFolder As Object
Dim xFolderItem As Object
Dim xShell As Object
xName = StrConv(xName, vbUnicode)
xPath = StrConv(xPath, vbUnicode)
Set xShell = CreateObject("Shell.Application")
Set xFolder = xShell.Namespace(StrConv(xPath, vbFromUnicode))
If Not xFolder Is Nothing Then
  Set xFolderItem = xFolder.ParseName(StrConv(xName, vbFromUnicode))
End If
If Not xFolderItem Is Nothing Then
  GetFileOwner = xFolder.GetDetailsOf(xFolderItem, 8)
Else
  GetFileOwner = ""
End If
Set xShell = Nothing
Set xFolder = Nothing
Set xFolderItem = Nothing
End Function
Computer, Windows, Microsoft, Datei, Microsoft Excel, programmieren, VBA
Dropdown filtern und kombinieren?

Hey
ich falle einfach mal mit der Tür ins Haus:
A1:A111 sind Kategorien und B1:B26 sind Buchstaben.
Diese habe ich auf C1 und D1 zu je einer Dropdownliste gemacht.
Die liegen jetzt auf F3, G3 und auf H3 ist das Ergebnis.
In E1-2886 habe ich Wörter stehen die am Ende unter "Ergebnis" auftauchen sollen.
Für jede der 111 Kategorien gibt es 26 Antworten sortiert nach dem Anfangsbuchstaben. Mein Ziel ist es, bei Kategorie z.B "Allergie gegen" auszuwählen und bei Buchstabe "A" um dann bei Ergebnis "Apfelallergie" angezeigt zu bekommen. Wähle ich aber ein "B" aus möchte ich "Bienenallergie" angezeigt bekommen.
Wähle ich Kategorie "Lebensmittel" aus und als Buchstabe "A" soll als Ergebnis z.B "Aubergine" rauskommen (welche natürlich wie auch die anderen Wörter in der E1:E2886 vor kommt) und nicht Audi weil das mit in der Liste der Antworten drin steht.
Kategorie Allergie -> filtert alle antworten aus die nicht zur Kategorie passen -> Buchstabe filtert alle Antworten raus die nicht mit dem jeweiligen Buchstaben anfangen und Ergebnis listet das auf, was übrig geblieben ist (was nur ein Wort sein sollte). Dropdown Kategorie muss also sowohl mit den Antworten interagieren als auch mit dem Dropdown Buchstabe und beide müssen E1:E2886 ausfiltern um auf Ergebnis das übrig gebliebene Wort anzuzeigen.
Ich hoffe man versteht was ich meine und man kann mir sagen ob und wie das möglich ist.
Danke im voraus.

Bild zum Beitrag
Microsoft Excel, Formel, Google Tabellen

Meistgelesene Beiträge zum Thema Microsoft Excel