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.

Eine Datei mehrfach anders benannt kopieren
#1
Hallo liebes Forum!

Hoffe es geht euch allen gut!

Ich habe eine Datei dateiX.html in einem Ordner

Von dieser Datei möchte ich 1369 individuelle Kopien in diesem (oder einem anderen ) Ordner erzeugen und jeweils das X ersetzen

Die hinzuzufügenden Dateinamen stehen dabei in Spalte A:

ABC50A01
ABC50A02

...

ABC50A50

ABC50B01

...

ABC50B50

ABC50C01

usw.



...so das die Dateinamen dann so aussehen:

datei
ABC50A0
1.html

dateiABC50A02.html
...
dateiABC50A50.html
dateiABC50B01.html
...
dateiABC50B50.html
dateiABC50C01.html
usw.

Hat eine(r) von euch eine Idee dazu?

Danke und lieben Gruss

Michael
Antworten Top
#2
Hallo, 19 

hier jetzt nur bis "dateiABC50Z50.html" (1300): 21 

Code:
Option Explicit
Public Sub Main()
    Dim objFSO As Object
    Dim lngTMP As Long
    Set objFSO = CreateObject("Scripting.FileSystemObject")
    For lngTMP = 1 To 1300
        objFSO.CopyFile "C:\Temp\HTML\dateiX.html", "C:\Temp\HTML_Kopie\" & Replace("dateiX.html", "X.html", "") & Tabelle1.Cells(lngTMP, 1) & ".html"
    Next lngTMP
    Set objFSO = Nothing
End Sub

Du musst also die Schleife, den Quellpfad und den Zielpfad anpassen.
________
Servus
Case
Antworten Top
#3
Hi Case!

Vielen Dank für die schnelle Umsetzung!

Klappt grundsätzlich, nur Generierter Dateiname und Zielpfad klappt (bei mir) noch nicht so ganz.

Zielpfad

Das ist doch der Quellpfad: C:\Temp\HTML\dateiX.html, da liegt die zu kopierende Datei richtig?

Und das ist doch der Zielpfad: C:\Temp\HTML_Kopie\, da werden die kopierten Dateien reingeschrieben richtig?

Dateiname

Am Anfang von jedem Dateinamen steht copy, also statt

dateiABC50A01.html

copydateiABC50A01.html

Kann man das copy irgendwie vermeiden?

Danke und Gruss

Michael
Antworten Top
#4
Hallo, 19

wie heißt denn deine Datei? "copydateiX.html"? Oder wo kommt das copy her?
________
Servus
Case
Antworten Top
#5
Hi Case!

Also Quell- und Zielpfad sind richtig?

Ich vermute mal das vorgestellte "copy" kommt daher, weil ich es leider nicht geschafft habe Deinen Code in ein nagelneue Datei einzufügen.

Dann habe ich eine andere Makrodatei überschrieben und das ist das Ergebnis.

Könntest Du mir bitte Deinen Code in einer Exceldatei schicken, dann finde ich eventuell den Fehler?

Das wäre super

Danke

Michael
Antworten Top
#6
Hallo, 19 

hier meine Beispieldatei: 21

.xlsb   Datei_EINE_mehrmals_kopieren_umbenennen.xlsb (Größe: 23,12 KB / Downloads: 4)

Da sind jetzt beide Codes drin. Für den Fall, dass die Datei "dateiX.html" oder "copydateiX.html" heisst.

Bei der Auswahl der Namen in Spalte A arbeite ich mit dem Codenamen der Tabelle - Tabelle1.Cells(lngTMP, 1).
________
Servus
Case
[-] Folgende(r) 1 Nutzer sagt Danke an Case für diesen Beitrag:
  • MichaelH
Antworten Top
#7
Hi Case!

Alles prima jetzt!

Vielen herzlichen Dank!

Gruss

Michael
Antworten Top
#8
Code:
Sub M_snb()
  sn=cells(1).currentregion.columns(1)

  for j=1 to Ubound(sn)
    Filecopy "C:\Temp\HTML\dateiX.html",replace("C:\Temp\HTML\dateiX.html","X",sn(j,1))
  Next
End Sub
Zum übersetzen von Excel Formeln:

http://dolf.trieschnigg.nl/excel/index.p...gids=en+de
Antworten Top
#9
Hi snb!

Wenn ich Deinen Code so übernehme, kommt die Meldung:

Fehler beim Kompilieren:

Variable nicht definiert

Gruss

Michael
Antworten Top
#10
Hallöchen,

das sind Grundlagen beim Programmieren.
Es gibt die Einstellung, dass man Variablen deklarieren muss - "Option Explicit" erscheint damit automatisch in jedem neuen Codemodul.
Im Code sind 2 Variablen, die dementsprechend deklariert werden müssen. sn ist ein Range und für j kann man Long nehmen.

Dim sn as Range, j as Long
.      \\\|///      Hoffe, geholfen zu haben.
       ( ô ô )      Grüße, André aus G in T  
  ooO-(_)-Ooo    (Excel 97-2019+365)
Antworten Top


Gehe zu:


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