CSV formatindaki dosyayi ayni isimle kaydetme

Katılım
12 Mart 2009
Mesajlar
119
Excel Vers. ve Dili
Office 365 - Ingilizce
Merhaba,

Elimde yuzlerce CSV formatinda dosya var ve icerisindeki veriler virgul ile ayrilmis sekilde gorunuyor. Klasor icindeki her dosyayi acip list seperator ile verileri ayirip tekrar ayni isimle kaydetmek istiyorum. Isime yarayabilecek bir kod buldum fakat "farkli kaydet" seklinde ayni dosyanin uzerine CSV formatinda kaydedemedim. sonuc olarak format dahada bozuk bir hale geliyor.

Asagidaki kod tam istedigim sekilde calisiyor fakat kaydetme kismini cozemedim :(

Workbooks(MyFile).Close SaveChanges:=True - kismini nasil save as seklinde degistirebilirim (ayrica ayni dosya uzerine yazarken eminmisiniz diye sormamali)?

Simdiden yardimlariniz icin cok tesekkurler.

Kod:
Sub File_Loop_Example()
    
    Dim MyFolder As String, MyFile As String

    
    With Application.FileDialog(msoFileDialogFolderPicker)
       .AllowMultiSelect = False
       .Show
       MyFolder = .SelectedItems(1)
       Err.Clear
    End With

    Application.ScreenUpdating = False
    Application.DisplayStatusBar = False
    Application.EnableEvents = False
    Application.Calculation = xlCalculationManual

    MyFile = Dir(MyFolder & "\", vbReadOnly)

    Do While MyFile <> ""
        DoEvents
        On Error GoTo 0
        Workbooks.Open Filename:=MyFolder & "\" & MyFile, UpdateLinks:=False
        
        Columns("A:A").Select
    Selection.TextToColumns Destination:=Range("A1"), DataType:=xlDelimited, _
        TextQualifier:=xlDoubleQuote, ConsecutiveDelimiter:=False, Tab:=False, _
        Semicolon:=False, Comma:=False, Space:=False, Other:=True, OtherChar _
        :=",", FieldInfo:=Array(1, 1), TrailingMinusNumbers:=True
        
        
0
        
        Workbooks(MyFile).Close SaveChanges:=True
        MyFile = Dir
              
        
    Loop
    
    Application.ScreenUpdating = True
    Application.DisplayStatusBar = True
    Application.EnableEvents = True
    Application.Calculation = xlCalculationManual

    End Sub
 

Emir Hüseyin Çoban

Destek Ekibi
Destek Ekibi
Katılım
11 Ağustos 2008
Mesajlar
5,892
Excel Vers. ve Dili
Office 2013 Tr - Win10 x64
.

Test etmek için örnek dosya ile destelemenizde fayda var.

.
 

veyselemre

Özel Üye
Katılım
9 Mart 2005
Mesajlar
3,653
Excel Vers. ve Dili
Pro Plus 2021
Kod:
Sub textTirnaklariAt()
    On Error GoTo hata
    Dim MyFolder As String, MyFile As String
    Dim bl
    MyFolder = ThisWorkbook.Path & "\"

    With CreateObject("Scripting.FileSystemObject")
        MyFile = Dir(MyFolder & "\*.csv")

        Do Until MyFile = ""

            If Not MyFile Like "yeni_*" Then

                fName = MyFolder & MyFile
                With .OpenTextFile(fName)
                    mytext = Replace(.readall, Chr(34), "")
                    .Close
                End With

                fName = MyFolder & "yeni_" & MyFile

                With .CreateTextFile(fName, True)
                    For Each sat In Split(mytext, vbCrLf)
                        If Trim(sat <> "") Then
                            bl = Split(sat, ",")
                            ReDim Preserve bl(0 To 8)
                            sat = Join(bl, ",")
                            .WriteLine sat
                        End If
                    Next
                    .Close
                End With
            End If
            MyFile = Dir()
        Loop
    End With
    Exit Sub
hata:
    MsgBox Err.Description
End Sub
 
Üst