Live-Forum - Die aktuellen Beiträge
Anzeige
Archiv - Navigation
1632to1636
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

Spalte einer Tabelle mit Dateinamen vergleichen

Spalte einer Tabelle mit Dateinamen vergleichen
10.07.2018 11:26:31
Chris
Servus,
Ich habe momentan das folgende Problem und bin im Internet bis jetzt irgendwie nicht auf die passenden Lösungen gestoßen.
Und zwar habe ich eine lange Tabelle mit den verschiedensten Eintragungen (Stoffliste mit den jeweiligen Eigenschaften). Jedem Stoff ist eine eindeutige (vierstellige) Nummer zugeordnet. Gleichzeitig gibt es für einige dieser Stoffe gespeicherte Dateien (teilweise auch mehrere) in einem bestimmten Ordner. Im Dateinamen dieser gespeicherten Dateien ist die vierstellige Nummer zu finden (soweit vorhanden). Ich würde gerne die Spalte in der die Nummern eingetragen sind mit den Dateinamen vergleichen und mir in einer separaten Spalte ausgeben lassen ob eine (oder mehrere) Dateien vorhanden sind in denen diese Nummer zu finden ist (mit Eintragung von "ja" bzw. "nein" in die separate Spalte).
Leider sind die letzten Programmierversuche mit VBA bei mir schon eine ganze Weile her und ich komme mit den Sachen die ich im Internet finde nicht weiter.
Wäre super wenn irgendwer von euch da eine (am besten einfache) Idee hätte wie so etwas umzusetzen ist!
Danke schon mal!!!

19
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: Spalte einer Tabelle mit Dateinamen vergleichen
10.07.2018 12:10:57
UweD
Hallo
in ein Modul
Sub Stoff_check()
    Dim Tb, LR As Long, EZ As Integer, SP As Integer, ZSp As Integer, I As Long
    Dim Pfad As String, Datei As String, TMP As Integer
    
    
    Set Tb = Sheets("Tabelle1")
    EZ = 2 'wegen Überschrift 
    SP = 1 'Spalte mit den Stoffnummern 
    ZSp = 2 'Zielspalte 
    Pfad = "X:\Temp\Test\"
    
    
    LR = Tb.Cells(Tb.Rows.Count, SP).End(xlUp).Row 'letzte Zeile der Spalte 
    
    For I = EZ To LR
        TMP = Tb.Cells(I, SP) 'Stoffnummer 
        
        Datei = Dir(Pfad & "*" & TMP & "*")
            Do While Len(Datei) > 0
            
                Tb.Cells(I, ZSp) = Tb.Cells(I, ZSp) + 1 'Anzahl abspeichern 
                
                Datei = Dir() ' nächste Datei 
            Loop
    
    Next
End Sub

