İstenen Formattaki Txt dosyasından veri alma

Katılım
6 Aralık 2007
Mesajlar
135
Excel Vers. ve Dili
Office 2003
Öncelikle şunu belirteyim yaklaşık 3 gündür txt dosyası ile ilgili forumları inceliyorum. Yani araştırdım yapamadım son çare sizlerden yardım istiyorum.

Arkadaşlar ekte bir excel birde txt dosyası var. Sizlerden isteğin aşağıdaki kriterlere göre txt dosyasından excelin 83.satırına istenen yerlere verileri aktarması. Yalnız txt dosyasında veriler yanyana değil alt alta kaydedilmiş. Txt dosyası toplam 5 satır. Forumda txt dosyasından veri alma ile ilgili 30 a yakın dosya inceledim. Ama bir türlü kendime uyarlayamadım. Lütfen bu konuda da yardımlarınızı bekliyorum.Tşk.

Dikkat Edilmesi gerekenler
* Txt dosyasının adı standart yolluk.txt olacak. Yani dosya seçilmeyecek.
* Excelde sadece bir satıra veri alacak (83.satır)
* Yolluk.txt dosyası J6 hücresinde belirtilen dizinde yer alacak
* Eğer txt dosyası istenen yerde yoksa J6 hücresine (Örnek) "C:\GOREV\YOLLUK\ dizinine istenen kriterlere göre yolluk.txt dosyasını oluşturunuz" diye uyarı verecek
* Kriterlere uygun bir txt dosyası varsa ve aktarım tamamlandı ise "Aktarım tamamlandı" gibi bir uyarı verecek

ÖRNEK TXT DOSYASI TOPLAM 5 SATIR
ALİ
KARA
15851495145
9224562288
KALE CADDESİ NO:25/2 ULUDAĞ BURSA
 
Son düzenleme:

Orion1

Uzman
Uzman
Katılım
1 Mart 2005
Mesajlar
22,254
Excel Vers. ve Dili
Win7 Home Basic TR 64 Bit

Ofis-2010-TR 32 Bit
Dosyanız ekte.:cool:
Kod:
Option Base 1
Sub txt_aktar()
Dim sat As Long, sut As Byte, a As Variant
If Dir([J6] & "YOLLUK.txt") = "" Then
    MsgBox "[ " & [J6] & " ] dizinine istenen kriterlere göre yolluk.txt dosyası oluşturulde", vbCritical, "UYARI"
    Open [J6] & "YOLLUK.txt" For Append As #1
    Close #1
    Exit Sub
End If
sutun = Array(10, 18, 28, 36, 43)
sat = 83: sut = 1
Open [J6] & "YOLLUK.txt" For Input As #1
    Do While Not EOF(1)
        Input #1, a
        If sut > 5 Then sut = 1: sat = sat + 1
        Cells(sat, CInt(sutun(sut))).Value = a
        sut = sut + 1
    Loop
Close #1
MsgBox "Txt Dosyasından veriler aktarıldı..!!", vbOKOnly + vbInformation, Application.UserName
End Sub
 
Son düzenleme:
Katılım
6 Aralık 2007
Mesajlar
135
Excel Vers. ve Dili
Office 2003
Üstad eline sağlık. Ufak bir yer hariç gerisi tamam. Sanırım dosya yoksa uyarı vermesi konusunda yalnış anlaşıldım. Eğer dosya yoksa mesaj versin fakat j6 hücresine yazmasın MsgBox şeklinde "C:\GOREV\YOLLUK\ dizinine istenen kriterlere göre yolluk.txt dosyasını oluşturunuz" diye uyarı vermesi gerekliydi Ben o satırı aşağıdaki şekilde düzelttim. Eğer yalnışsa gerekli düzeltmeleri yaparsanız sevinirim.
MsgBox [J6] & " Klasörüne Başarı Yolluk Txt Dosyası Oluşturunuz", vbInformation, "Dikkat"
Son olarak J6 hücresinde yazan yer standart olmayabilir. Yani uyarı verirlen ve kodlamanın gerekli yerlerinde sanırım [J6] işaretini kullanmak gerekli. Yani kodlamada c:\YOLLUK vs.. olmasın. Hücre adresi yazsın... Sanırım anladınız... :)
 
Son düzenleme:

Orion1

