Microsoft Excel

Herbers Excel/VBA-Archiv

Informationen und Beispiele zum Thema MsgBox
BildScreenshot zu MsgBox MsgBox-Seite mit Beispielarbeitsmappe aufrufen

Dateien mit der bestimmte Dateiendung auflisten?


Betrifft: Dateien mit der bestimmte Dateiendung auflisten? von: Sergej
Geschrieben am: 06.01.2018 21:08:54

Hallo Leute,

ich möchte alle Dateien mit der Dateiendung *.cfg, die im Verzeichnis C:\Daten\Konfigurationen\ liegen in einer TXT-Datei (Spiecherort P:\Export\Alle_CFG.txt) nach Möglichkeit alphabetisch incl. dem Pfad (Bsp. C:\Daten\Konfigurationen\608804090 ATX.cfg) auslisten. Die Liste enthält ca. 200 Zeilen der Dateien mit der Dateiendung *.cfg haben.

Zusätzlich sollen in separaten TXT-Dateien (CFG-01.txt, CFG-02.txt, CFG-03.txt usw.) jeweils 15 CFG-Dateien aus dem Verzeichnis C:\Daten\Konfigurationen\ aufgelistet werden.

Wie mache ich das bitte per VBA?

Danke im Voraus!

Beste Grüße,
Sergej

  

Betrifft: AW: Dateien mit der bestimmte Dateiendung auflisten? von: Werner
Geschrieben am: 07.01.2018 07:52:06

Hallo Sergej,

leg mal eine neue Mappe an mit einem einzelnen Tabellenblatt. Das Tabellenblatt benennst du bitte in "Alle-CFG" um.
Den angefügten Code in ein allgemeines Modul, Schaltfläche aufs Tabellenblatt und der Schaltfläche den Code zuweisen. Dann teste mal.

Option Explicit

Sub Verzeichnis_auslesen()
Dim strQuellOrdner As String, strZielOrdner As String
Dim strDatei As String, i As Long, n As Long
Dim boVorhanden As Boolean

i = 1: n = 1
strQuellOrdner = "C:\Daten\Konfigurationen\"
'strZielOrdner = "P:\Export\"
strDatei = Dir(strQuellOrdner & "*.*")

Application.ScreenUpdating = False

With Worksheets("Alle-CFG")
    Do While strDatei <> ""
        If LCase(strDatei) Like "*.cfg" Then
            Range("A" & i) = strQuellOrdner & "\" & strDatei
            boVorhanden = True
            i = i + 1
        End If
        strDatei = Dir
    Loop
    
    If boVorhanden Then
        loLetzte = .Cells(.Rows.Count, 1).End(xlUp).Row
        For i = 1 To loLetzte Step 15
            Sheets.Add After:=Sheets(Sheets.Count)
            ActiveSheet.Name = "CFG-" & Format(n, "000")
            .Range(.Cells(i, 1), .Cells(i + 14, 1)).Copy
            ActiveSheet.Range ("A1")
            n = n + 1
        Next i
    Else
        MsgBox "Keine CFG-Dateien im Ordner vorhanden."
    End If
    .Activate
End With

Application.ScreenUpdating = True
End Sub
Beim derzeitigen Stand werden die entsprechenden Daten aus dem Verzeichnis ausgelesen und im Tabellenblatt "Alle-CFG" gelistet. Danach werden die Daten in 15er Blöcke gesplittet, für jeden Block wird ein Tabellenblatt mit dem entsprechenden Namen angelegt und die Daten reinkopiert.

Das Exportieren habe ich im Moment noch nicht drin. Da müsste man einfach in einer Schleife über die erzeugten Tabelleblätter und die dann jweils als Textdatei im Zielverzeichnis speichern.

Sortiert müsste die Auflistung eigentlich automatisch sein, da sie im Verzeichnis ja sortiert vorhanden sind.

Gruß Werner


  

Betrifft: AW: Dateien mit der bestimmte Dateiendung auflisten? von: Sergej
Geschrieben am: 07.01.2018 15:46:59

Hallo Werner,

ich habe es getestet. Im Arbeitsblatt "Alle-CFG" werden auch tatsächlich alle CFG-Dateien aufgelistet.
Das Makro bleibt dann in nächsten Step hier stehen: ActiveSheet.Range ("A1").

Eigentlich wollte ich aus dem Excel heraus, nur die TTX-Dateien (Alle_CFG.txt, sowie einzelnen Dateien CFG-...txt) im strZielOrdner speichern.

Beste Grüße,
Sergej


  

Betrifft: AW: Dateien mit der bestimmte Dateiendung auflisten? von: Werner
Geschrieben am: 07.01.2018 19:37:00

Hallo Sergej,

