Dieses Forum nutzt Cookies
Dieses Forum verwendet Cookies, um deine Login-Informationen zu speichern, wenn du registriert bist, und deinen letzten Besuch, wenn du es nicht bist. Cookies sind kleine Textdokumente, die auf deinem Computer gespeichert werden. Die von diesem Forum gesetzten Cookies werden nur auf dieser Website verwendet und stellen kein Sicherheitsrisiko dar. Cookies aus diesem Forum speichern auch die spezifischen Themen, die du gelesen hast und wann du zum letzten Mal gelesen hast. Bitte bestätige, ob du diese Cookies akzeptierst oder ablehnst.

Ein Cookie wird in deinem Browser unabhängig von der Wahl gespeichert, um zu verhindern, dass dir diese Frage erneut gestellt wird. Du kannst deine Cookie-Einstellungen jederzeit über den Link in der Fußzeile ändern.

Ordner & Inhalt (VBA) Kopieren und umbenennen
#1
Moin moin und Hallo,

ich würde gerne erreichen, dass ein Ordner samt Dateien kopiert und umbenannt wird.

Ich verwende den Code:
Code:
Sub Kopieren()
   Zeilenanzahl = ActiveSheet.Cells(Rows.Count, 1).End(xlUp).Row
   For x = 1 To Zeilenanzahl
       Dateiname_alt = Range("C" & x) & "\" & Range("A" & x)
       Dateiname_neu = Range("D" & x) & "\" & Range("B" & x)
       FileCopy Dateiname_alt, Dateiname_neu
   Next x
End Sub
von folgender Seite:
http://www.digital-inn.de/threads/dateie...nen.13168/

Leider bekomme ich mich da nicht registriert um eine Anpassung des Codes zu erfragen.

Habe meine Tabelle dem Füll muster angepasst.

Da ich aber den zu befüllenden Ordner nicht zuvor manuell anlegen möchte, dachte ich ich schreibe in Spalte B in erster Zeile den Ordnernamen mit Bezug auf entsprechenden Pfad.
Leider wird der Ordner nicht wie die Dateien erstellt. Huh
Antworten Top
#2
Hallo!
Einen Ordner erstellst Du am einfachsten so:
Code:
Sub RPP()
Dim Verz As String
Verz = "J:\x\"
If Dir(Verz, vbDirectory) = "" Then MkDir Verz
End Sub

Gruß Ralf
Gib einem Mann einen Fisch und du ernährst ihn für einen Tag. 
Lehre einen Mann zu fischen und du ernährst ihn für sein Leben. (Konfuzius)
Antworten Top
#3
Zitat:Dim ...
Verz = "J:\x\"
If ...
Ich würde statt einer fixen Eingabe Gerne den Namen eines Feldes nutzen.

Hatte mir das in etwa so vorgestellt

Dim ...
Verz = E4
If ...

Feld E4 ist in derzeit in 'Text' formatiert.
Aber das Makro übernimmt den Pfad nicht.
Antworten Top
#4
Hi!
Und wo genau siehst Du jetzt das Problem, in die Zelle E4 den Text J:\x\ zu schreiben?

Zur Sicherheit noch der Zusatz:
Verz = Range("E4")

Gruß Ralf
Gib einem Mann einen Fisch und du ernährst ihn für einen Tag. 
Lehre einen Mann zu fischen und du ernährst ihn für sein Leben. (Konfuzius)
Antworten Top
#5
Das Problem lag darin das der Pfad in E4 ohne das Range nicht angenommen wurde.
Als wenn du das nicht wüsstest Blush
Damit dürfte klar sein das ich immer noch keinen Plan habe.

Was auch erklärt, warum ich diese zwei Makroschnippseln nicht zusammen gefügt bekomme. Zu einem Makro:
Code:
Sub RPP()
Dim Verz As String
Verz = Range("E4")
If Dir(Verz, vbDirectory) = "" Then MkDir Verz
End Sub

Sub Kopieren()
  Zeilenanzahl = ActiveSheet.Cells(Rows.Count, 1).End(xlUp).Row
  For x = 1 To Zeilenanzahl
      Dateiname_alt = Range("C" & x) & "\" & Range("A" & x)
      Dateiname_neu = Range("D" & x) & "\" & Range("B" & x)
      FileCopy Dateiname_alt, Dateiname_neu
  Next x
End Sub

