Live-Forum - Die aktuellen Beiträge
Anzeige
Anzeige
HERBERS
Excel-Forum (Archiv)
20+ Jahre Excel-Kompetenz: Von Anwendern, für Anwender

Forumthread: Prüfen ob Dateien exisitieren

Prüfen ob Dateien exisitieren
17.08.2021 11:48:03
myth
Hallo zusammen,
ich möchte uns die Arbeit etwas erleichtern.
Wir führen momentan händisch eine Excelliste, ob es für die hinterlegten Daten schon eine Datei gibt.
Ich würde das nun gerne automatisieren. Die Dateien liegen in einem Netzwerlaufwerk, welches für alle zugänglich ist.
Die Datei ist wie folgt aufgebaut: Daten_Axxxx.xlsx, somit müssten nur die letzten fünf Stellen geprüft werden.
Wie gehe ich am besten vor, stehe hier gerade etwas auf dem Schlauch.
https://www.herber.de/bbs/user/147667.xlsx
Beste Grüße
Anzeige

9
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
PQ Lösung
17.08.2021 13:49:11
ChrisL
Hi
https://www.herber.de/bbs/user/147669.xlsx
(Pfad der Ordnerabfrage anpassen!)
Ich schlage Power-Query vor. Erstmal eine Ordnerabfrage machen, um die Dateiliste zu erstellen:
https://www.youtube.com/watch?v=FT67j2o9mOg
Mittels benutzerdefinierter Spalte:

=Text.Start(Text.End([Name],10),5)
Die Nummer aus dem Dateinamen extrahieren.
Ordnerabfrage sieht danach wie folgt aus:

let
Quelle = Folder.Files("C:\Pfad\Ordner"),
#"Hinzugefügte benutzerdefinierte Spalte" = Table.AddColumn(Quelle, "ID-Nummer", each Text.Start(Text.End([Name],10),5))
in
#"Hinzugefügte benutzerdefinierte Spalte"
Danach eine neue Abfrage auf die "Prüfliste". Prüfliste mit der Ordnerabfrage verbinden (JOIN). Bedingte Spalte hinzufügen:

=if [#"Ordnerabfrage.ID-Nummer"] = null then "Nein" else "Ja"
Die vollstände Abfrage sieht wie folgt aus:

let
Quelle = Excel.CurrentWorkbook(){[Name="Tabelle1"]}[Content],
#"Zusammenführte Abfragen" = Table.NestedJoin(Quelle,{"Nummer"},Ordnerabfrage,{"ID-Nummer"},"Ordnerabfrage",JoinKind.LeftOuter),
#"Erweiterte Ordnerabfrage" = Table.ExpandTableColumn(#"Zusammenführte Abfragen", "Ordnerabfrage", {"ID-Nummer"}, {"Ordnerabfrage.ID-Nummer"}),
#"Entfernte Spalten" = Table.RemoveColumns(#"Erweiterte Ordnerabfrage",{"Daten hinterlegt?"}),
#"Hinzugefügte bedingte Spalte" = Table.AddColumn(#"Entfernte Spalten", "Daten hinterlegt?", each if [#"Ordnerabfrage.ID-Nummer"] = null then "Nein" else "Ja"),
#"Entfernte Spalten1" = Table.RemoveColumns(#"Hinzugefügte bedingte Spalte",{"Ordnerabfrage.ID-Nummer"})
in
#"Entfernte Spalten1"
cu
Chris
Anzeige
AW: PQ Lösung
17.08.2021 16:47:55
myth
Ja, hab ich verstanden und angepasst.
Da ich mit PQ noch weniger Erfahrungen habe, kann ich die Zellen auch direkt farblich einfärben? Also Rot und Grün?
Gruß
AW: PQ Lösung
17.08.2021 17:24:05
ChrisL
Hi
Power-Query selber kann keine Formatierungen aufnehmen. Jedoch kannst du anschliessend in der Ergebnistabelle eine "bedingte Formatierung" anwenden.
cu
Chris
Anzeige
AW: PQ Lösung
18.08.2021 10:57:15
myth
Ok, schade. Wäre nett gewesen:)
Dank dir vielmals.
Ich werde jetzt mal was mit PQ rumspielen und ggf. hierauf nochmal antworten :)
Würde zum Beispiel gerne externe Daten noch importieren und diese dann einfügen, da will ich mich aber erstmal selber bemühen
AW: PQ Lösung
18.08.2021 12:10:52
myth
Jetzt bin ich doch schon am Ende angelangt.
Kann ich PQ irgendwie sagen, dass er eine Spalte ignorieren soll?
Anzeige
AW: kannst Du einfach tun ...
18.08.2021 12:47:26
neopa
Hallo myth,
... indem Du diese Spalte/n bei den Definitionen der PQ-Schritte nicht mit berücksichtigst. Und wenn Du eine oder auch mehre Spalten nicht im Ergebnislisting ausgegeben haben möchtest, dann definiere einen Schritt, wo Du in PQ diese Spalte/n einfach mit der entsprechenden Funktion entfernst.
Gruß Werner
.. , - ...
Anzeige
AW: kannst Du einfach tun ...
18.08.2021 15:09:42
myth
Ganz platt, verstehe ich nicht :)
AW: was genau? ...
18.08.2021 15:24:55
neopa
Hallo myth,
...verstehst Du nicht? Hast Du Dich schon etwas mit den Basisfunktionalitäten von PQ vertraut gemacht? Wenn nicht, dann sieh z.B. mal hier: https://www.tabellenexperte.de/einfuehrung-in-power-query-teil-1/
Zum Entfernen einer Spalte brauchst Du in PQ nur die Spalte markieren, rechte Maustaste und da die Funktion Entfernen aktivieren.
Gruß Werner
.. , - ...
Anzeige
AW: Prüfen ob Dateien exisitieren
17.08.2021 13:50:30
GerdL
Moin,
Internetrecherche:

