XLS Dosyasını Virgüllü CSV Dosyasına Çevirmek. (Makro Kullanarak)

Samet arkadaşım XLS dosyasını CSV’ye farklı kayıt et ile çevirdiğini fakat aralara virgül koyarak dataların dizilmediğini söyledi.  CSV dosyasında data aralarına virgül konulmuş olarak kullanması gerekiyormuş.

Normalde Excell dosyasını açıp farklı kayıt et yaptığınızda stunlar aynı şekilde CSV içerisinde yer almakta. Samet’in istediği format ise şu

Fırst Name Last Name Company
test test test
test test test
test test test
test test test
test test test
test test test
test test test

Şeklindeki XLS dosyasını

Fırst Name,Last Name,Company,Position,Phone,Email,Tag,Note,Owner,
test,test,test,test,test,test,test,test,test,test,test,
test,test,test,test,test,test,test,test,test,test,test,
test,test,test,test,test,test,test,test,test,test,test,
test,test,test,test,test,test,test,test,test,test,test,
test,test,test,test,test,test,test,test,test,test,test,

Şekline getirmek.

Bunun için makro yazmanın en kolay çözüm olacağını düşündüm.   Aşağıdaki şekilde bir makro yazıp excell içerisine kayıt ederseniz.  Makroyu çalıştırdığınız zaman otomatik olarak CVS dosyasını datalar arasında virgül koyarak kayıt edebilirsiniz.

Yazacağımız makro ;

Sub cevir()
Sheets("Sayfa1").Copy
' Üst satırdaki Sayfa1 sizin Excell içerisinde Sheet1 olarak geçebilir.
ActiveWorkbook.SaveAs ActiveWorkbook.Path & "" & "Cevirilmis_Dosya.csv", FileFormat:=xlCSV
' Üst satırda çalışma kitabını CVS formatına dönüştürüyoruz.
' .Path & "" & aynı dizine kayıt etmek için. Path belirleyebilirsiniz.
' Cevirilmis_Dosya adı ile aynı klasöre kayıt ediyor. Değiştirebilirsiniz.
ActiveWorkbook.Close True
End Sub

Bu makroyu yazdıktan sonra çalıştırdığınız zaman otomatik olarak dosya ile aynı dizine cevirilmis_dosya.cvs isminde dosya kayıt edecektir. Dosyanın içeriğine baktığınızda virgüllü olarak dataları ayırdığını görebilirsiniz. Hadi kolay gelsin…

