< návrat zpět

MS Excel


Téma: copyfile-rename rss

Zaslal/a 22.12.2019 14:42

dobrý den, našel jsem VBA co mě funguje jak má. jde mě o to že VBA upravý originální soubor a já bych potřeboval aby vytvořil kopii souboru a ten upravil. nevím jak na to

Private Sub CommandButton2_Click()

Dim TextFile As Integer
Dim FilePath As String
Dim FileContent As String

'File Path of Text File
FilePath = Cells(5, 1) & ListBox1.Value & "\" & ListBox2.Value
'Determine the next file number available for use by the FileOpen function
TextFile = FreeFile
'Open the text file in a Read State
Open FilePath For Input As TextFile
'Store file content inside a variable
FileContent = Input(LOF(TextFile), TextFile)
FilePath = FilePath & "_"
'Clost Text File
Close TextFile
'Find/Replace
FileContent = Replace(FileContent, "L M30", ";edit")
'Determine the next file number available for use by the FileOpen function
TextFile = FreeFile
'Open the text file in a Write State
Open FilePath For Output As TextFile
'Write New Text data to file
Print #TextFile, FileContent
'Close Text File
Close TextFile

End Sub

Zaslat odpověď >

#045396
avatar
Dobrý den, postup uvedený v https://office.lasakovi.com/excel/vba-soubory/excel-vba-kopirovat-prejmenovat-soubory/ by nepomohl?
Po zkopírování souboru by pak mohlo stačit dát podmínku aby makro otevřelo kopírovaný soubor a v něm provedlo potřebné kroky.citovat
#045397
avatar
zkoušel jsem a jediné na co sem dokázal přijít, že jsem přejmenoval koncovku souboru
FilePath = FilePath & "_"citovat
#045404
avatar

fortes napsal/a:

zkoušel jsem a jediné na co sem dokázal přijít, že jsem přejmenoval koncovku souboru
FilePath = FilePath & "_"

viz. zpráva ve vzkazech - zkusím na to pak více mrknout a snad se něco podaří vymyslet:)citovat
#045413
elninoslov
Tak napr.
Private Sub CommandButton2_Click()

Dim TextFile As Integer
Dim FilePath As String
Dim FileContent As String
Dim ExtensionLenght As Byte

'File Path of Text File
FilePath = Cells(5, 1) '& ListBox1.Value & "\" & ListBox2.Value
'Determine the next file number available for use by the FileOpen function
TextFile = FreeFile
'Open the text file in a Read State

Open FilePath For Input As TextFile
'Store file content inside a variable
FileContent = Input(LOF(TextFile), TextFile)
ExtensionLenght = Len(FilePath) - InStrRev(FilePath, ".") + 1
FilePath = Left$(FilePath, Len(FilePath) - ExtensionLenght) & "_" & Right$(FilePath, ExtensionLenght)
'Clost Text File
Close TextFile

'Find/Replace
FileContent = Replace(FileContent, "L M30", ";edit")
'Determine the next file number available for use by the FileOpen function
TextFile = FreeFile
'Open the text file in a Write State

Open FilePath For Output As TextFile
'Write New Text data to file
Print #TextFile, FileContent
'Close Text File
Close TextFile

End Sub
citovat
#045415
avatar
A čo tak najprv vytvoriť si kopiu toho súboru a ten môžeš potom upravovať?citovat
#045416
avatar
děkuju, elninoslov vyřešil problém v naprostou spokojenost. vědět co potřebuju udělat je jedna věc, ale převézt tu myšlenku do praxe do VBA už je složitější, samozřejmě jak pro koho :-) j¨mám ještě další představy co vylepšit takže budu bojivat dál, ale funkcionalita je vyřešená.citovat

Uživatelské menu

Nejste přihlášen(a)
avatar\n

Menu

Formulář Faktura

Formulář Faktura IV

Oblíbený formulář Faktura byl vylepšen a rozšířen.
Více se dočtete zde.

Helios iNuvio

Používáte podnikový systém Helios iNuvio? Potřebujete pomoci se správou nebo vyvinout SQL proceduru? Více informací naleznete na stránce Helios iNuvio.

On-line nástroje