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.
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?
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
[attachment=39972]

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).
[-] Folgende(r) 1 Nutzer sagt Danke an Gast 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