Office: 377.000 Dateinamen mit VBA durchsuchen

Helfe beim Thema 377.000 Dateinamen mit VBA durchsuchen in Microsoft Excel Hilfe um das Problem gemeinsam zu lösen; Hallo VBA-Freunde. Ich stehe vor folgender Aufgabe: In einem Verzeichnis liegen etwas über 377.000 Dateien, deren Dateinamen ich nach einer... Dieses Thema im Forum "Microsoft Excel Hilfe" wurde erstellt von sven78hh, 10. August 2013.

  1. sven78hh
    sven78hh Erfahrener User

    377.000 Dateinamen mit VBA durchsuchen


    Hallo VBA-Freunde.

    Ich stehe vor folgender Aufgabe:

    In einem Verzeichnis liegen etwas über 377.000 Dateien, deren Dateinamen ich nach einer Zeichenkette durchsuchen muss.
    Wenn die Zeichenkette gefunden wurde soll die Datei in einen OK-Ordner verschoben werden und die Zeichenkette und der Dateiname in Excel dokumentiert werden. Wurde die Zeichenkette nicht gefunden soll die Datei in einen Fehlt-Order verschoben werden ohne Dokumentation in Excel.

    Die Zeichenkette die ich finden soll, sieht wie folgt aus:

    Die ersten zwei Zeichen können zwölf Ausprägungen haben und bestehen dabei aus zwei Buchstaben. Danach folgen vier bis neun
    Ziffern. Wobei die zwölf Ausprägungen keine Rückschlüsse über die Anzahl der folgenden Ziffern zu lassen.
    Bsp. AB1234567, AB1234, CD123456789, EF1234

    Ich frage mich, bei der recht großen Anzahl an Dateien, wie ich das am performantesten angehen kann.
    Wenn man das überschlägt und davon ausgeht, dass man innerhalb von 1 Min; 4 Dateinamen durchsucht, verschiebt und ggf. dokumentiert. Dann Läuft das Makro immerhin 26 Stunden.

    Meine erste Idee:
    Jeden Dateinamen einzeln einlesen, durchkauen ob eine passende Zeichenkette vorhanden ist. (ggf. in Excel dokumentieren wenn eine passende Zeichenkette gefunden wurde) und verschieben.

    Meine zweite Idee:
    Die Dateinamen in Excel einlesen z.B. in 30.000er Happen und dann die Spalte mit den Dateinamen Zeile für Zeile durchkauen. (ggf. in Excel dokumentieren wenn eine passende Zeichenkette gefunden wurde) und verschieben.

    Meine dritte Idee:
    Die Dateinamen mittels einer Batchdatei in eine txt schreiben und die txt, Zeile für Zeile durcharbeiten. (ggf. in Excel dokumentieren wenn eine passende Zeichenkette gefunden wurde) und verschieben.

    Programmieren werde ich das sicher selbst können, nur die Herangehensweise ist mir noch nicht klar.
    Hat jemand vielleicht eine zündende Idee wie man die Sache am besten angeht?

    Vielen Dank für eure Anregungen
    und viele Grüße
    Sven
     
    sven78hh, 10. August 2013
    #1
  2. maninweb
    maninweb MVP für Microsoft Excel
    Hallo sven78hh,

    wenn's ein einmaliger Vorgang ist, würde ich in einer Schleife ganz normal Dir() verwenden, den Dateinamen extrahieren und auf die Zeichenketten am Anfang via Left() und weitere Inhalte im Dateinamen via LIKE prüfen. Kopieren ging dann über FileCopy, Löschen über Kill. Sollte m.E. nicht allzu lange dauern. Falls das nicht schnell genug ist, bliebe Windows API, was aber komplizierter ist.

    Gruß
     
    maninweb, 11. August 2013
    #2
  3. sven78hh
    sven78hh Erfahrener User
    Hallo maninweb,

    vielen dank für deinen Vorschlag. Das läuft soweit ganz gut. Vor allem der hinweis mit like hat mir sehr geholfen. Das kannte ich bei VBA noch nicht. Inzwischen habe ich aus 190.000 Dateinamen die Informationen gezogen die ich Brauche.

    Nun will ich versuchen aus den Restlichen Dateien Informtaionen zu ziehen. (Da die Informationen nicht im Dateinamen enthalten sind)

    Die Dateien sind MSG-Dateien. Es handelt sich also um Outlook Mails die auf einem Laufwerk ausgelagert wurden.

    Ich habe dafür aber ein neues Thema erstellt, da der Titel dieses Themas nicht mehr passt.
    http://www.office-hilfe.com/support...ner-msg-Datei-durchsuchen?p=137895#post137895


    Gruß
    Sven
     
    Zuletzt bearbeitet: 17. August 2013
    sven78hh, 17. August 2013
    #3
