Live-Forum - Die aktuellen Beiträge
Datum
Titel
24.04.2024 19:29:30
24.04.2024 18:49:56
Anzeige
Archiv - Navigation
1772to1776
Aktuelles Verzeichnis
Verzeichnis Index
Übersicht Verzeichnisse
Vorheriger Thread
Rückwärts Blättern
Nächster Thread
Vorwärts blättern
Anzeige
HERBERS
Excel-Forum (Archiv)
20+ Jahre Excel-Kompetenz: Von Anwendern, für Anwender
Inhaltsverzeichnis

Prüfen ob Datei vorhanden ist

Prüfen ob Datei vorhanden ist
21.07.2020 11:47:41
Christian
Hallo,
ich habe mal eine Frage.
Ich habe einen Ordner D:\AZN mit den beiden Unterordnern Bilder und Videos
Dazu eine Datei, die u.a. folgende Spalte enthält:
https://www.herber.de/bbs/user/139196.xlsx
Gibt es eine Möglichkeit, zu überprüfen, ob es für jeden der 444 Texte mindestens eine Datei gibt, die denselben Namen hat?
Hätte mir das so vorgestellt, dass in Spalte M ja erscheint, wenn es eine Datei gibt und nein, wenn es keine Datei gibt.
hat da jemand von eich eine Idee?
benutze Excel 2019, kein Office 365
Danke
Christian

8
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: Prüfen ob Datei vorhanden ist
21.07.2020 12:44:10
Nepumuk
Hallo Christian,
in einem Standardmodul (Menüleiste im VBA-Editor - Einfügen - Modul):
Option Explicit

Private Declare PtrSafe Function SearchTreeForFile Lib "imagehlp.dll" ( _
    ByVal RootPath As String, _
    ByVal InputPathName As String, _
    ByVal OutputPathBuffer As String) As Long

Private Const MAX_PATH As Long = 260&
Private Const FOLDER_PATH As String = "G:\Eigene Dateien\" ' Anpassen !!!!!!!!!!!!!!!!

Public Function SearchFile(ByVal pvstrFileName As String) As String
    
    Dim strTemp As String * MAX_PATH
    Dim lngReturn As Long
    
    lngReturn = SearchTreeForFile(FOLDER_PATH, "*" & pvstrFileName & "*", strTemp)
    
    If lngReturn = 0 Then
        SearchFile = "Nein"
    Else
        SearchFile = "Ja"
    End If
End Function

In der Tabelle:
 KLM
13717 Keeping Up with the Kardashians - Kylie Jenner 10-65 Nein
24256 Modern Family - Ariel Winter 11-238 Nein
34135 Shameless - Emma Kenney 11-117 Nein

ZelleFormel
M1=SearchFile(K1)
M2=SearchFile(K2)
M3=SearchFile(K3)

Nicht vergessen im Code den Pfad des übergeordneten Ordners anpassen !!!
Gruß
Nepumuk
Anzeige
AW: Prüfen ob Datei vorhanden ist
21.07.2020 13:23:11
Christian
Hallo Nepumuk,
das sieht doch mal super aus, hat funktioniert. Vielen Dank.
Allerdings habe ich noch eine Verständnisfrage zu der Zeile
Private Const MAX_PATH As Long = 260&
verstehe ich das richtig, dass nur Texte mit maximal 260 Zeichen überprüft werden?
Gruß
Christian
AW: Prüfen ob Datei vorhanden ist
21.07.2020 13:27:47
Nepumuk
Hallo Christian,
das ist die maximale Pfadlänge welche die Variable strTemp aufnehmen kann. Spiel aber in deinem Fall keine keine Rolle da nur der Rückgabewert der Funktion lngReturn ausgewertet wird.
Gruß
Nepumuk
AW: Prüfen ob Datei vorhanden ist
21.07.2020 14:27:45
Christian
Hallo Nepumuk,
sorry dann muss ich nochmal nachbohren. Hintergrund ist, dass die Dateinamen sich in Zukunft auch ändern können, also auch länger werden können.
Welche Meldung würde ich denn bekommen, falls die Länge des Pfades wirklich mal 260 überschreiten sollte und reicht es dann einfach die Zahl zu erhöhen oder müsste ich noch mehr an dem Makro ändern?
Danke schonmal für die Mühe
Christian
Anzeige
AW: Prüfen ob Datei vorhanden ist
21.07.2020 14:32:34
Nepumuk
Hallo Christian,
da passiert nicht wenn die Dateinamen länger werden.
Gruß
Nepumuk
AW: Prüfen ob Datei vorhanden ist
21.07.2020 14:38:20
Christian
Hallo Nepumuk,
ja dann, danke für deine Mühe und deine Erklärungen. Hast mir jedenfalls sehr geholfen
Schönen Tag noch
Christian
AW: Prüfen ob Datei vorhanden ist
21.07.2020 12:54:16
volti
Hallo Christian,
hier noch eine Idee, wie Du das machen könntest. Allerdings fehlt mir hier die Info, ob die Dateien auch wirklich so heißen, wie sie in Deiner Liste stehen?!

[+][-]
Option Explicit Sub Pruefen() 'Prüft, ob es Dateien zu den Einträgen gibt Dim sArr() As String, sDatei As String Dim sLWs As Variant Dim iZeile As Long, iGefunden As Long Dim iLW As Integer, iAnzFile As Integer sLWs = Array("D:&bsol;AZN&bsol;", "D:&bsol;AZN&bsol;Bilder&bsol;", "D:&bsol;AZN&bsol;Videos&bsol;") 'Alle Dateien in ein Array einlesen For iLW = 0 To UBound(sLWs) sDatei = Dir(sLWs(iLW) & "*.*") Do While sDatei <> "" ReDim Preserve sArr(iAnzFile) sArr(iAnzFile) = sDatei iAnzFile = iAnzFile + 1 sDatei = Dir Loop Next iLW 'Jetzt checken, ob die in der Liste stehenden im Array sind On Error Resume Next With ActiveSheet For iZeile = 1 To .Cells(Rows.Count, "K").End(xlUp).Row iGefunden = 0 iGefunden = Application.WorksheetFunction.Match(.Cells(iZeile, "K").Value & "*", sArr, 0) If iGefunden > 0 Then .Cells(iZeile, "M").Value = "ja" Else .Cells(iZeile, "M").Value = "nein" End If Next iZeile End With End Sub
viele Grüße aus Freigericht
Karl-Heinz

Anzeige
AW: Prüfen ob Datei vorhanden ist
21.07.2020 13:20:32
Christian
Hallo Karl-Heinz,
ja da muss ich mich entschuldigen, dass ich das nicht genauer ausgeführt habe.
Die Dateien im Ordner Videos heißen alle so wie in der Excel Tabelle, haben lediglich noch die Dateiendung .mp4
Die Bilder können .jpg oder .png Dateien sein und pro Film existieren bis zu 280 Bilder, d.h. nach dem Text der in der Tabelle steht, folgt bei Bildern noch eine laufende Nummer und dann die Dateiendung.
Sollte sich doch aber denke ich lösen lassen, in dem man nach Dateien sucht, deren Namen mit den Texten in der Excel Tabelle beginnen.
Was mir allerdings an euren Makros auffällt, bei dem anderen Makro hab ich einfach den Pfad D:\AZN\ angegeben und das Makro hat von sich aus die Unterordner einbezogen. Dein Ansatz gibt beide Unterordner separat an.
Gruß
Christian
Anzeige

310 Forumthreads zu ähnlichen Themen

Anzeige
Anzeige
Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige