dosyadan bilgi okuma

Katılım
2 Temmuz 2005
Mesajlar
80
Arkadaslar bir program hazirladim.Bu programda bilgileri bir *.txt uzantılı dosyaya yazdırarak kaydediyorum.tekrar bu bilgileri kaydettiğim dosyadan geri alıyorum.Ancak sorun burda baslıyor çünkü aldığım bilgiler excel sayfasında tek bir satıra yazılıyor oysa ben hem satir satir hemde sutun sutun okuyup alsın istiyorum nasil yapabilirm tesekkurler


Yani şöyle diyeyim exceldeki verilerimi *.txt uzantılı dosyaya print ile yazdırıyorum ,ama geri okumasını istediğimde *.txt uzantılı dosyadaki verileri excelde tek bir satıra yani A1 hcresine yazıyor,ikinci satırıda A2 hücresine yazıyor.Oysa Ben txt dosyasındaki verileri satır olarak değil sutun olarak okumasını istiyorum.

A B C

1.xxxx xxxx xxxx
2.xxxx xxxx xxxx

Gibi;
 

Haluk

𐱅𐰇𐰼𐰚
Katılım
7 Temmuz 2004
Mesajlar
12,271
Excel Vers. ve Dili
64 Bit 2010 - İngilizce
+
Google Sheets
+
JScript
Bahsettiğiniz Text dosyasını buraya eklerseniz, vakti olan bir üyemiz konuyla ilgilenebilir.
 

Haluk

𐱅𐰇𐰼𐰚
Katılım
7 Temmuz 2004
Mesajlar
12,271
Excel Vers. ve Dili
64 Bit 2010 - İngilizce
+
Google Sheets
+
JScript
Tayfun bey;

Yaklaşık o tip bir şey olduğunu tahmin ediyorum ama dosyanın kendisi önemli.

Çünkü, aynı satırdaki datalar arasında ayırıcı özel bir karakter var mı, yok mu onu anlamaya çalışıyorum.

Eğer varsa, bu iş basit olur ve makro kullanmaya bile gerek kalmadan Text dosyasını Excel'e aktarabilirsiniz.
 
Katılım
2 Temmuz 2005
Mesajlar
80
su an baska bilgisayarda olduğum için gönderemiyorum dosyam burda mevcut değil datalar arasında ayıraç yok çünkü write ile yazdırmadım.Manuel olarak almayı biliyorum ancak bunu makro ile yapmak istiyorum.
 

veyselemre

Özel Üye
Katılım
9 Mart 2005
Mesajlar
3,553
Excel Vers. ve Dili
Pro Plus 2021
Sub Makro1()

With ActiveSheet.QueryTables.Add(Connection:="TEXT;C:\Maas.txt", Destination _
:=Range("A1"))
.Name = "Maas"
.FieldNames = True
.RowNumbers = False
.FillAdjacentFormulas = False
.PreserveFormatting = True
.RefreshOnFileOpen = False
.RefreshStyle = xlInsertDeleteCells
.SavePassword = False
.SaveData = True
.AdjustColumnWidth = True
.RefreshPeriod = 0
.TextFilePromptOnRefresh = False
.TextFilePlatform = 28599
.TextFileStartRow = 1
.TextFileParseType = xlFixedWidth
.TextFileTextQualifier = xlTextQualifierDoubleQuote
.TextFileConsecutiveDelimiter = False
.TextFileTabDelimiter = True
.TextFileSemicolonDelimiter = False
.TextFileCommaDelimiter = False
.TextFileSpaceDelimiter = False
.TextFileColumnDataTypes = Array(1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, _
1, 1, 1, 1, 1, 1, 1, 1, 1, 1)
.TextFileFixedColumnWidths = Array(9, 10, 12, 17, 12, 14, 15, 14, 11, 5, 12, 13, 15, 13, _
15, 26, 11, 7, 12, 21, 22, 10, 17, 14, 13, 20, 23, 14, 14, 14)
.TextFileTrailingMinusNumbers = True
.Refresh BackgroundQuery:=False
End With
Cells.Select
Cells.EntireColumn.AutoFit
End Sub
 

Levent Menteşoğlu

