• DİKKAT

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

TXT oluşturma TXT den veri alma

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

wezyr

Altın Üye
Katılım
14 Nisan 2006
Mesajlar
121
Excel Vers. ve Dili
OFFİCE 2010-2019
Merhabalar okulumuzda sınav yaptıktan sonra öğrenci verilerini txt den almak yada txt ye istediğimiz formtta göndermek istiyoruz. Bunu bir buton ile makro ile hızlı bir şekilde yapabilirmiyiz. Oluşturmak istediğimiz txt dosyası örneği ve veri tabanı olarak kullanacağımız excel dosyası ektedir. Sınavlarda sorulan sayıları 10-125 arasında değişkendir belki ileride daha fazla soruda sorabiliriz son sorudan sonra girmeyen öğrenciler için "G" kodu olabiliyor bazen.Yardımlarınız için şimdiden teşekkürler.
 

Ekli dosyalar

Dosyayı irdeleyiniz.

Kod:
Sub veri_kayıtet()

'On Error Resume Next
yer = ThisWorkbook.Path & "\yaz.txt"
Open yer For Output As #2
For i = 1 To Worksheets(ActiveSheet.Name).Cells(Rows.Count, 1).End(xlUp).Row
ekle = ""
For j = 1 To Worksheets(ActiveSheet.Name).Cells(i, Columns.Count).End(xlToLeft).Column
If j = 1 Then
ekle = Worksheets(ActiveSheet.Name).Cells(i, j).Value
Else
ekle = ekle & vbTab & Worksheets(ActiveSheet.Name).Cells(i, j).Value
End If

'Chr(9) vbTab
Next j
Print #2, ekle
Next i
Close #2

MsgBox "işlem tamam"

End Sub


Kod:
Sub veri_getir()

Cells.ClearContents
'On Error Resume Next
kayıt = ThisWorkbook.Path & "\yaz.txt"
Open kayıt For Append As #1
Close #1

Open kayıt For Input As #1
Do While Not EOF(1)
Line Input #1, a

sat = sat + 1
deg2 = Split(a, vbTab)

For i = 0 To UBound(deg2)
Cells(sat, i + 1) = deg2(i)
Next i
Loop
Close #1

MsgBox "işlem tamam"
End Sub
 

Ekli dosyalar

halit bey önelikle ilginiz için teşekkürler. Fakat txt oluştururken şıklar oluşturulurken her sütun arasına boşluk veriyor. Boşluksuz olması lazım okurkende aynı mantıkla olmalı.
Örnek İL 2 , 990002 , 100002 , 11 , D D A E B . . . .şeklinde değil
İL 2,990002,100002,11,DD AEB...... şeklinde olmalı.
 
Text oluştururken mutlaka aralara bir şey koymak gerekiyor bu boşluk olabilir veya farklı bir karekter olabilir nedeni ise tekrar text dosyasından verileri çağırınca bu boşluk veya karekterlere bakarak ayırım yapması gerekiyor sizin örnek dosyanızdaki gibi text oluşturulur ancak veriler geri çağrıldığında ayırım yapamazsınız bir bütün olarak veriler gelir.
 
Birde bu dosyaya bak

Rich (BB code):
Sub veri_kayıtet()

yer = ThisWorkbook.Path & "\yaz.txt"
Open yer For Output As #2
For i = 1 To Worksheets(ActiveSheet.Name).Cells(Rows.Count, 1).End(xlUp).Row
ekle = ""
For j = 1 To Worksheets(ActiveSheet.Name).Cells(i, Columns.Count).End(xlToLeft).Column
If j = 1 Then
ekle = Worksheets(ActiveSheet.Name).Cells(i, j).Value
Else
ekle = ekle & Chr(10) & Worksheets(ActiveSheet.Name).Cells(i, j).Value
End If

Next j
Print #2, ekle
Next i
Close #2

MsgBox "işlem tamam"

End Sub

Sub veri_getir()

Cells.ClearContents
kayıt = ThisWorkbook.Path & "\yaz.txt"
Open kayıt For Append As #1
Close #1

Open kayıt For Input As #1
Do While Not EOF(1)
Line Input #1, a

sat = sat + 1
deg2 = Split(a, Chr(10))

For i = 0 To UBound(deg2)
Cells(sat, i + 1) = deg2(i)
Next i
Loop
Close #1

MsgBox "işlem tamam"
End Sub
 

Ekli dosyalar

veriler alt alta geldi
1571207287487.png
 
Text oluştururken mutlaka aralara bir şey koymak gerekiyor bu boşluk olabilir veya farklı bir karekter olabilir nedeni ise tekrar text dosyasından verileri çağırınca bu boşluk veya karekterlere bakarak ayırım yapması gerekiyor sizin örnek dosyanızdaki gibi text oluşturulur ancak veriler geri çağrıldığında ayırım yapamazsınız bir bütün olarak veriler gelir.
cevaplar kısımının arasına ";" veya "!" sabit bir karakter koyabilirmiyiz. En azından böyle yaparsam ctrl+H ile bu karakteri kaldırmam daha kolay olur sanırsam.
 
5 nolu mesajdaki dosya istediğinizi tam yapıyor denedinizmi ?
 
5 nolu mesajdaki dosya istediğinizi tam yapıyor denedinizmi ?
evet denedim 6 nolu cevapta dediğim gibi oluşan txt dosyası alt alta getiriyor verileri tek bir sütun gibi.
işin aslı elimizde bir okuma programı var bu program verdiğim txt formatında okuyor. ama belirli sınırlılıkları var. programla yapamadığımız bazı analizleri ve değişiklilleri excel ile yapmak için iki yönlü txt kullanmamız gerekiyor. ilginiz için teşekkürler.
 
kod bende düzgün çalışıyor örnek resmi ekliyorum
 

Ekli dosyalar

  • Yeni Bit Eşlem Resmi.jpg
    Yeni Bit Eşlem Resmi.jpg
    387.9 KB · Görüntüleme: 2
  • TXTOLUSTUR.xls
    TXTOLUSTUR.xls
    430 KB · Görüntüleme: 5
kod bende düzgün çalışıyor örnek resmi ekliyorum
halit bey sanırım ben yanlış anlattım kusura bakmayın oluşan yaz.txt dosyasında veriler alt alta geliyor. txt den veri almada problem yok oluşturulan txt de sıkıntı var
 
alt alta gelmeyecekmi
bende oluşan dosya böyle
 

Ekli dosyalar

  • yaz.txt
    yaz.txt
    25.2 KB · Görüntüleme: 2
alt alta gelmeyecekmi
bende oluşan dosya böyle
maalesef hayır. ilk mesajda verdiğim txt formatında olmalı. yordum kusura bakmayın. 2. mesajda verdiğiniz dosyada oluşan txt boşluksuz olsayadı doğruydu sadece boşluk verdiği için hatalıydı
 
siz bu text dosyasındaki verileri başka bir yere kopyalıyormusunuz.
 
bu dosya iki adet text oluşturuyor birincisi tekrar okumak için diğeri sizin istediğiniz gibi oluşturuyor.
 

Ekli dosyalar

Bu dosyada yaz1.txt dosyası verileri geri çağırmak için yaz2.txt dosyası ise sizin istediğiniz gibi oluşmakta
 

Ekli dosyalar

halit bey çok teşekkürler elinize emeğinize sağlık.
 
Teşekkürler iyi çalışmalar
 
Geri
Üst