LG UweD
Anzeige
AW: Spalte einer Tabelle mit Dateinamen vergleichen
10.07.2018 12:47:01
Chris
Hallo Uwe,
vielen Dank erstmal für deine Hilfe!
Ich bekomme beim testen allerdings noch eine Fehlermeldung für diese Zeile:
TMP = Tb.Cells(I, SP) 'Stoffnummer
Und zwar, dass die Typen anscheinend "unverträglich" sind.
Bin ich da grade nur zu blöd (bzw. lässt sich das leicht beheben), oder ist da was falsch?
Danke nochmal!
LG Chris
AW: Spalte einer Tabelle mit Dateinamen vergleichen
10.07.2018 12:51:53
UweD
Hallo
Dann liegen die Stoffnummern nicht als Zahl vor und enthalten ggf Text.
Änder das mal
Dim Pfad As String, Datei As String, TMP As Integer
in
Dim Pfad As String, Datei As String, TMP As String
LG UweD
Anzeige
AW: Spalte einer Tabelle mit Dateinamen vergleichen
10.07.2018 13:07:54
Chris
Hallo!
Ja, die Dateien enthalten neben der Nummer noch variablen Text.
Aber jetzt läuft es zumindest mal ohne Fehlermeldung durch. Angezeigt bekomme ich in meiner Zielspalte aber leider noch nichts.
So wie ich deine Lösung verstanden habe werden die Übereinstimmungen der Nummer mit den Dateien gezählt oder?
Gibt es da eine leichte Lösung stattdessen ein "ja" oder "nein" ausgegeben zu bekommen? (Ist allerdings nicht so wichtig, das kann im Zweifel ja auch leicht gefiltert werden)
Danke nochmal!
AW: Spalte einer Tabelle mit Dateinamen vergleichen
10.07.2018 13:16:27
UweD
Hallo
dann lade mal eine Beispieldatei hoch
oder teste das hier.
Sub Stoff_check()
    Dim Tb, LR As Long, EZ As Integer, SP As Integer, ZSp As Integer, I As Long
    Dim Pfad As String, Datei As String, TMP As String, Anz As Integer, JaNein As String
    
    
    Set Tb = Sheets("Tabelle1")
    EZ = 2 'wegen Überschrift 
    SP = 1 'Spalte mit den Stoffnummern 
    ZSp = 2 'Zielspalte 
    Pfad = "X:\Temp\Test\"
    
    
    LR = Tb.Cells(Tb.Rows.Count, SP).End(xlUp).Row 'letzte Zeile der Spalte 
        
    Tb.Cells(EZ, ZSp).Resize(LR - EZ + 1, 1).ClearContents 'reset 
    
    For I = EZ To LR
        
        TMP = Tb.Cells(I, SP) 'Stoffnummer 
        
        Datei = Dir(Pfad & "*" & TMP & "*")
            Do While Len(Datei) > 0
            
                Anz = Anz + 1 'Anzahl ermitteln 
                Datei = Dir() ' nächste Datei 
            Loop
        
        JaNein = IIf(Anz > 0, "Ja", "Nein")
        Tb.Cells(I, ZSp) = JaNein
        
    Next
End Sub

LG UweD
Anzeige
AW: Spalte einer Tabelle mit Dateinamen vergleichen
10.07.2018 13:25:01
UweD
Hallo nochmal
das reicht dann schon
S
Sub Stoff_check()
    Dim Tb, LR As Long, EZ As Integer, SP As Integer, ZSp As Integer, I As Long
    Dim Pfad As String, Datei As String, TMP As String, Anz As Integer, JaNein As String
    
    
    Set Tb = Sheets("Tabelle1")
    EZ = 2 'wegen Überschrift 
    SP = 1 'Spalte mit den Stoffnummern 
    ZSp = 2 'Zielspalte 
    Pfad = "X:\Temp\Test\"
    
    
    LR = Tb.Cells(Tb.Rows.Count, SP).End(xlUp).Row 'letzte Zeile der Spalte 
        
    Tb.Cells(EZ, ZSp).Resize(LR - EZ + 1, 1).ClearContents 'reset 
    
    For I = EZ To LR
        
        TMP = Tb.Cells(I, SP) 'Stoffnummer 
        
        JaNein = IIf(Dir(Pfad & "*" & TMP & "*") <> "", "Ja", "Nein")
        Tb.Cells(I, ZSp) = JaNein
        
    Next
End Sub
Bei folgender Datengrundlage
Userbild
LG UweD
Anzeige
AW: Spalte einer Tabelle mit Dateinamen vergleichen
10.07.2018 13:47:32
Chris
Hey
Danke für die umfangreiche Hilfe erstmal!
Jetzt wird zumindest ein wert ausgegeben, allerdings ist es immer ein Nein.
Dateinamen sind zum Beispiel:
1056_BBSD_COS1_Fe_729.pdf
EM_1087_DS_EEF1.tiff
Vielleicht liegt da ja der Fehler.
AW: Spalte einer Tabelle mit Dateinamen vergleichen
10.07.2018 13:48:55
UweD
Und was steht in der Suchspalte?
AW: Spalte einer Tabelle mit Dateinamen vergleichen
10.07.2018 13:54:21
Chris
In der Spalte die gesucht werden soll steht lediglich die vierstellige Nummer, also für die beiden Beispiele oben 1056, bzw. 1087.
AW: Spalte einer Tabelle mit Dateinamen vergleichen
10.07.2018 13:57:27
UweD
Hallo
hast du beim Pfadanpassen hinten auch ein \ gesetzt?
Pfad = "X:\Temp\Test\"

