Text dosyasından veri alarak işlemek

Katılım
13 Mayıs 2007
Mesajlar
32
Excel Vers. ve Dili
excell 2003
turkce
Selam arkadaşlar.
Excel'de çok çok yeniyim.
ve bir derdim var.

il sayısı kadar text dosyası var. (yani her il için ayrı bir text dosyası düzenlenmiş) Bu text dosyalarında 3 adet sütun bulunuyor.
İlk sütun sırasayısı olarak ayrılmış. Diğer 2 sütundaki değerler her ile göre değişiyor.

Yapmak istediğim şey, il bazında hazırlanan text dosyalarından verileri alarak Türkiye Geneli'ni oluşturacak şekilde bu verileri "TOPLAM" şeklinde gösteren bir excel tablosu oluşturmak.

Örnek vererek açıklamak gerekirse:

iki adet text dosyası varmış gibi düşünerek :

1. dosya içeriği
101 10 8
102 24 11
103 9 4
"
"
"

2. dosya içeriği
101 6 3
102 5 12
103 12 4
"
"
"


oluşturmak istediğim excel sayfasının içeriği :

101 16 11
102 29 23
103 21 8
"
"
"

ilk sütunda sırasayı numaraları, 2. ve 3. sütunda ise text dosyalarındaki aynı sırasayısına denk gelen (aynı hücredeki) rakamların toplamları gözükecek.


nasıl yapılabilir ?

şimdiden yardımcı olan arkadaşlara çok teşekkür ederim...

NOT: tüm iller için text dosyası bulunmaktadır, bir örnek olsun diye 5 adet dosya eklenmiştir.
 

Levent Menteşoğlu

Administrator
Yönetici
Admin
Katılım
13 Ekim 2004
Mesajlar
16,057
Excel Vers. ve Dili
Excel 2010-32 bit-Türkçe
Excel 365 -32 bit-Türkçe
Öncelikle tüm text dosyalarınızı "c:\text" isminde oluşturacağınız bir klasör içine kopyalayın sonrasında ekli dosyadaki butona basın. Dosyada excelin dış veri al özelliğinden istifade edilmiştir, yani veriler önce excelde bir sayfaya alınmakta ve daha sonra toplamı ana sayfaya aktarılmaktadır. Farklı çözümlerde üretmek elbette mümkündür.

Not: Klasör oluşturmak yerine kod içine kendi klasörünüzün adınıda yazabilirsiniz.
 
Katılım
13 Mayıs 2007
Mesajlar
32
Excel Vers. ve Dili
excell 2003
turkce
Sayın leventm;
İlginize çok teşekkür ederim.

Gönderdiğiniz dosyayı çalıştırdım ve istediğim sonucu aldım, çok sağolun.

Makroyu inceleyerek nasıl yapıldığını öğrenip, geliştirmeye çalışacağım.

Yalnız başka bir problem çıktı.
Dosyayı diğer bir bilgisayarda çalıştırdığım zaman, tüm hücrelere 0 (sıfır) değeri atanıyor. Excel'in ayarlarından kaynaklanıyor olabilir mi ?

veri alış kısmında bir sorun var gibi.
sayfa2 olarak eklediğiniz bölümdeki "dış veri - "metin alma düzeni" işlemini manuel olarak yaptığımda verileri "sabit genişlikli" yerine "sınırlandırılmış" olarak algıladığını söylüyor.

"sabit genişlikli" seçeneği ile metin alma şeklini düzenledikten sonra makroyu çalıştırdığımda metin alma düzeni sihirbazında işaretlediğim dosya için doğru değerler geliyor. ancak daha sonra makroyu tekrar çalıştırdığımda yine tüm hücreler "sıfır" değerle doluyor.

text dosyasındaki verileri düzgün bir şekilde alamadığını düşünüyorum.
yazmış olduğunuz makro'da bununla ilgili düzenleme yapabileceğim bir satır bulamadım.

