• DİKKAT

    DOSYA İndirmek/Yüklemek için ÜCRETLİ ALTIN ÜYELİK Gereklidir!
    Altın Üyelik Hakkında Bilgi

Excel to CSV ( comma delimited )

Katılım
26 Eylül 2013
Mesajlar
10
Excel Vers. ve Dili
2010
elimizde örnek bir csv dosyası var. Açarkan sütunlara bölüyorum ve tablo halinde açılıyor. Bunun içerisine aynı formatta satırlar ekleyip csv ( comma delimited ) olarak kaydediyorum ancak açtığımda örnek dosya gibi değil satır ve sütünlar halinde kaydedildiğini görüyorum.

Durum böyle olunca import edeceğim sistem verileri okuyamıyor. Nerede yanlış yapıyorum acaba
 
Merhaba.
Sorularınızı, örnek belge üzerinden sorarsanız daha hızlı sonuca ulaşabilirsiniz.

Örnek belge ile ilgili olarak cevabımın altındaki İMZA bölümünü okuyunuz.
.
 
Kod:
Sub csvDenOku()
    Cells.ClearContents
    Set objFSO = CreateObject("Scripting.FileSystemObject")
    Set objTF = objFSO.OpenTextFile(ThisWorkbook.Path & "\test.csv", 1)

    satirlar = Split(objTF.readall, vbCrLf)
    For i = 0 To UBound(satirlar)
        satir = satirlar(i)
        If Len(satir) > 0 Then

            If InStr(satir, """") > 0 Then satir = virgulCevir(satir)
            sutunlar = Split(satir, ",")
            For ii = 0 To 26
                sutunlar(ii) = Replace(sutunlar(ii), "|", ",")
                Cells(i + 1, ii + 1).NumberFormat = "@"
                Cells(i + 1, ii + 1).Value = Trim(sutunlar(ii))
            Next ii

        End If
    Next i
    objTF.Close
End Sub
Sub csvOlustur()
    Set objFSO = CreateObject("Scripting.FileSystemObject")
    Set objTF = objFSO.CreateTextFile(ThisWorkbook.Path & "\test.csv", 1)

    For i = 1 To Cells(Rows.Count, 1).End(3).Row
        satir = ""
        For ii = 1 To 27
            al = Cells(i, ii)
            If InStr(al, ",") > 0 Then al = Chr(34) & al & Chr(34)
            satir = satir & "," & al
        Next ii
        objTF.WriteLine Mid(satir, 2)
    Next i
    objTF.Close

End Sub

Function virgulCevir(cevir)
    bul = InStr(cevir, """")
    bol1 = Left(cevir, bul - 1)
    bol2 = Mid(cevir, bul + 1)
    bul = InStr(bol2, """")
    bol21 = Left(bol2, bul - 1)
    bol22 = Mid(bol2, bul + 1)
    bol21 = Replace(bol21, ",", "|")
    cevir = bol1 & bol21 & bol22
    If InStr(cevir, """") Then satir = virgulCevir(cevir)
    virgulCevir = cevir
End Function

https://yadi.sk/d/KpKd1I6XAWuAew
 

Ekli dosyalar

Son düzenleme:
Kod:
Sub csvDenOku()
    Cells.ClearContents
    Set objFSO = CreateObject("Scripting.FileSystemObject")
    Set objTF = objFSO.OpenTextFile(ThisWorkbook.Path & "\test.csv", 1)

    satirlar = Split(objTF.readall, vbCrLf)
    For i = 0 To UBound(satirlar)
        satir = satirlar(i)
        If Len(satir) > 0 Then

            If InStr(satir, """") > 0 Then satir = virgulCevir(satir)
            sutunlar = Split(satir, ",")
            For ii = 0 To 26
                sutunlar(ii) = Replace(sutunlar(ii), "|", ",")
                Cells(i + 1, ii + 1).NumberFormat = "@"
                Cells(i + 1, ii + 1).Value = Trim(sutunlar(ii))
            Next ii

        End If
    Next i
    objTF.Close
End Sub
Sub csvOlustur()
    Set objFSO = CreateObject("Scripting.FileSystemObject")
    Set objTF = objFSO.CreateTextFile(ThisWorkbook.Path & "\test.csv", 1)

    For i = 1 To Cells(Rows.Count, 1).End(3).Row
        satir = ""
        For ii = 1 To 27
            al = Cells(i, ii)
            If InStr(al, ",") > 0 Then al = Chr(34) & al & Chr(34)
            satir = satir & "," & al
        Next ii
        objTF.WriteLine Mid(satir, 2)
    Next i
    objTF.Close

End Sub

Function virgulCevir(cevir)
    bul = InStr(cevir, """")
    bol1 = Left(cevir, bul - 1)
    bol2 = Mid(cevir, bul + 1)
    bul = InStr(bol2, """")
    bol21 = Left(bol2, bul - 1)
    bol22 = Mid(bol2, bul + 1)
    bol21 = Replace(bol21, ",", "|")
    cevir = bol1 & bol21 & bol22
    If InStr(cevir, """") Then satir = virgulCevir(cevir)
    virgulCevir = cevir
End Function

https://yadi.sk/d/KpKd1I6XAWuAew

Veysel bey teşekkür ederim hemen deniyorum
 
Geri
Üst