• DİKKAT

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

Txt dosyadan düşey ara ile satır süzme

  • Konbuyu başlatan Konbuyu başlatan sonkurt
  • Başlangıç tarihi Başlangıç tarihi
Katılım
5 Aralık 2005
Mesajlar
34
Excel Vers. ve Dili
2010 Türkçe
Merhaba

TXT formatında bir dosyam var.
içindeki veriler şu şekilde.
*149;3.84;25.0; ;
*300;90.927;0.0; ;
*108;1.466365;0.0; ;
*301;124.392;0.0; ;
*189;1.36823;0.0; ;
*225;1119.145;0.0; ;
*138;3.28;25000.0;10:38:24 ;
*573;3.24;2500.0;10:38:24 ;
*138;3.28;13568.0;10:38:24 ;
*149;3.84;25.0;10:38:24 ;
*115;10.75;20.0;10:38:24 ;
*237;186.0;0.0;10:38:24 ;
*492;1.86;0.0;10:38:24 ;

Yani
hissekodu ; fiyatı; işlemhacmi ; işlemsaati

hisseveri.xls sayfamın a1 hücresindeki değere bakıp, TXT dosyasında bunları karşılayan satırları süzerek gene hisseveri.xls sayfasının A2 hücresinden
itibaren aşağıya doğru kopyalayacak. Bunların aynısını c1 hücresi içinde yapacak. Kopyalanacak sütunlar sadece fiyat sütununa fiyatlar ve işlem saati sütununa saat verileri olacak. TXT dosyası çok büyük, Bu yüzden bütün veriyi excel sayfasına alıp düşey ara yapamıyorum.
ancak benim ekleyeceğim dosya kismi olacak.
Bütün forumlara baktım bana uygun bir örnek bulamadım. Bu konuda yardımlarınızı rica ediyorum.
 

Ekli dosyalar

Son düzenleme:
Selamlar,

Aşağıdaki kodu denermisiniz. Eğer listelenecek veri sayısı 65536 değerinden fazla ise kod hata verecektir. Kodu düzenlemek gerekecektir.

Kod:
Option Explicit
 
Sub TXT_VERİ_AL()
    Dim Dosya As String, Veri As String
    Dim Satır1 As Long, Satır2 As Long
    
    Dosya = ThisWorkbook.Path & "\tick.txt"
    Satır1 = 3
    Satır2 = 3
    
    Open (Dosya) For Input As #1
        Do While Not EOF(1)
        Line Input #1, Veri
            If Range("A1") = Split(Veri, ";")(0) Then
                Cells(Satır1, 1) = Split(Veri, ";")(0)
                Cells(Satır1, 2) = Split(Veri, ";")(3)
                Satır1 = Satır1 + 1
            ElseIf Range("C1") = Split(Veri, ";")(0) Then
                Cells(Satır2, 3) = Split(Veri, ";")(0)
                Cells(Satır2, 4) = Split(Veri, ";")(3)
                Satır2 = Satır2 + 1
            End If
        Loop
    Close #1
    
    MsgBox "İşleminiz tamamlanmıştır.", vbInformation
End Sub
 
Merhaba
Çok güzel olmuş, Çok teşekkür ederim.
Sadece
Cells(Satır1, 1) = Split(Veri, ";")(0)
Cells(Satır2, 3) = Split(Veri, ";")(0)
satırlarının sonundaki (0)'ları (1) yaptım.
Kaç gündür bununla uğraşıyordum. Tekrar tekrar teşekkür ederim. Projenin devamıda gelecek, ama önce excel sayfamı hazırlamam lazım.
 
zaman kriterlerine göre yüksek,düşük ve son veriyi bulma

Merhaba

Sn: Korhan AYHAN sayesinde txt dosyasından verileri excel sayfasına taşıdık. Şimdi taşıdığımız verilerde her yarım saatte bir
en yüksek, en düşük ve son değeri bulmam lazım. Ancak burayı nasıl yapacağım konusunda tereddütlerim var.
B:B sütununda işlem saatleri var. A:A sütununda fiyatlar. Verilen kritere göre B:B sütünü taranarak A:A sütunundan en yüksek fiyatı
DOHOL sayfasında yüksek başlığının altına yazacak. Daha sonra gene aynı zaman kriterine göre en düşük fiyatı DOHOL sayfasında
düşük başlığının altına yazacak. Daha sonra aynı zaman kriterleri için son veriyi kapanış başlığı altına yazacak. Bunların aynısı HALKB
sayfası içinde yapılacak , ancak bu sefer HALKB nin verilerinin olduğu D:D ve C:C sütunları kullanılacak.
Zaman Kriterleri Şu şekilde:
saat 10:00 da çalışacak makro 09:30 ile 10:00 arası verileri tarayacak,
saat 10:30 da çalışacak makro 10:00 ile 10:30 arası verileri tarayacak,
saat 11:00 da çalışacak makro 10:30 ile 11:00 arası verileri tarayacak,
saat 11:30 da çalışacak makro 11:00 ile 11:30 arası verileri tarayacak,
saat 12:00 da çalışacak makro 11:30 ile 12:00 arası verileri tarayacak,
saat 14:30 da çalışacak makro 14:00 ile 14:30 arası verileri tarayacak,
saat 15:00 da çalışacak makro 14:30 ile 15:00 arası verileri tarayacak,
saat 15:30 da çalışacak makro 15:00 ile 15:30 arası verileri tarayacak,
saat 16:00 da çalışacak makro 15:30 ile 16:00 arası verileri tarayacak,
saat 16:30 da çalışacak makro 16:00 ile 16:30 arası verileri tarayacak,
saat 17:00 da çalışacak makro 16:30 ile 17:00 arası verileri tarayacak,
saat 17:35 da çalışacak makro 17:00 ile 17:35 arası verileri tarayacak,
 

Ekli dosyalar

Geri
Üst