makroya ilave komutlarla bu yapılabilir mi ?
yoksa excel'in ayarları ile mi oynamak gerekiyor ?
yardımcı olabilir misiniz bu konuda bana.

şimdiden çok teşekkür ederim.
 

Levent Menteşoğlu

Administrator
Yönetici
Admin
Katılım
13 Ekim 2004
Mesajlar
16,057
Excel Vers. ve Dili
Excel 2010-32 bit-Türkçe
Excel 365 -32 bit-Türkçe
Eğer dosyalar ayrı bir bilgisayarda ise bu durumda yolu ağ bağlantısınıda içerecek şekilde tanımlamak gerekir, hata sebebi sadece budur. Yada tüm dosyaları diğer bilgisayarda oluşturacağınız text isimli klasöre kopyalamalısınız. Bence ilave satıra gerek yok, ancak makro kaydet yöntemini çalıştırıp dış veri al işlemini yaparsanız, gerekli tüm satırları elde edebilirsiniz.
 
Katılım
8 Ağustos 2005
Mesajlar
16
Excel Vers. ve Dili
office xp
dosyada sayfa2 ye gelip görünümü %25 yaptım. sonuç enteresan..hocam bunu siz mi yaptınız yoksa microsoft mu?:)
 

Levent Menteşoğlu

Administrator
Yönetici
Admin
Katılım
13 Ekim 2004
Mesajlar
16,057
Excel Vers. ve Dili
Excel 2010-32 bit-Türkçe
Excel 365 -32 bit-Türkçe
Microsoft tabiiki, böyle bir özelliği sanıyorum Necdet bey daha önce açıklamıştı.
 

Levent Menteşoğlu

Administrator
Yönetici
Admin
Katılım
13 Ekim 2004
Mesajlar
16,057
Excel Vers. ve Dili
Excel 2010-32 bit-Türkçe
Excel 365 -32 bit-Türkçe
Bunlar ilgili alanlara yapılan ad tanımlamalarıdır. Örneğin boş bir sayfada bir alana ad tanımlayın ve sonrasında da sayfa görünümünü % 25 yapın, tanımladığınız adın sayfada göründüğünü göreceksiniz.
 
Katılım
3 Haziran 2005
Mesajlar
371
Merhaba,
Peki kayıtları aldıktan sonra C:\text içindeki dosyayı sildirebilirmiyiz ?
 

Levent Menteşoğlu

Administrator
Yönetici
Admin
Katılım
13 Ekim 2004
Mesajlar
16,057
Excel Vers. ve Dili
Excel 2010-32 bit-Türkçe
Excel 365 -32 bit-Türkçe
Kodu aşağıdaki ile değiştirin. Mavi renkli satır eklenmiştir.

Kod:
Sub verial()
Application.ScreenUpdating = False
[b:c].ClearContents
Set s1 = Sheets("sayfa2")
For Each dosya In CreateObject("Scripting.FileSystemObject").GetFolder("C:\text").Files
s1.QueryTables.Add(Connection:="TEXT;C:\text\" & dosya.Name, Destination:=s1.[a1]).Refresh
For a = 1 To [a65536].End(3).Row
Cells(a, "b") = Cells(a, "b") + s1.Cells(a, "b")
Cells(a, "c") = Cells(a, "c") + s1.Cells(a, "c")
Next
s1.Cells.ClearContents
[B][COLOR=blue]Kill "C:\text\" & dosya.Name[/COLOR][/B]
Next
Application.ScreenUpdating = True
MsgBox "İşlem tamamlanmıştır."
End Sub
 
Katılım
3 Haziran 2005
Mesajlar
371
merhaba,
Kill "C:\text\" & dosya.Name
ok sorunsuz çalışıyor
peki bu yolda dosya yoksa "bilgi yok" uyarısınıda verebilir miyiz?
 
Katılım
3 Haziran 2005
Mesajlar
371
konuyu tekrar hatırlatsam....
dosya silindikten sonra hataveriyor da...
 
Üst