“XLS Dosyasını Virgüllü CSV Dosyasına Çevirmek. (Makro Kullanarak)” üzerine 17 yorum

  1. aynı verileri tırnak içinde CSV olarak kaydetme imkanı var mı ? Yani “test”, “test”, … şeklinde… Export edeceğim uygulama öyle istiyor

    Cevapla
  2. Hamza hocam ,
    benim için yazdığın makro’ya 6 yıl sonra bugün tekrar ihtiyaçım oldu ve yine işimi hal ettim bundan 6 yıl sonra tekrar görüşmek üzere :)

    ellerine sağlık tekrar tekrar

    Cevapla
  3. Hamza bey, bu makroyu nasıl yazabiliriz basit bir şekilde anlatabilir misiniz? Makro yazmaya çalıştığımda;
    Makro Kaydet>
    Makro adı:
    Kısayol tuşu:
    Makronun saklanacağı yer:
    Açıklama:

    kısımları dışında bir seçenek çıkmıyor. Bu sayfada anlattığınız işlemi nasıl yapacağımı bilmiyorum. Şimdiden teşekkürler.

    Cevapla
    • Bu bölüm makro kayıt etmek için video kayıt eder gibi REC tuşuna basarsanız yaptıklarınızı kayıt edip koda döker. Kod yazmak için Sheet’i sağ tıklayıp VB’de açmanız lazım

      Cevapla
  4. merhaba, öncelikle bilgi için teşekkürler !
    bu macro yu çalıştırdım ama başka bir sorunum olmalı, istediğim formatta dosya oluşmadı..
    excel 2013(ingilizce) kullanıyorum ve SaveAs yaptığımda sadece noktalı harfler ? oluyor.. Dosya aynı, sadece uzantısı csv oluyor..İstediğim formatta ise, 10 ayrı kolondan oluşan datanın, tek satırda ve ; ile yaratılması.Bunu neden yapamıyorum ?

    Cevapla
  5. Hocam iyi çalışmalar,
    Hocam excele webden güncel olarak veri çekiyoruz.Çektiğimiz veri tablo şeklinde elimize ulaşıyor ama kullandığımız yöntemde csv türü (virgülle ayrılmış) excel dosyasını kullanabiliyoruz.Webden gelen verileri csv dosyasında nasıl güncelleyebiliriz ?

    Cevapla
  6. sene 2020 aynı sorun bende de var.2020 den beri bu konuyu kimse işlememiş. exeldeki rehberi google kişilere kaydedeceğim.Fakat bir türlü excel dosyaya çeviremiyorum. Güzel bir çözüm sunmuşsunuz elinize ve aklınıza sağlık.Ama csv olarak kaydedemeyen bendeniz ve benim gibi acemiler makroyu nasıl ekleyip çalıştıracak acaba?

    Cevapla
  7. iyi çalışmalar, ben 9 sütünlu excel bir sayfayı 130 arlı ayrı csv dosayasına bölmek istiyorum ancak yeni csv oluştururken 9 sütünü tek satır görüyor

    Cevapla
  8. Hamza Bey bilgi için çok teşekkürler!

    Bazı arkadaşların CSV dosyası ile ilgili sıkıntısı olduğunu okudum yorumlarda. Arkadaşlar CSV dosyasının açılımı Comma-Separated Values’dur yani Virgülle Ayrılmış Değerler. Dolayısıyla eğer bir veritabanından CSV dosyası aldıysanız (bu telefon rehberi de olabilir bir veritabanı programından dışa aktardığınız CSV dosyası da olabilir) bu durumda tüm verileri tek sütunda virgülle ayrılmış olarak görmeniz normal. Zaten CSV dosyası bu biçimdedir.
    Bu verilerle Excel’de çalışmak için Veri sekmesinde Metni Sütunlara Dönüştür’ü tıklayıp veriyi sütunlar halinde normal excel tablosu haline çevirebilirsiniz. Burada dikkat etmeniz gereken nokta Ayırıcılar kısmı. Veriniz hangi işaretle ayrılmışsa o işareti seçmeniz lazım (virgül, noktalı virgül vb.)

    Excel’de işiniz bitince excel dosyasında yukarıdaki makroyu kaydedip çalıştırınca dosyanın son hali yine tüm verilerin tek sütunda olduğu ve virgülle ayrıldığı CSV dosyası olarak kaydedilecektir. Bu sayede bu dosyayı bir veritabanı programında içe aktarabilirsiniz ya da örneğin telefonunuza rehber olarak geri yükleyebilirsiniz.

    Makro kaydetmek için de Geliştirici sekmesinde Makro Kaydet’e basın, hiçbir şey yapmadan Kaydı Durdur’a basın. Sonrasından Makrolar tuşuna basıp kaydettiğiniz makroyu seçip Düzenle’ye tıklarsanız yukarıdaki kodu yapıştırabileceğiniz alan çıkacak. Oraya bu kodu yapıştırıp çıkın ve sonra Makro Çalıştır’a basıp ilgili makroyu çalıştırın. CSV dosyasının oluştuğunu göreceksiniz.

    Son olarak makro yazdığınız excel dosyasında makronun kalıcı olmasını istiyorsanız dosyayı Farklı Kaydet’ten Excel Makro Etkin Çalışma Kitabı olarak kaydetmeyi unutmayın.

    Cevapla

Yorum yapın

teakolik hamza şamlıoğlu blog logo

Wordpress altyapısını kullandığımız bu sistem, Sunucu Çözümleri firmasında yüksek performans sağlayan özel sunucularda barındırılmaktadır. Görüntülemek için en iyi Chrome tarayıcı, 1920x1080 çözünürlük ve Full HD Android telefonlarda çalışır. Ayrıca Sitedeki içeriği istediğiniz gibi çarpabilirsiniz. :)