Uzman
Uzman
Katılım
1 Mart 2005
Mesajlar
22,254
Excel Vers. ve Dili
Win7 Home Basic TR 64 Bit

Ofis-2010-TR 32 Bit
Üstad eline sağlık. Ufak bir yer hariç gerisi tamam. Sanırım dosya yoksa uyarı vermesi konusunda yalnış anlaşıldım. Eğer dosya yoksa mesaj versin fakat j6 hücresine yazmasın MsgBox şeklinde "C:\GOREV\YOLLUK\ dizinine istenen kriterlere göre yolluk.txt dosyasını oluşturunuz" diye uyarı vermesi gerekliydi Ben o satırı aşağıdaki şekilde düzelttim. Eğer yalnışsa gerekli düzeltmeleri yaparsanız sevinirim.
Dosyayı istediğiniz gibi düzenledim.
2 numaralı mesajdan indirebilirsiniz.:cool:
 
Katılım
6 Aralık 2007
Mesajlar
135
Excel Vers. ve Dili
Office 2003
Üstad sanırım derdimi tam anlatamadım. c:\YOLLUK\GOREV\ kelimesi kodlamada olmayacak J6 hücresinde ne yazıyorsa o olacak. birde aynı kodları herşeyiyle aynı olan başka bir dosyada denedim
"Cells(sat, CInt(sutun(sut))).Value = a" satırında Run-time error 9 subscript out of range hatası veriyor...
 

Orion1

Uzman
Uzman
Katılım
1 Mart 2005
Mesajlar
22,254
Excel Vers. ve Dili
Win7 Home Basic TR 64 Bit

Ofis-2010-TR 32 Bit
Üstad sanırım derdimi tam anlatamadım. c:\YOLLUK\GOREV\ kelimesi kodlamada olmayacak J6 hücresinde ne yazıyorsa o olacak. birde aynı kodları herşeyiyle aynı olan başka bir dosyada denedim
"Cells(sat, CInt(sutun(sut))).Value = a" satırında Run-time error 9 subscript out of range hatası veriyor...
Söyledikleriniz sürekli birbirinle çelişiyor.
Şimdi alıntı yapıp çelişen sözcükleriniz alt lata yazıp koyucam siz bile şaşıracaksınız.
Nasıl mesaj istediğiniz tam olarak tasarlayın ve yeterli açıklamalrı yapınız.
Ayrıca hata veren dosyayı yollayın bakalım.Hata vermemesi lazım.:cool:
 
Katılım
6 Aralık 2007
Mesajlar
135
Excel Vers. ve Dili
Office 2003
Sanırım hatanın nedenini buldum fakat çözümü bulamadım. Adı bölümündeki veriyo soyadına soyadındakini tc kimlik numarasına vs.. yazıyor yani adı bölümünü boş geçtiği için en sondaki adres verisini diğer hücreler kilitli olduğu için yazamıyor...

Üstad tamam kızma ..... dediğim hata veren dosyayı ekte gönderiyorum...
 
Son düzenleme:

Orion1

Uzman
Uzman
Katılım
1 Mart 2005
Mesajlar
22,254
Excel Vers. ve Dili
Win7 Home Basic TR 64 Bit

Ofis-2010-TR 32 Bit
Sanırım hatanın nedenini buldum fakat çözümü bulamadım. Adı bölümündeki veriyo soyadına soyadındakini tc kimlik numarasına vs.. yazıyor yani adı bölümünü boş geçtiği için en sondaki adres verisini diğer hücreler kilitli olduğu için yazamıyor...
Sayfa korumalı ve hücrekler kilitili ise hata verecektir.:cool:
 
Katılım
6 Aralık 2007
Mesajlar
135
Excel Vers. ve Dili
Office 2003
Üstad hata veren dosyayı 7.mesaja ekledim.... Bugün niye herkes bana fırça atıyor ya..... :)
 

Orion1

Uzman
Uzman
Katılım
1 Mart 2005
Mesajlar
22,254
Excel Vers. ve Dili
Win7 Home Basic TR 64 Bit

Ofis-2010-TR 32 Bit
Dosyayı güncelledim.
2 numaralı mesajdan dosyayı indirebilirsiniz.
Ayrıca kodu diğer dosyay kopyaladığınızdan eminmisiniz.Eksik kod var ondan hata veriyor.
Prosedürün üstündeki Option Base 1 deyimini kopyalamamışsınız.Onun için dizi sıfırdan başlıyor.Hata veriyor.:cool:
 
