Freigeben über

Variablen befüllen

Anonym
2022-10-31T09:20:01+00:00

Mein Problem: Ich benötige den ausgelesenen Namen nicht in der Tabelle sondern als Variable zur weiteren Nutzung.

Im meinem Ordner befinden sich 4 *.csv Dateien. Wie bekommt man diese in Unterschiedliche Dateinamen in Variablen ausgelesen.

Der aufgeführte Sub ist aus dem Netz. Ich bekomme über die Variablen "Namen" nur immer 1 Dateinamen, habe aber 4 unterschiedliche.

Sub DateienAuflisten()

Dim lngZeile As Long

Dim objFileSystem As Object

Dim objVerzeichnis As Object

Dim objDateienliste As Object

Dim objDatei As Object

Dim Name As String

Set objFileSystem = CreateObject("scripting.FileSystemObject")

Set objVerzeichnis = objFileSystem.GetFolder("P:\0000_KEVIN\000_NEU")

Set objDateienliste = objVerzeichnis.Files

lngZeile = 1

For Each objDatei In objDateienliste

 'If Not objDatei Is Nothing Then 

 If Not objDatei Is Nothing And Right(LCase(objDatei.Name), 4) = ".csv" Then 

      ActiveSheet.Cells(lngZeile, 1) = objDatei.Name 

      Name = objDatei.Name 

      MsgBox Name 

      Stop 

     ' lngZeile = lngZeile + 1 

 End If 

Next objDatei

End Sub

Microsoft 365 und Office | Excel | Für Zuhause | Windows

Gesperrte Frage. Diese Frage wurde aus der Microsoft-Support-Community migriert. Sie können darüber abstimmen, ob sie hilfreich ist, aber Sie können keine Kommentare oder Antworten hinzufügen oder der Frage folgen.

0 Kommentare Keine Kommentare

Antwort, die vom Frageautor angenommen wurde

Anonym
2022-10-31T11:17:42+00:00

Hallo,

folgender Code schreibt dir die gefundenen Dateien in ein Array:

Sub DateienAuflisten() 

Dim varDateien() As Variant 

Dim myStr As String 

Dim i As Integer 

Dim FSO As Object 

Dim objVerzeichnis As Object 

Dim objFile As Object 

Set FSO = CreateObject("scripting.FileSystemObject") 

Set objVerzeichnis = FSO.GetFolder("P:\0000_KEVIN\000_NEU") 

For Each objFile In objVerzeichnis.File 

     If Right(LCase(objFile.Name), 4) = ".csv" Then 

            ReDim Preserve varDateien(i) 

            varDateien(i) = objFile.Name 

            i = i + 1 

      End If 

Next 

For i = LBound(varDateien) To UBound(varDateien) 

      myStr = myStr & varDateien(i) & vbCrLf 

Next 

MsgBox myStr 

End Sub

Claus

War diese Antwort hilfreich?

Eine Person fand diese Antwort hilfreich.
0 Kommentare Keine Kommentare

5 zusätzliche Antworten

Sortieren nach: Am hilfreichsten
  1. Anonym
    2022-11-02T13:47:44+00:00

    Hallo

    Wenn ich diesen SUB anwende kommt 'Laufzeitfehler' 438 - Objekt unterstützt diese Eigenschaft oder Methode nicht.

    Daher habe ich aus Deiner zweiten Antwort den unteren Part in meinen Makro übertragen und auf die Spalte AK verändert.

    Dort stehen meine aktuellen Dateinamen.

    Gruß --> Frank

    War diese Antwort hilfreich?

    0 Kommentare Keine Kommentare
  2. Anonym
    2022-11-02T13:19:38+00:00

    Hallo Claus

    und Sorry - funktioniert alles einwandfrei. Fehler lag bei mir. In Spalte A stehen zu Zeitpunkt des Öffnens der *csv Dateien noch Werte. Folglich öffnet der Sub die gewollten Dateien findet dann aber noch weitere Werte in der Spalte A - und zu diesen gibt es natürlich keine Dateien. Habe also im Sub auf Spalte AF geändert und alles ist TOLLLLL!!!

    Hab vielen Dank

    (bis zum nächsten Problem) Gruß --> Frank

    War diese Antwort hilfreich?

    0 Kommentare Keine Kommentare
  3. Anonym
    2022-11-02T05:14:31+00:00

    Hallo Claus

    Bekomme diese Fehlerausschrift auf Deinen Sub. Darum habe ich dann die Dateinamen vom Arbeitsblatt in Variablen eingetragen.

    Gruß --> Frank

    War diese Antwort hilfreich?

    0 Kommentare Keine Kommentare
  4. Anonym
    2022-11-01T13:24:30+00:00

    Hab vielen Dank

    Frank

    War diese Antwort hilfreich?

    0 Kommentare Keine Kommentare