sorry, mein Fehler. Da ist mir beim Kopieren irgendwie der Unterstrich für den Zeilenumbruch im Code verloren gegangen.
Das muss so aussehen:

.Range(.Cells(i, 1), .Cells(i + 14, 1)).Copy _
ActiveSheet.Range("A1")
Das mit dem Abspeichern der einzelnen Listen ist mir schon klar, ich hatte ja schon geschrieben, dass das noch nicht mit im Code drin ist. Das würde ich dann erst noch machen. War bis hier her nur mal für dich zum Testen, ob es so passt.

Gruß Werner


  

Betrifft: AW: Dateien mit der bestimmte Dateiendung auflisten? von: Sergej
Geschrieben am: 07.01.2018 22:55:44

Hallo Werner,

ich habe folgendes noch gemacht:

... ergänzt: Dim loLetzte As String
... gelöscht: ein "\" zu viel

Danach hat es einwandfrei funktioniert. Vielen Dank!!!!

Das Ganze lässt sich jetzt ohne vorheriges Schreiben in Excel direkt in TXT-Dateien schreiben?

Beste Grüße,
Sergej


  

Betrifft: AW: Dateien mit der bestimmte Dateiendung auflisten? von: Werner
Geschrieben am: 07.01.2018 23:04:21

Hallo Sergej,

das hier ist falsch

Dim loLetzte As String

loLetzte ist die Variable für die letzte belegte Zelle (Zeile). Und das ist eine Ganzzahl. Die Variable muss deshalb als Long dimensioniert werden.

Für das Speichern der Daten muss ich dich auf morgen vertrösten. Ich habe im Moment Nachtdienst und setzt mich dann morgen Nachmittag nochmal dran.

Gruß Werner


  

Betrifft: AW: Dateien mit der bestimmte Dateiendung auflisten? von: Werner
Geschrieben am: 08.01.2018 16:48:16

Hallo Sergej,

teste mal.
Die Daten werden aus dem Quellordner eingelesen, in die entsprechenden Zielordner gespeichert, als Textdateien. Am Schluss werden die eingelesenen Daten aus der Excel Datei wieder gelöscht.

https://www.herber.de/bbs/user/118783.xlsm

Gruß Werner


  

Betrifft: AW: Dateien mit der bestimmte Dateiendung auflisten? von: Sergej
Geschrieben am: 08.01.2018 23:05:51

Hallo Werner,

es funktioniert sehr gut! Vielen Dank!

Meine letzte Frage: Lassen sich die TXT-Dateien ohne Exceltabllen / Zwischenschritt direkt erstellen?

Beste Grüße,
Sergej


  

Betrifft: verstehe die Frage nicht von: Werner
Geschrieben am: 09.01.2018 10:37:00

Hallo Sergej,

ich habe keine Ahnung was du damit meinst.

Gruß Werner


  

Betrifft: AW: verstehe die Frage nicht von: Sergej
Geschrieben am: 09.01.2018 16:27:49

Hallo Werner,

die Frage, die ich gestellt habe ist "doof". :-)

Vielen Dank für die Routine. Es funktioniert sehr gut!

Beste Grüße,
Sergej


  

Betrifft: Gerne u.Danke für die Rückmeldung. o.w.T. von: Werner
Geschrieben am: 09.01.2018 18:38:37




  

Betrifft: AW: Dateien mit der bestimmte Dateiendung auflisten? von: Hajo_Zi
Geschrieben am: 07.01.2018 09:13:57

Hallo Sergej,

http://hajo-excel.de/gepackt/vba2007/ordner_auslesen_hyperlink2007.zip

GrußformelHomepage

Ich gebe keinen Dank für eine Rückmeldung, da ich durch solche Beiträge nicht meine Beitragszahl erhöhen muss.
Also ich schreibe keine Beiträge mit dem Betreff "Gerne u. Danke für die Rückmeldung....."
Rückmeldung ist ja in der Heutigen Zeit nicht üblich und die wenigen die eine Rückmeldung geben,
mögen mir das verzeihen, das kein Danke für eine Rückmeldung kommt.

Beiträge von Werner, Luc, robert und folgende lese ich nicht.


  

Betrifft: AW: Dateien mit der bestimmte Dateiendung auflisten? von: Sergej
Geschrieben am: 07.01.2018 15:50:50

Hallo Hajo,

ich kann leider mit der Datei nicht viel anfangen. Vielleicht haben wir uns mißverstanden. Ich suche nach einer Lösung eher in Richtung wie Werner es vorgeschlagen hat. Einfach wie möglich. Trotzdem vielen Dank für deinen Beitrag.

Beste Grüße,
Sergej


Beiträge aus dem Excel-Forum zum Thema "Dateien mit der bestimmte Dateiendung auflisten?"