Katılım
6 Aralık 2007
Mesajlar
135
Excel Vers. ve Dili
Office 2003
Üstad tam bu sefer kodlama olarak istediğim gibi fakat 2.numaralı mesajdaki dosyada eğer yolluk.txt dosyası yoksa hata veriyor. Yani uyarı mesajı aktif olmuyor....

Sanırım bu sefer hata benden değil :)
 

Orion1

Uzman
Uzman
Katılım
1 Mart 2005
Mesajlar
22,254
Excel Vers. ve Dili
Win7 Home Basic TR 64 Bit

Ofis-2010-TR 32 Bit
Üstad tam bu sefer kodlama olarak istediğim gibi fakat 2.numaralı mesajdaki dosyada eğer yolluk.txt dosyası yoksa hata veriyor. Yani uyarı mesajı aktif olmuyor....

Sanırım bu sefer hata benden değil :)
Bu sefer hata bendeydi.:) :)
Şimdi düzelttim.
2 numaralı mesajdan dosyayı indirebilirsiniz.:cool:
 
Katılım
6 Aralık 2007
Mesajlar
135
Excel Vers. ve Dili
Office 2003
Üstad ya ufacık minicik bir isteğim daha olacak... Daha öncede dediğim gibi dosya ismini seçmeyeceğiz. Yani yolluk.txt standat olacak. Fakat dosyanın oluşması için uyarı verdikten sonra belirlenen dizine boş bir yolluk.txt dosyası oluşturabilirmiyiz....

Birde VBA da ' İşaretini (Shift+2) eklediğimiz satırlar işleme alınmıyor ve yeşil renkli oluyor. Acaba txt dosyalarında da böyle bir kolaylık varmı....
 

Orion1

Uzman
Uzman
Katılım
1 Mart 2005
Mesajlar
22,254
Excel Vers. ve Dili
Win7 Home Basic TR 64 Bit

Ofis-2010-TR 32 Bit
Üstad ya ufacık minicik bir isteğim daha olacak... Daha öncede dediğim gibi dosya ismini seçmeyeceğiz. Yani yolluk.txt standat olacak. Fakat dosyanın oluşması için uyarı verdikten sonra belirlenen dizine boş bir yolluk.txt dosyası oluşturabilirmiyiz....

Birde VBA da ' İşaretini (Shift+2) eklediğimiz satırlar işleme alınmıyor ve yeşil renkli oluyor. Acaba txt dosyalarında da böyle bir kolaylık varmı....
Yani yooluk.txt dosyası yoksa bir tane oluşturulacakmı?
 

Orion1

Uzman
Uzman
Katılım
1 Mart 2005
Mesajlar
22,254
Excel Vers. ve Dili
Win7 Home Basic TR 64 Bit

Ofis-2010-TR 32 Bit
Valla üstad zor olmazsa (ki senin için zor olacağını sanmam) belirlenen dizine bir tane boş yolluk.txt dosyası oluştursun. Birde diğer sorumu cevaplandırırsan memnun olurum...
Dosyayı 2 numaralı mesajda güncelledim.
Diğer sorunuzu anlamadım.
Satırn başında ' (Tırnak)işaretii varsa onlar hücreye akatarılmayacakmı?Bu mümkündür.
 
Katılım
6 Aralık 2007
Mesajlar
135
Excel Vers. ve Dili
Office 2003
Üstad txt dosyalarında herhanbir bir satırın başına tek tırnak işareti koysak ilgili satırı aktarmasa..... Ben denedim ama aktarıyor... Aynıca boş txt dosyasının oluşmasını sağladığınız için tşk..
 

Haluk

𐱅𐰇𐰼𐰚
Katılım
7 Temmuz 2004
Mesajlar
12,324
Excel Vers. ve Dili
64 Bit 2010 - İngilizce
+
Google Sheets
+
JScript
Altın Üyelik Bitiş Tarihi
Kımızı satırları Evren bey'in orjinal koduna monte ediniz....

Kod:
    Do While Not EOF(1)
        Input #1, a
        If sut > 5 Then sut = 1: sat = sat + 1
        [COLOR=Red][B]If Not Left(a, 1) = "'" Then
            Cells(sat, CInt(sutun(sut))).Value = a
        End If[/B][/COLOR]
        sut = sut + 1
    Loop
 
Üst