• DİKKAT

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

Verileri belirli bir formatta txt olarak kaydetmek

  • Konbuyu başlatan Konbuyu başlatan unur
  • Başlangıç tarihi Başlangıç tarihi

unur

Altın Üye
Katılım
8 Aralık 2005
Mesajlar
854
Excel Vers. ve Dili
İş:Excel 2000 Türkçe
Ev:Excel xp Türkçe
Arkadaşlar Excelde yaptığımız bir bordoyu sgk nın kesenek bilgi sistemine yükleyebilmek için Ek'te gönderdiğim dosyadaki bilgilerin herbirinin arasına ";" (noktalı virgül) koyularak bir txt formatı oluşturarak belirtilen bir dosyanın içine kaydetmek istiyorum. Rakamlar arasındaki virgülünde "." olması gerekiyor.

Bu konuda yardımcı olursanız sevinirim. Çok Teşekkürler.
 

Ekli dosyalar

Dosyanız ektedir.:cool:
Kod:
Sub txt_yap()
Dim deg As String, i As Long, k As Integer
sat = Cells(Rows.Count, "A").End(xlUp).Row
If sat < 2 Then Exit Sub
dosya = Format(Now, "dd_mm_yyyy_hh_mm_ss") & ".txt"
Open (ThisWorkbook.Path & "\" & dosya) For Output As #1
For i = 2 To sat
    For k = 1 To 21
        deg = deg & ";" & Cells(i, k).Value
    Next
    If deg <> "" Then
        deg = Right(deg, Len(deg) - 1)
        deg = Replace(deg, ",", ".")
        Write #1, deg
    End If
    deg = ""
Next
Close #1
MsgBox "txt dosyası hazırlandı." & vbLf & "evrengizlen@hotmail.com", vbOKOnly + vbInformation
End Sub
 

Ekli dosyalar

Teşekkürler Orion
Txt dosyasında verilerin başında ve sonundaki çift tırnağın kaldırılması için ne gibi bir değişiklik yapabiliriz makroda?
 
Teşekkürler Orion
Txt dosyasında verilerin başında ve sonundaki çift tırnağın kaldırılması için ne gibi bir değişiklik yapabiliriz makroda?

Aşağıdaki gördüğünüz gibi ben ona kod yazdım.
Sadece başında ; işareti oluyordu onu kaldırıyor.
Diğerleri hücrede boş sütun varsa onun için oluyor.
Hani her sütunun ayıracı olarak ; bu işareti istediniz ya işte ondan oluyor.
Yani boisa oluyor.Ama ben boş hücreleri alınmasını istemiyom derseniz ona göre düzenlerim.:cool:
Ayrıca bana verdiğiniz örnekte dediğiniz gibi bir şey olmuyor,başta ve sonda.

Kod:
 deg = Right(deg, Len(deg) - 1)
 
Aşağıdaki write yazan yere Print yazın
Kod:
[B][COLOR="Red"]Write[/COLOR][/B] #1, deg
 
Aşağıdaki gördüğünüz gibi ben ona kod yazdım.
Ayrıca bana verdiğiniz örnekte dediğiniz gibi bir şey olmuyor,başta ve sonda.

Kod:
 deg = Right(deg, Len(deg) - 1)

Sayın Orion;

Yanlış bir ifade kullandıysam özür dilerim. Makro yada kod ikisinin arasındaki farkı bilmediğim için makro olarak yazdım.

Tam ben sorunu anlatmaya çalışırken cevabınız geldi Print yazarak sorunum çözüldü

Elinize sağlık,Çok Teeşekkürler.
 
Sayın Orion;

Yanlış bir ifade kullandıysam özür dilerim. Makro yada kod ikisinin arasındaki farkı bilmediğim için makro olarak yazdım.

Tam ben sorunu anlatmaya çalışırken cevabınız geldi Print yazarak sorunum çözüldü

Elinize sağlık,Çok Teeşekkürler.
Rica ederim . iyi çalışmalar.:cool:
 
Merhabalar Orion1;
Benimde benzer bir örneğim olacak. http://s9.dosya.tc/server2/h0629c/Emekli_Kesenekleri.zip.html linkdeki doyayı txt formatına çevirmek istiyorum.
Birde ücret olan kısımlarda ondalıklı ayraç olarak nokta(.) kullanmak icab ediyor. Excelde virgül(,) koysak txt Formatına aktarırken noktaya çevirebilirmiyiz.
Saygılarımla.

Aşağıdaki şekilde deneyiniz.

; lü kolonlar silindi. TC Kimlik noları dolu olmak zorunda. İlk boş bulduğunda programdan çıkar. Devamını kaydetmez.

Sizin dosyanızdaki referans txt dosyasında bazı 0.00 ların başında bir boşluk mevcut.
Benim hazırladığımda tüm 0.00 ların başında boşluk yok. Tek fark budur.


http://dosya.co/fbfc6pwxhoac/Emekli_Kesenekleri.xlsm.html

Kod:
'Option Explicit

Sub txt_yap()
Dim deg As String, i As Long, k As Integer
Sheets("2015 EMEKLİ KES.").Select
sat = Cells(Rows.Count, "A").End(xlUp).Row
If sat <= 2 Then Exit Sub
dosya = Format(Now, "dd_mm_yyyy_hh_mm_ss") & ".txt"
Open (ThisWorkbook.Path & "\" & dosya) For Output As #1

For i = 3 To sat
    If Cells(i, 1).Value = "" Then Exit For
    deg = ""
    For k = 1 To 21
        veri = Cells(i, k).Text
        If k > 13 Then veri = Replace(veri, ",", ".")
        If k = 1 Then deg = deg & Trim(veri)
        If k <> 1 Then deg = deg & vbTab & ";" & vbTab & Trim(veri)
    Next k
    Print #1, deg
Next
Close #1
MsgBox "txt dosyası hazırlandı." & vbLf & "evrengizlen@hotmail.com", vbOKOnly + vbInformation
End Sub
 
Son düzenleme:
yüklerken tutarlarda mesela 450,26 rakamı 450.26 olarak noktaya çevirilince kabul ediyor mu konu ilgimi çekti.
 
yüklerken tutarlarda mesela 450,26 rakamı 450.26 olarak noktaya çevirilince kabul ediyor mu konu ilgimi çekti.

Excel deki dosyada 450,26 txt dosya oluştururken 450.26 olarak kaydediyor.

Yüklerken değil, text dosya oluştururken çevriliyor.
 
Asri bey .txt oluşturulduktan sonra son haline gelen dosyada ilgili yere yükleme yapılırken tutar kısımları doğru mu atıyor. Bunu merak ettim. bu tarz konular e-beyanname sitelerine yükleme yaparken de çıkıyor. biraz uğraştırıyor.
 
Asri bey .txt oluşturulduktan sonra son haline gelen dosyada ilgili yere yükleme yapılırken tutar kısımları doğru mu atıyor. Bunu merak ettim. bu tarz konular e-beyanname sitelerine yükleme yaparken de çıkıyor. biraz uğraştırıyor.

Konu hakkında bilgim yok. Soruyu sorun kişi cevaplayabilir.
 
Geri
Üst