Administrator
Yönetici
Admin
Katılım
13 Ekim 2004
Mesajlar
16,030
Excel Vers. ve Dili
Excel 2010-32 bit-Türkçe
Excel 365 -32 bit-Türkçe
Bu işlemi; "veri-dış veri al-veri" özelliği ile kolayca yapabilirsiniz.
 

aligunes

Altın Üye
Katılım
2 Mart 2005
Mesajlar
303
Excel Vers. ve Dili
Ofis 2016 TR 32 Bit
boş bir excel sayfası aç ve dosya aç işaretle senin olan txt dosyasını aç göremiyorsan aç komuttan sonra tüm dosya seçeneğini işaretle ve txt dosyanı bul aç ve metin alma sihirbazı karşına çıkar sabit genişlik dosya kaynağını yazını düzgün gösterecek şekilde ayarla(Windows) olsun işaretle ileri> ileri ve tamam
kolay gelsin
 
Katılım
2 Temmuz 2005
Mesajlar
80
Arkadaşlar manuel olarak txt dosyayı almayı biliyorum ben makro ile yapmak istiyorum.Yani excelden txt dosyaya aktardığım verileri geri exceldeki aynı yerlerine almak istiyorum...
 

veyselemre

Özel Üye
Katılım
9 Mart 2005
Mesajlar
3,553
Excel Vers. ve Dili
Pro Plus 2021
txt dosyasına yazdırdığın kodları yazarmısın
 

veyselemre

Özel Üye
Katılım
9 Mart 2005
Mesajlar
3,553
Excel Vers. ve Dili
Pro Plus 2021
[vb:1:0d89bf06e7]Sub txtolustur()

Open "c:\deneme.txt" For Output As #1

satir = 6
sat_son = 20

For x = satir To sat_son
a$ = Chr(9)

For y = 2 To 36
a$ = a$ & Cells(x, y) & Chr(9)
Next

Write #1, a$
Next

Close #1
End Sub

Sub verial()

Open "c:\deneme.txt" For Input As #1

satir = 6
sat_son = 20

For x = satir To sat_son

Input #1, al$
bas = 1
c = 1
For y = 2 To Len(al$)

If Mid(al$, y, 1) = Chr(9) Then
c = c + 1
Cells(x, c) = Mid(al$, bas + 1, y - bas - 1)
bas = y
End If

Next y
Next x
Close #1

End Sub[/vb:1:0d89bf06e7]
 
Katılım
28 Nisan 2005
Mesajlar
252
Excel Vers. ve Dili
Excel 2010 Türkçe
merhaba veyselemre
Yukarıda vermiş olduğunuz kodlarda "verial" makrosu bir sütun kaydırarak yapıyor. Bunu birebir hale getirebilirmiyiz. Yani veriyi aktardığımız A sütünunu, verial makrosunu uyguladığımızda tekrar A sütünuna yazdırabilirmiyiz.
 

veyselemre

Özel Üye
Katılım
9 Mart 2005
Mesajlar
3,553
Excel Vers. ve Dili
Pro Plus 2021
aynı sütunlara yazar
Sub txtolustur()

Open "c:\deneme.txt" For Output As #1

satir = 1
sat_son = 3

For x = satir To sat_son
a$ = Chr(9)

For y = 1 To 40
a$ = a$ & Cells(x, y) & Chr(9)
Next

Write #1, a$
Next

Close #1
End Sub

Sub verial()

Open "c:\deneme.txt" For Input As #1

satir = 5
sat_son = 7

For x = satir To sat_son

Input #1, al$
bas = 1
c = 0
For y = 2 To Len(al$)

If Mid(al$, y, 1) = Chr(9) Then
c = c + 1
Cells(x, c) = Mid(al$, bas + 1, y - bas - 1)
bas = y
End If

Next y
Next x
Close #1

End Sub
 
Katılım
2 Temmuz 2005
Mesajlar
80
TEÞEKKÜR

Burdan veyselemre kardesime ve ayrıca bu sayfanın hazırlanmasında emeği geçen tüm arkadaşlara teşekkür ediyorum ellerinize sağlık....

EDİT:
Bu konuya teşekkür amaçlı açılan yeni başlığı bu mesaj ile birleştirdim.
Lütfen gereksiz yere yeni başlıklar açmayınız.
Hüseyin
 
Üst