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

nicht 2x kopieren

nicht 2x kopieren
17.01.2023 12:27:23
Marcus
Hallo zusammen,
hier im Forum habe ich diesen Code bekommen, funktioniert einwandfrei.
Jetzt ist mir aufgefallen das er immer die Datei "drüber kopiert", das sollte er nicht er sollte nur kopieren wenn in dem Zielordner noch nichts drin ist.
Wie und wo kann man da was anpassen? Habe keinen Schimmer
Sub Datei_verschieben3()
'Dieser Code kopiert eine Datei in die Ordnerstruktur der Tabelle
   Dim Zeilen As Long, Pfad As String, FullPfad As String, i As Long
   Dim Vorlage As String
'   Vorlage = "C:\Users\marcu\Desktop\3 Fertig - Kopie\1.txt"
Vorlage = ActiveWorkbook.Path & "\Problemlösungsblatt.xlsm"
'   hier die zele eingeben mit einem buchstaben wo gesucht werden soll
   Zeilen = Cells(Rows.Count, "q").End(xlUp).Row
   Pfad = ActiveWorkbook.Path & "\"
'   Range("B1")
   For i = 1 To Zeilen
'   hier die zele eingeben mit einem zahl wo gesucht werden soll
     FullPfad = Pfad & Cells(i, 22) & "\" & Range("w2") & "\"
     If Dir(FullPfad, vbDirectory) > "" Then
         FileCopy Vorlage, FullPfad & Dir(Vorlage)
     Else
'         MsgBox FullPfad & "   nicht vorhanden"
     End If
   Next i
 End Sub
Finde den alten Post nicht mehr
Danke im voraus

6
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: nicht 2x kopieren
17.01.2023 13:03:17
Daniel
Hi
eigentlich ganz ganz einfach mit den Methoden, die auch in diesem Makro bereits verwendet werden:
if Dir(Zielpfad & Dateiname) = "" Then FileCopy ...
Gruß Daniel
AW: nicht 2x kopieren
17.01.2023 13:14:12
Marcus
Hallo Daniel,
danke für die schnelle Antwort, aber wenn ich den Code richtig lese ist die Zeile von dir mit drin?! Aber es funktioniert nicht. Er kopiert immer die Vorlage über die vorhandene drüber.
Was habe ich da falsch gemacht?
Ablauf:
Wenn ich die Zeile in der Datenerfassung ausfülle soll er eine leere Vorlage in einen neuen Ordner kopieren. Das funktioniert
Jetzt fülle ich die kopierte Vorlage ja irgendwann aus, wenn ich aber dann eine neue Zeile in der Datenerfassung einpflege, kopiert er die Vorlage über alle anderen "alten" Dateien drüber, so das meine bearbeiteten Dateien weg sind un durch die Vorlage ersetzt.
Wie kann ich das abfangen?
Danke im voraus
Marcus
Anzeige
AW: nicht 2x kopieren
17.01.2023 13:24:14
Daniel
nein, diese Zeile ist so nicht vorhanden, wohl aber die DIR-Funktion, mit der man überprüfen kann, ob ein Ordner oder eine Datei bereits vorhanden ist.
Du nutzt es, um zu prüfen ob ein bestimmter Ordner vorhanden ist. Man kann sie aber auch verwenden, um zu prüfen ob in einem Ordner eine bestimmte Datei bereits vorhanden ist.
Dir("C:\Test\Dateiname.xlsx") ergibt "Dateiname.xlsx" wenn die Datei "Dateiname.xlsx" im Ordner "C:\Test" vorhanden ist und "" wenn sie Datei hier nicht vorhanden ist.
Gruß Daniel
AW: nicht 2x kopieren
17.01.2023 14:22:34
Marcus
@Daniel,
ich habe es zwar gelesen aber nicht verstanden, ich bin davon ausgegangen das im 1ten Code alles drin ist, nur falsch von mir eingestellt.
Erst wie der Uwe mir die fertige Lösung geschickt hat, ist mir aufgefallen das ich den 1 Beitrag von dir falsch gelesen habe. Sorry
Danke für die Zeit und für die Erklärung
Gruß
Marcus
Anzeige
AW: nicht 2x kopieren
17.01.2023 13:13:05
UweD
Hallo
Code kommt mir bekannt vor :-)
Sub Datei_verschieben3()
'Dieser Code kopiert eine Datei in die Ordnerstruktur der Tabelle
    Dim Zeilen As Long, Pfad As String, FullPfad As String, i As Long
    Dim Vorlage As String
'    Vorlage = "C:\Users\marcu\Desktop\3 Fertig - Kopie\1.txt"
    Vorlage = ActiveWorkbook.Path & "\Problemlösungsblatt.xlsm"
'    hier die zele eingeben mit einem buchstaben wo gesucht werden soll
    Zeilen = Cells(Rows.Count, "q").End(xlUp).Row
    Pfad = ActiveWorkbook.Path & "\"
'    Range("B1")
    For i = 1 To Zeilen
'    hier die zele eingeben mit einem zahl wo gesucht werden soll
        FullPfad = Pfad & Cells(i, 22) & "\" & Range("w2") & "\"
        If Dir(FullPfad, vbDirectory) > "" Then 'Ist Verzeichnis vorhanden
            If Dir(FullPfad & Dir(Vorlage)) = "" Then 'Nur wenn noch nicht vorhanden
                FileCopy Vorlage, FullPfad & Dir(Vorlage)
            End If
        Else
'            MsgBox FullPfad & "   nicht vorhanden"
        End If
    Next i
End Sub
LG UweD
Anzeige
AW: nicht 2x kopieren
17.01.2023 14:02:37
Marcus
@UweD
wie immer perfekt - dankeschön für die Hilfe - läuft perfekt.
Dankeschön
Marcus

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige