• DİKKAT

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

Txt veri alma

Katılım
23 Nisan 2005
Mesajlar
34
Excel Vers. ve Dili
Office 2010-2016
merhaba,
ekli dosyada C nin altındaki txtden veri alan bir makro var. Veri alınacak txt dosyası değiştiği zaman her seferinde kod sayfasındaki dosya ismini değiştirmem gerikeriyor. Çalışma sayfasındaki herhagi bir hücreye aktarılacak dosyanın ismi yazıp aktar butonuna bastığımda veriler aktarılabilir mi?
 

Ekli dosyalar

Dosyanız ektedir.:cool:
Kod:
Sub VeriAl()
Dim Satir As Long
Range("A:A").ClearContents
ChDir ("C:\")
dosya = Application.GetOpenFilename(FileFilter:="Txt dosyaları(*.txt),(*txt)", Title:="Txt Dosyası aç")
If dosya = False Then Exit Sub
Open dosya For Input As #1
Do While Not EOF(1)
    Input #1, Kayit
    If Kayit <> Empty Then
        Satir = Satir + 1
        Cells(Satir, "A") = Kayit
    End If
Loop
Close #1
End Sub
 

Ekli dosyalar

harika olmuş teşekkürler

harika olmuş teşekkürler
 
veri alma (sabit bir hücreyi baz alarak)

herkese günaydın, evrenbey, sabit hücre alarak (A1) gibi dışardan o hücreyi baz alarak verileri ekleyemezmiyiz. Örneğin dışarıdan (.txt dosyasından) 15 sutun ve 220 satır lı veri dosyamız var elimizde,bunu veri dosyasındaki ilk elemanı a(1,1) A1 hücresine atamaya başlayıp taki veri sonlanıncaya kadar bu işlemi yapsın,ama veri içerisindeki sutun ve satır sayısını istemesin bizden yaani a1 hücresini baz alıp ,dosya içerisindeki verileri excel olduğu gibi yerleştir.... kolay gesin....
 
herkese günaydın, evrenbey, sabit hücre alarak (A1) gibi dışardan o hücreyi baz alarak verileri ekleyemezmiyiz. Örneğin dışarıdan (.txt dosyasından) 15 sutun ve 220 satır lı veri dosyamız var elimizde,bunu veri dosyasındaki ilk elemanı a(1,1) A1 hücresine atamaya başlayıp taki veri sonlanıncaya kadar bu işlemi yapsın,ama veri içerisindeki sutun ve satır sayısını istemesin bizden yaani a1 hücresini baz alıp ,dosya içerisindeki verileri excel olduğu gibi yerleştir.... kolay gesin....
Örnek txt dosyanızı ve excel dosyanızı gönderiniz.:cool:
 
veri alma (sabit bir hücreyi baz alarak)

evren bey dosyayı ekledim ...
 

Ekli dosyalar

Dosyanız ektedir.:cool:
Kod:
Sub txt_veri_al()
Dim i As Long, deg As String, sat As Long, deg2, k As Byte, dosya
Range("A1:N65536").Clear
ChDir (ThisWorkbook.Path)
dosya = Application.GetOpenFilename(filefilter:="Metin dosyaları(*.txt),(*.txt)", Title:="Bir metin dosyası seçiniz.")
If dosya = False Then Exit Sub
Sheets("Sayfa1").Select
Application.ScreenUpdating = False
Open (dosya) For Input As #1
Do While Not EOF(1)
    Line Input #1, deg
    sat = sat + 1
    deg2 = Split(deg, vbTab)
    k = 0
    For i = 0 To UBound(deg2)
        k = k + 1
        Cells(sat, k).Value = deg2(i)
    Next i
Loop
Close #1
Application.ScreenUpdating = True
MsgBox "veri.txt dosyasından veriler alınmıştır." & vbLf & _
"evrengizlen@hotmail.com", vbOKOnly + vbInformation, "E V R E N"
    

End Sub
 

Ekli dosyalar

evren bey galiba ben olayı yanlış aktardım size,,,dışarıdan herhangibir .txt uzantılı dosyasını alacak yani yukarıdaki arkadaşa yapmış olduğunuz çalışma gibi.....ben gidip herhangibir klasörün altından dosyayı seçeyim... ilgilendiğiniz için çok teşekkür edrim....
 
evren bey galiba ben olayı yanlış aktardım size,,,dışarıdan herhangibir .txt uzantılı dosyasını alacak yani yukarıdaki arkadaşa yapmış olduğunuz çalışma gibi.....ben gidip herhangibir klasörün altından dosyayı seçeyim... ilgilendiğiniz için çok teşekkür edrim....
Dosyayı düzenledim.9 numaralı mesajdan indirebilirsiniz.
Verilere sütunlara ayırabilmesi için txt dosyasında verilerin bir satır içinde sekme (Tab) ile ayrılmış olması lazım.
 
Dosyanız ektedir.:cool:
Kod:
Sub txt_veri_al()
Dim i As Long, deg As String, sat As Long, deg2, k As Byte, dosya
Range("A1:N65536").Clear
ChDir (ThisWorkbook.Path)
dosya = Application.GetOpenFilename(filefilter:="Metin dosyaları(*.txt),(*.txt)", Title:="Bir metin dosyası seçiniz.")
If dosya = False Then Exit Sub
Sheets("Sayfa1").Select
Application.ScreenUpdating = False
Open (dosya) For Input As #1
Do While Not EOF(1)
    Line Input #1, deg
    sat = sat + 1
    deg2 = Split(deg, vbTab)
    k = 0
    For i = 0 To UBound(deg2)
        k = k + 1
        Cells(sat, k).Value = deg2(i)
    Next i
Loop
Close #1
Application.ScreenUpdating = True
MsgBox "veri.txt dosyasından veriler alınmıştır." & vbLf & _
"evrengizlen@hotmail.com", vbOKOnly + vbInformation, "E V R E N"
    

End Sub

Evren Bey elinize sağlık.

Bu kodu belli bir klasördeki tüm txt dosyalarından veri alacak şekilde düzenlemek mümkün mü?

Tamamiyle aynı olan dosyaların 1. satırlarında başlıklar var. Dosyalardan birinden başlayarak veri alsın. 1. dosyayı bitirdikten sonra diğer dosyalara başlasın, verileri bir önceki dosyanın verilerinden sonraki boş satırdan başlayarak (başlık satırını atlayarak) kopyalasın.

Olabilir mi?

Bir husus ta rakamların excel'de görüntüsü ile ilgili. yukarıdaki makronuzu çalıştırdığımda metin olarak geliyor. "." ve "," den kaynaklanıyor.

excel import data da aşağıdaki gibi bir kod çıkıyor ve bu sorunu çözüyor. bunu sizin koda nasıl uyarlarız. bu kod dosya ismi seçtirerek veri aktarıyor.

Sub txt_veri_al()

Dim fname As String
fname = Application.GetOpenFilename
With ActiveSheet.QueryTables.Add(Connection:= _
"TEXT;" & fname, Destination:=Range("A1"))
.FieldNames = True
.RowNumbers = False
.FillAdjacentFormulas = False
.PreserveFormatting = True
.RefreshOnFileOpen = False
.RefreshStyle = xlInsertDeleteCells
.SavePassword = False
.SaveData = True
.AdjustColumnWidth = True
.RefreshPeriod = 0
.TextFilePromptOnRefresh = False
.TextFilePlatform = 1254 'windows Türkçe seçmesi için
.TextFileStartRow = 1
.TextFileParseType = xlDelimited
.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, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1)
.TextFileTrailingMinusNumbers = True
.Refresh BackgroundQuery:=False
End With

End Sub
 
Evren Bey elinize sağlık.

Bu kodu belli bir klasördeki tüm txt dosyalarından veri alacak şekilde düzenlemek mümkün mü?

Tamamiyle aynı olan dosyaların 1. satırlarında başlıklar var. Dosyalardan birinden başlayarak veri alsın. 1. dosyayı bitirdikten sonra diğer dosyalara başlasın, verileri bir önceki dosyanın verilerinden sonraki boş satırdan başlayarak (başlık satırını atlayarak) kopyalasın.

Olabilir mi?

Bir husus ta rakamların excel'de görüntüsü ile ilgili. yukarıdaki makronuzu çalıştırdığımda metin olarak geliyor. "." ve "," den kaynaklanıyor.

excel import data da aşağıdaki gibi bir kod çıkıyor ve bu sorunu çözüyor. bunu sizin koda nasıl uyarlarız. bu kod dosya ismi seçtirerek veri aktarıyor.
Dosyanız ektedir.Girdiğiniz klasördeki tüm txt dosyalarını birer boşluk birakara k listeliyor.
 

Ekli dosyalar

teşekkürler. emeğinize sağlık.
 
merhaba sayın üstadlar,

bu konudaki benim sorum şu şekilde, benim içerisinde yaklaşık 300 bin satır veri bulunan txt dosyalarım var, bu dosyadan excele yukarıdaki kod yardımıyla veri alabiliyorum ancak istediğim gibi olmuyor,

hem kayıtların 65536 dan fazlasını diğer sheete aktaracak hemde txt den excele aktarım yaparken txt içerisinde ctrl+c yapıp, excelde ctrl+v yapar gibi, txt den kopyalanan verileri excelde hücrelere bölerek aktaracak,(yukarıdaki kod her satırı tek hücreye atıyor,metin gibi)

bu işlemi yapacak bir yol bulabilirmiyiz,

yardımlarınız için teşekkürler,
 
merhaba sayın üstadlar,

bu konudaki benim sorum şu şekilde, benim içerisinde yaklaşık 300 bin satır veri bulunan txt dosyalarım var, bu dosyadan excele yukarıdaki kod yardımıyla veri alabiliyorum ancak istediğim gibi olmuyor,

hem kayıtların 65536 dan fazlasını diğer sheete aktaracak hemde txt den excele aktarım yaparken txt içerisinde ctrl+c yapıp, excelde ctrl+v yapar gibi, txt den kopyalanan verileri excelde hücrelere bölerek aktaracak,(yukarıdaki kod her satırı tek hücreye atıyor,metin gibi)

bu işlemi yapacak bir yol bulabilirmiyiz,

yardımlarınız için teşekkürler,

Örnek dosya eklerseniz çözüme daha hızlı ulaşabilirsiniz.
 
Merhabalar.

Öncelikle verdiğiniz bu destek ve emek için size teşekkür ederim. Burada yapmış olduğunuz gerçekten taktire değer bir iş.

Mesajları ve örnek kodları inceledim fakat kendime uyarlamakta zorluk çekiyorum.

Benim istediğim; bir klasör içindeki veri dosyalarından her iki satırda bir (1.satır, 3. satır ....) her 2. ";" den sonra gelen değeri (2. ";" ve 3. ";" arasındaki değeri) ve her 4. ";" den sonraki değeri (4. ";" ve 5. ";" arasındaki değeri) okuması. Birde bu değerlerde bazen ilk karakter boşluk oluyor. Boşluk olduğunda veriyi excel e atarken boşluğu silebilirse çok güzel olur.

Bu veriyi excel de aynı satırda peşpeşe iki sütuna yazması. Yani txt deki 1. satırı excelde 1. satıra. txt deki 3. satırı excelde 2. satıra gibi.

txt dosyalarının adları tarih adı oluyor. "01.04.txt" gibi.

Ek olarak örnek bir veri dosyasını ekliyorum.

Saygılarımla.

Edit: Veri dosyaları bir klasör içerisinde o ayın günleri kadar olacaktır. Misal olarak mart ayını alacak olursak; 01.03.txt , 02.03.txt .... 31.03.txt. Benim seçeceğim dizin içindeki tüm txt dosyalarını excel e aktarsa da olur. illa isim olarak almasına gerek yok. Çünkü veri klasöründe sadece ihtiyaç duyulan veri olacak.
 

Ekli dosyalar

Son düzenleme:
Benim de *.txt veri alma ile alakalı sorum olacaktı.
*.txt dosyasını butun ile a sütuna çağırıdık ve veriler A1'den başlayıp aşağı doğru devam ediyor.
Biz bu veriyi A23 veya başka bir hücreden başlatıp devam ettirebilirmiyiz. Yalnız A1:A23 arasındaki veriler silinmeyecek. A24'den aşağı devam edecek.
 
Benim de *.txt veri alma ile alakalı sorum olacaktı.
*.txt dosyasını butun ile a sütuna çağırıdık ve veriler A1'den başlayıp aşağı doğru devam ediyor.
Biz bu veriyi A23 veya başka bir hücreden başlatıp devam ettirebilirmiyiz. Yalnız A1:A23 arasındaki veriler silinmeyecek. A24'den aşağı devam edecek.
Edebiliriz.
Kodunuzu görelim.:cool:
 
Geri
Üst