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

VBA Intersect Bereich in Bereich überprüfen statt Zelle in Bereich?

Hallo,

wie kann ich mit der Methode Application.Intersect zwei Bereiche miteinander Vergleichen?

Normalerweise kann ich ja z.b. mit :

If Not Application.Intersect(Target, Bereich) Is Nothing Then
Msg "Nicht innerhalb"

Überprüfen ob eine Zelle in einem benannten Bereich ausgewählt oder sontiges ist.

Das klappt mit:

If Not Application.Intersect(Selection.Address, Bereich) Is Nothing Then
Msg "Nicht innerhalb"

leider nur mittelmäßig.

Beispiel:

'''''''''''''''''''''''''''''''''''''1.
Set Bereich = Range("B1:B10")

'Ich markiere Zelle B1 bis B2 

If Not Application.Intersect(Selection.Address, Bereich) Is Nothing Then
Msg "Nicht innerhalb"

'Ergebnis = Keine MsgBox - richtig

'''''''''''''''''''''''''''''''''''''2.
Set Bereich = Range("B1:B10")

'Ich markiere Zelle A1 bis A10  

If Not Application.Intersect(Selection.Address, Bereich) Is Nothing Then
Msg "Nicht innerhalb"

'Ergebnis = MsgBox erscheint - richtig

'''''''''''''''''''''''''''''''''''''3.
Set Bereich = Range("B1:B10")

'Ich markiere Zelle A1 bis B1  

If Not Application.Intersect(Selection.Address, Bereich) Is Nothing Then
Msg "Nicht innerhalb"

'Ergebnis = keine MsgBox - falsch, das soll nicht passieren

'''''''''''''''''''''''''''''''''''''4.
Set Bereich = Range("B1:B10")

'Ich markiere Zelle A1 bis C1  

If Not Application.Intersect(Selection.Address, Bereich) Is Nothing Then
Msg "Nicht innerhalb"

'Ergebnis = keine MsgBox - falsch, das soll nicht passieren

'''''''''''''''''''''''''''''''''''''4.
Set Bereich = Range("B1:B10")

'Ich markiere Zelle B1 bis B15  

If Not Application.Intersect(Selection.Address, Bereich) Is Nothing Then
Msg "Nicht innerhalb"

'Ergebnis = keine MsgBox - falsch, das soll nicht passieren

Wie schaff ich es, dass die MsgBox immer dann auftaucht, wenn mindestens eine Zelle nicht im Bereich ist?
Also der Markierte Bereich MUSS mit jeder Zelle im Definierten Bereich liegen.

Und eine Lösung ohne 'Split' oder Umwege wäre mir lieb, außer es gibt halt keine andere xD

PC, Computer, Microsoft Excel, programmieren, VBA, VBA Programmierung, Range, VBA Excel

Motorrad springt trotzz voller Batterie nicht an?

Hallo,

Ich besitze eine Yamaha XT660X und als meine letzte Batterie den Geist aufgab, erkannte man dies schon daran, dass das Display während der Fahrt einfach ausging. Blinker und so haben funktioniert nur das Display ging dann ab und zu aus und ging beim Anfahren oder im Zweiten Gang wieder an.

Als ich mit der alten Batterie zu Polo bin um mir eine neue zu kaufen, hat der Verkäufer die neue auch direkt gemessen und diese war zu 100% geladen. Ich habe sie 1h später in mein Motorrad verbaut und es sprang auch sofort an.

Nach na halben bis ganzen stunde ging mein Display dann plötzlich wieder aus und als ich stehen blieb um nach einer Werkstatt zu Googlen und dann weiter fahren wollte, stotterte sie sogar eins zwei mal länger bevor sie ansprang.

Ich also wieder zurück zu Polo um die Batterie nochmal zu messen um einen Mysteriösen Stromzieher auszuschließen. Messung ergab, daß die Batterie immer noch voll war und nicht entladen wurden.

Ich bin dann davon ausgegangen das mein Display evtl nicht ganz Connectet und bin dann auch ne Woche Problemlos gefahren (außer dass das Display sich gern verabschiedet hat, was sogar den kilometer Zähler nicht weiter zählen ließ..)

Und als das Motorrad von Freitag Abend bis Montag morgen unbenutzt war, sprang sie gar nicht mehr an. Zwei Tage nicht benutzt und sie wollte nicht mehr. Sie stottert halt nur aber startet nicht. Woran kann das liegen bei einer vollen Batterie?

Motorrad, Technik, Batterie, defekt, Technologie, Auto und Motorrad
Weitere Inhalte können nur Nutzer sehen, die bei uns eingeloggt sind.