Hallo Ralf,
entschuldige die späte Rückmeldung und vielen Dank für deinen Lösungsvorschlag. Leider funktioniert es nicht ganz so wie ich es mir vorgestellt habe. Es werden die einzelnen Zeilen nacheinander durchgearbeitet (hierfür habe ich den Befehl intZaehler = intZaehler + 1 in der Else-Verzweigung eingeführt). Hierbei wird anscheinend nur zu Beginn der Name in den einzelnen Spalten verglichen.
In dem Ordner habe ich beispielsweise eine Datei die zweimal mit selben Vornamen sowie Nachnamen vorkommt, lediglich der Rest des Dateinamens ist leicht abgeändert. Starte ich das Programm so sind die nachfolgenden Einträge um eins versetzt. Siehe Tabelle
Dateien im Ordner
Einstein Albert 1955
Newton Isaac 1727
Newton Isaac 1643-1727
Planck Max 47
Curie Marie 67-34
Hawking Stephen 42-2018
Es erscheinen dann in der 3. Spalte folgende Einträge:
Albert |
Einstein |
Einstein Albert 1955 |
Isaac |
Newton |
Newton Isaac 1727 |
Max |
Planck |
Newton Isaac 1643-1727 |
Werner |
Heisenberg |
Planck Max 47 |
Curie |
Marie |
Curie Marie 67-34 |
Stephen |
Hawking |
Hawking Stephen 42-2018 |
Die Abfrage, dass eine Datei schon vorhanden ist und ob diese überschrieben werden soll habe ich rausgenommen. Hier nochmal der Code:
Dim intZaehler As Integer
Dim strPfad As String, strDatei As String, vn As String, nn As String
Dim rngName As Range
Dim arrName
Range("F5:F500").ClearContents
intZaehler = 0
strPfad = "Z:\Pfad"
strDatei = Dir(strPfad & "\*.pdf")
If strDatei = "" Then MsgBox "Keine Dateien vorhanden", vbCritical, "Abbruch": Exit Sub
arrName = Split(strDatei, " ")
vn = arrName(1)
nn = arrName(0)
Do
Set rngName = Columns(4).Find(nn, lookat:=xlWhole)
If Not rngName Is Nothing Then
If rngName.Offset(0, 1) = vn Then
If rngName.Offset(0, 2) = "" Then
rngName.Offset(0, 2) = strDatei
Else
intZaehler = intZaehler + 1
rngName.Offset(intZaehler, 2) = strDatei
End If
End If
End If
strDatei = Dir
Loop While strDatei <> ""
Beste Grüße
Sven
|