Thema:

377.000 Dateinamen mit VBA durchsuchen

Die Seite wird geladen...
  1. 377.000 Dateinamen mit VBA durchsuchen - Similar Threads - 377 000 Dateinamen

  2. Name der Datei durch Excel geändert

    in Microsoft Excel Hilfe
    Name der Datei durch Excel geändert: Hallo und guten Abend, Die Datei wird mittels Button (VBA) zwischen gesichert. Das Makro sichert zuvor die Datei und erstellt zus. eine Sicherungsdatei mit der Erweiterung Beispiel-"Sich"....
  3. Excel Tabellenblatt als PDF speichern unter Vorgabe Dateinamen aus einer Zelle

    in Microsoft Excel Hilfe
    Excel Tabellenblatt als PDF speichern unter Vorgabe Dateinamen aus einer Zelle: Hallo zusammen, ich möchte eine VBA Programmierung machen wie folgt. Das aktuelle Excel-Tabellenblatt soll als PDF Speicher unter, unter Vorgabe des Dateinamens der in Zelle A1 steht gespeichert...
  4. Dateinamen ohne Punkt und Dateiendung ermitteln

    in Microsoft Excel Hilfe
    Dateinamen ohne Punkt und Dateiendung ermitteln: Guten Abend zusammen, die nachfolgende Formel generiert den Dateinamen ohne Pfad in einer Zelle:...
  5. PDF-Dateinamen aus Zellen zusammensetzen

    in Microsoft Excel Hilfe
    PDF-Dateinamen aus Zellen zusammensetzen: Hallo zusammen! Ich habe eine Arbeitsmappe mit mehreren Arbeitsblättern die mit den Namen von Mitarbeitern versehen sind. Nun möchte ich folgendes erreichen: Wenn die Datei als xlsx gespeichert...
  6. Email Speicherung via Drag and Drop macht aus einem Punkt einen Unterstrich im Dateinamen

    in Microsoft Outlook Hilfe
    Email Speicherung via Drag and Drop macht aus einem Punkt einen Unterstrich im Dateinamen: Guten Tag, wenn ich eine Email mit dem Betreff "2.40-Test.123" via Drag and Drop auf meinen Desktop ziehe, wird eine .msg mit dem Dateinamen "2_40-Test_123.msg" erstellt. Wenn ich die selbe...
  7. Dateiname splitten in vba

    in Microsoft Excel Hilfe
    Dateiname splitten in vba: Moin alle miteinander Ich möchte aus eine Dateinamen (91.Blatt T 94.xlsx) als erstes die Zahl 91 Und die Zahl 94 extrahieren und in unterschiedliche zellen schreiben . Beide zahlen können...
  8. runden ohne Dezimalstellen : Format ##'000

    in Microsoft Excel Hilfe
    runden ohne Dezimalstellen : Format ##'000: hallo! ich versuche die zahlen wie z.B. 19'245 zu 19'250 bzw 19'300 zu runden. da das Zeichen ' keine dezimalstelle kennzeichnet, sondern nur ein aufgelegter format ist, komme ich mit den...
  1. Diese Seite verwendet Cookies, um Inhalte zu personalisieren, diese deiner Erfahrung anzupassen und dich nach der Registrierung angemeldet zu halten.
    Auf dieser Website werden Cookies für die Zugriffsanalyse und Anzeigenmessung verwendet.
    Wenn du dich weiterhin auf dieser Seite aufhältst, akzeptierst du unseren Einsatz von Cookies.
    Information ausblenden