Anzeige
AW: Spalte einer Tabelle mit Dateinamen vergleichen
10.07.2018 13:59:31
Chris
ohh mann, nein habe ich in dieser Version vergessen -.- Vorhin hatte ich noch daran gedacht...
Jetzt läuft alles super!
Vielen vielen Dank nochmal!
AW: Spalte einer Tabelle mit Dateinamen vergleichen
10.07.2018 14:03:20
Chris
Muss die Aussage leider nochmal revidieren. Es funktioniert zwar in den meisten Fällen, leider gibt es auch einige Dateinamen die nicht direkt mit der Nummer beginnen, sondern beispielsweise so:
EG_6056_W407625_222.tif
Ich habe das soeben Stichprobenmäßig überprüft und für diese Namen funktioniert die Lösung nicht, bzw. spuckt fälschlicherweise ein Nein aus.
Sorry, für die vielen Probleme!
AW: Spalte einer Tabelle mit Dateinamen vergleichen
10.07.2018 14:55:14
UweD
Hallo
das ist eigendlich egal, wo die Zeichenfolge steht
Dir(Pfad & "*" & TMP & "*")
es wird nach *6056* gesucht
Bei mir klappt es.
Hast du evtl Leerzeichen vor oder nach der Zahl in der Suchspalte?
LG UweD
Anzeige
AW: Spalte einer Tabelle mit Dateinamen vergleichen
10.07.2018 15:09:06
Chris
Eigentlich nicht.
Hier mal zum Vergleich 2 bei denen es bei mir nicht funktioniert, obwohl die Dateien vorhanden sind:
GB_5025_WVP_Fe_561.tif
GB_2914_DS_ETC_144.tif
Mit den nummern 5025 und 2914.
Mir ist aufgefallen, dass es sich dabei oft um die Dateien handelt die mit .tif enden. Kann es daran liegen?
AW: Spalte einer Tabelle mit Dateinamen vergleichen
10.07.2018 15:18:33
UweD
Hallo
also bei mir ohne Probleme
Da hilft nur die Originaldatei mit den Nr.
Bitte mal hochladen.
LG UweD
AW: Spalte einer Tabelle mit Dateinamen vergleichen
10.07.2018 15:26:21
Chris
Hier die datei mit den Nummern. Die Dateien die gesucht werden sollen darf ich leider nicht hochladen, bringt das dann überhaupt etwas?
https://www.herber.de/bbs/user/122592.xlsx
Anzeige
Sorry ich bin raus
10.07.2018 15:37:50
UweD
Hi
Also ich bin Ratlos.
Bei mir klappt alles
Die Daten sehen gut aus. Es spielt keine Rolle, das die Ziffern als Text dargestellt sind (Beides funktioniert)
Ich kann mir auch nicht vorstellen, dass es an den TIF Dateien liegt
Verglichen wird nur der Dateiname.
Evtl. hat ja jemand anderes noch eine Idee
LG UweD
AW: Sorry ich bin raus
10.07.2018 15:56:27
Chris
Vielen Dank auf jeden Fall für deine Hilfe! ISt vielleicht eine Fehlerquote von 2-5%, die Daten lassen sich dann eigentlich auch von Hand überprüfen!
AW: Spalte einer Tabelle mit Dateinamen vergleichen
10.07.2018 16:33:19
mmat
Hallo Chris,
wenn du möchtest, dann lass mal das folgende laufen (Nachdem die Pfadangaben in der variablen "Datei"
ergänzt wurden:
Es wäre hilfreich zu wissen, ob die Datei jetzt gefunden wird und was in der msgbox drin steht (Variable a)

Sub WasnDas()
Dim s As String, a As Long, datei As String
datei = "GB_5025_WVP_Fe_561.tif" 'Pfad ergänzen
s = Dir(datei, 63)
If (s  "") Then a = GetAttr(datei): MsgBox a Else MsgBox "gibts 'net"
End Sub

Anzeige

316 Forumthreads zu ähnlichen Themen

Anzeige
Anzeige
Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige