Thema Datum  Von Nutzer Rating
Antwort
26.03.2021 21:23:46 Harald
Solved
Blau Doppelte Datensätze vermeiden
27.03.2021 12:47:09 volti
*****
Solved
27.03.2021 14:37:06 Gast59228
Solved
27.03.2021 15:01:24 Gast23
Solved
27.03.2021 15:51:07 Gast10612
Solved
27.03.2021 15:47:58 Gast52656
Solved
27.03.2021 15:55:37 Gast12197
*****
Solved

Ansicht des Beitrags:
Von:
volti
Datum:
27.03.2021 12:47:09
Views:
277
Rating: Antwort:
 Nein
Thema:
Doppelte Datensätze vermeiden

Hallo Harald,

hier mal ein Ansatz, eine Idee, zur Realisierung Deines Vorhabens, den Du ggf. anpassen und/oder ausbauen kannst..

Natürlich muss so etwas auch ordentlich getestet und ggf. weiter durchdacht werden. Zur Zeit werden also nur Dateien kopiert, die nicht in der Liste stehen.

Falls es neuere Dateien mit dem gleichen Dateinamen geben sollte, werden diese also nicht kopiert.

PS: Der Teil zur Ordner-Erstellung ist optional....

Code:
01
02
03
04
05
06
07
08
09
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
 
Option Explicit

Private Declare PtrSafe Function SHCreateDirectoryExW Lib "shell32" ( _
        ByVal hwnd As LongPtrByVal pszPath As LongPtr, _
        ByVal psa As LongPtrAs Long

Sub DateienKopieren()
  Dim sFile As String, sSuch As String, iAnz As Integer
  Dim vGefunden As Variant, FSO As Object

  Const csQuelPath As String = "C:\Users\volti\Documents\Adobedokumente\ ' <<<anpassen>>>
  Const csZielPath As String = "C:\Users\volti\Documents\Archiv\"          ' <<<anpassen>>>

  CreateDirectory csZielPath                                          ' Zielpfad erstellen (Optional)
                  

  Set FSO = CreateObject("Scripting.FileSystemObject")                ' Objektvariable setzen

  sFile = Dir$(csQuelPath & "*.pdf")                                  ' Dateisuchmaske auf PDF setzen

  Do While sFile <> ""                                                ' Gesamten Order durchsuchen
     With ThisWorkbook.Sheets("Fundus")                               ' Blatt referenzieren
         sSuch = Replace(sFile, ".pdf", "", 11)                     ' Erw. .PDF abtrennen
         vGefunden = Application.Match(sSuch, .Range("A:A"), 0)
         If IsError(vGefunden) Then
            FSO.CopyFile csQuelPath & sFile, csZielPath & sFile       ' Datei kopieren
            With .Cells(.Cells(.Rows.Count, 1).End(xlUp).Row + 11 ' Daten eintragen
                .Value = sSuch
                .Offset(01).Value = "Daten aus Ordner " & csQuelPath
                iAnz = iAnz + 1                                       ' Kopierte Dateien zählen
            End With
         End If

     End With
     sFile = Dir$                                                     ' Nächste Datei auslesen
  Loop
  Set FSO = Nothing                                                   ' Objekt zerstören

  MsgBox iAnz & " Dateien wurden kopiert!", vbInformation, "Dateien kopieren"
End Sub

Private Function CreateDirectory(ByVal sFullPath As StringAs Long
  CreateDirectory = SHCreateDirectoryExW(0&StrPtr(sFullPath), 0&)
End Function
_________
viele Grüße
Karl-Heinz

 


Ihre Antwort
  • Bitte beschreiben Sie Ihr Problem möglichst ausführlich. (Wichtige Info z.B.: Office Version, Betriebssystem, Wo genau kommen Sie nicht weiter)
  • Bitte helfen Sie ebenfalls wenn Ihnen geholfen werden konnte und markieren Sie Ihre Anfrage als erledigt (Klick auf Häckchen)
  • Bei Crossposting, entsprechende Links auf andere Forenbeiträge beifügen / nachtragen
  • Codeschnipsel am besten über den Code-Button im Text-Editor einfügen
  • Die Angabe der Emailadresse ist freiwillig und wird nur verwendet, um Sie bei Antworten auf Ihren Beitrag zu benachrichtigen
Thema: Name: Email:



  • Bitte beschreiben Sie Ihr Problem möglichst ausführlich. (Wichtige Info z.B.: Office Version, Betriebssystem, Wo genau kommen Sie nicht weiter)
  • Bitte helfen Sie ebenfalls wenn Ihnen geholfen werden konnte und markieren Sie Ihre Anfrage als erledigt (Klick auf Häckchen)
  • Bei Crossposting, entsprechende Links auf andere Forenbeiträge beifügen / nachtragen
  • Codeschnipsel am besten über den Code-Button im Text-Editor einfügen
  • Die Angabe der Emailadresse ist freiwillig und wird nur verwendet, um Sie bei Antworten auf Ihren Beitrag zu benachrichtigen

Thema Datum  Von Nutzer Rating
Antwort
26.03.2021 21:23:46 Harald
Solved
Blau Doppelte Datensätze vermeiden
27.03.2021 12:47:09 volti
*****
Solved
27.03.2021 14:37:06 Gast59228
Solved
27.03.2021 15:01:24 Gast23
Solved
27.03.2021 15:51:07 Gast10612
Solved
27.03.2021 15:47:58 Gast52656
Solved
27.03.2021 15:55:37 Gast12197
*****
Solved