Sub Dateiprüfung()
Dim strPfad As String
'Prüfung, ob Datei "Test.xls" im gleichen Verzeichnis
vorhanden ist ...
strPfad = ActiveWorkbook.Path & Application.PathSeparator
'Aufruf Function ExistiertDatei
If Not ExistiertDatei(strPfad & "Test.xls") Then
MsgBox "Datei nicht vorhanden"
Else
MsgBox "Datei vorhanden"
End If
End Sub

Function ExistiertDatei(strDatei As String) As Boolean
If Dir(strDatei)  "" Then
ExistiertDatei = True
Else
ExistiertDatei = False
End If
End Function
Gruß Gerd
Anzeige
;

Forumthreads zu verwandten Themen

Anzeige
Anzeige
Anzeige
Anzeige

Infobox / Tutorial

Dateien in Excel automatisch prüfen


Schritt-für-Schritt-Anleitung

Um zu prüfen, ob Dateien in einem bestimmten Verzeichnis vorhanden sind, kannst Du sowohl Excel VBA als auch Power Query verwenden. Hier sind die Schritte für beide Methoden:

1. Mit Excel VBA

  1. Öffne Excel und drücke ALT + F11, um den VBA-Editor zu öffnen.

  2. Füge ein neues Modul hinzu: Einfügen > Modul.

  3. Kopiere den folgenden Code in das Modul:

    Sub Dateiprüfung()
       Dim strPfad As String
       strPfad = ActiveWorkbook.Path & Application.PathSeparator
       'Prüfung, ob die Datei "Daten_Axxxx.xlsx" vorhanden ist
       If Not ExistiertDatei(strPfad & "Daten_Axxxx.xlsx") Then
           MsgBox "Datei nicht vorhanden"
       Else
           MsgBox "Datei vorhanden"
       End If
    End Sub
    
    Function ExistiertDatei(strDatei As String) As Boolean
       If Dir(strDatei) <> "" Then
           ExistiertDatei = True
       Else
           ExistiertDatei = False
       End If
    End Function
  4. Ändere den Dateinamen in der If Not ExistiertDatei(...) Zeile, um die gewünschten Dateien zu prüfen.

  5. Schließe den VBA-Editor und führe das Makro aus.

2. Mit Power Query

  1. Gehe zu Daten > Daten abrufen > Aus Datei > Aus Ordner.

  2. Wähle den Ordner aus, in dem sich deine Dateien befinden.

  3. Erstelle eine benutzerdefinierte Spalte, um die letzten fünf Zeichen des Dateinamens zu extrahieren:

    =Text.Start(Text.End([Name],10),5)
  4. Füge eine bedingte Spalte hinzu, um zu prüfen, ob die Datei existiert:

    =if [#"Ordnerabfrage.ID-Nummer"] = null then "Nein" else "Ja"
  5. Lade die Abfrage in Excel und überprüfe die Ergebnisse.


Häufige Fehler und Lösungen

Fehler 1: Datei wird nicht gefunden.

Lösung: Stelle sicher, dass der Pfad korrekt angegeben ist und die Datei im angegebenen Verzeichnis vorhanden ist.

Fehler 2: Power Query zeigt keine Dateien an.

Lösung: Überprüfe den Ordnerpfad und stelle sicher, dass Du die richtigen Berechtigungen hast, um auf den Ordner zuzugreifen.


Alternative Methoden

Neben Excel VBA und Power Query kannst Du auch Batch-Skripte verwenden, um die Existenz von Dateien zu prüfen. Diese Methode ist jedoch weniger benutzerfreundlich für Excel-Nutzer und erfordert Kenntnisse in der Skripterstellung.


Praktische Beispiele

  • Excel VBA Beispiel: Prüfen, ob eine Datei mit dem Namen "Kundenliste.xlsx" vorhanden ist. Ändere den Code entsprechend, um verschiedene Dateinamen zu testen.

  • Power Query Beispiel: Wenn Du eine Liste von Bestellnummern hast, kannst Du die Abfrage so anpassen, dass sie jede Bestellnummer mit den Dateinamen im angegebenen Ordner abgleicht.


Tipps für Profis

  • Du kannst VBA nutzen, um nicht nur die Existenz zu prüfen, sondern auch weitere Aktionen auszuführen, wie z.B. das Öffnen der Datei oder das Kopieren in einen bestimmten Ordner.
  • In Power Query kannst Du Filter und Sortierungen anwenden, um die Datenanalyse zu verbessern.
  • Experimentiere mit der bedingten Formatierung in Excel, um schnell zu sehen, welche Dateien vorhanden oder nicht vorhanden sind.

FAQ: Häufige Fragen

1. Wie kann ich mehrere Dateinamen auf einmal prüfen?
Du kannst eine Schleife in VBA verwenden, um eine Liste von Dateinamen zu durchlaufen und jeweils die Existenz zu prüfen.

2. Funktioniert dies in jeder Excel-Version?
Die VBA-Methode funktioniert in den meisten modernen Excel-Versionen. Power Query ist in Excel 2016 und später integriert, in Excel 2010 und 2013 ist es als Add-In verfügbar.

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Entdecke mehr
Finde genau, was du suchst

Die erweiterte Suchfunktion hilft dir, gezielt die besten Antworten zu finden

Suche nach den besten Antworten
Unsere beliebtesten Threads

Entdecke unsere meistgeklickten Beiträge in der Google Suche

Top 100 Threads jetzt ansehen
Anzeige