H I L F E  Huh Angel  :21:
Antworten Top
#6
Moin! 
Was steht denn in den jeweiligen Zellen?
In den jeweiligen Dateinamen muss der jeweilige Pfad integriert werden, weil Du ja in zwei Pfaden arbeitest.
Am besten Du beschreibst mal genau, wie Deine Dateistruktur Ist und Soll aussieht und was genau in den Zellen steht.
Am besten iVm einer Datei.

Gruß Ralf
Gib einem Mann einen Fisch und du ernährst ihn für einen Tag. 
Lehre einen Mann zu fischen und du ernährst ihn für sein Leben. (Konfuzius)
Antworten Top
#7
Noch ein Zusatz, warum Deine Variante nicht funktioniert hat.
Dim ...
Verz = E4
If ...

Mit E4 ist bei Dir nicht die Zelle E4 gemeint, sondern eine nicht deklarierte Variable E4.
Da in Deinem  Code keine Zuweisung erfolgt, bleibt sie leer ("").
Deshalb solltest Du grundsätzlich in jedem Modulkopf Option Explicit setzen.
Dann hätte VBA beim kompilieren gemeckert, dass die Variable nicht deklariert ist.

Lies Dir mal folgendes Tutorial durch, lohnt sich!
http://www.online-excel.de/excel/singsel_vba.php?f=4

Gruß Ralf
Gib einem Mann einen Fisch und du ernährst ihn für einen Tag. 
Lehre einen Mann zu fischen und du ernährst ihn für sein Leben. (Konfuzius)
Antworten Top
#8
Das sieht jetzt etwas wüst aus da nur zum ersten Test erstellt: :s

.xlsx   Umbenennen2.xlsx (Größe: 12,54 KB / Downloads: 8)
Aber in die zwei grünen Feldern der Tabelle trage ich Kunde und Maschinen Nr ein.
In einem Pfad liegt ein Ordner namens '! Vorlage'.
hierin sind alle benötigten Dateien enthalten.
Mit Grundstruktur aber ohne Inhalt.
In dem selben Pfad muss im Grunde dieser Ordner samt Inhalt Kopiert und samt Inhalt umbenannt werden.

Das makro soll nun im ersten Schritte aus Nr. und Name im selben Pfad einen Ordner erstellen.
Dann sollen die Dateien ergänzend umbenannt und in den zuvor erstellten Ordner kopiert werden.

Struktur von Namen des Ordners und der Dateien sind unterschiedlich.

Ordner Name = (Nummer) & (Kundenname)
Dateien Name = (Nummer) 'vor' (vorhandenem Dateinamen)

Statt von Hand zu kopieren und alles von Hand umzubenennen würde ich gerne durch Doppelklick und Bestätigung nach Eingabe von Name und Nr. jenen stätig neu benötigten Ordner erstellt haben.
Antworten Top
#9
Ich habe mir mal selbst ein Beispiel erstellt,
hoffe, Du kannst anpassen?

ABCDE
1Name alt:Name neu:Pfad alt:
2a.txtd.txtJ:\y\
3b.txte.txtPfad neu:
4c.txtf.txtJ:\x\

Excel Tabellen im Web darstellen >> Excel Jeanie HTML 4.8

Sub RPP()
Dim Verz As String, cnt As Long
Verz = Range("E4")
If Dir(Verz, vbDirectory) = "" Then MkDir Verz
For cnt = 2 To Cells(Rows.Count, 1).End(xlUp).Row
   FileCopy Range("E2") & Range("A" & cnt), Verz & Range("B" & cnt)
Next
End Sub

Gruß Ralf
Gib einem Mann einen Fisch und du ernährst ihn für einen Tag. 
Lehre einen Mann zu fischen und du ernährst ihn für sein Leben. (Konfuzius)
Antworten Top
#10
Vielleicht kann ich ja nicht mal anpassen,
aber wenn ich das angepasste Makro so laufen lasse, dann:

Die Dateien werden im gewünschten Pfad jedoch ohne Ordner erstellt.
Es fehlt also der Ordner in dem die Dateien erzeugt werden sollten.
Dementsprechend ist der Pfad eine Verschachtelung zu flach.

Hab nach neuem Ordner gesucht
Es wurde auf meiner HDD keiner erstellt
Antworten Top


Gehe zu:


Benutzer, die gerade dieses Thema anschauen: 1 Gast/Gäste