• DİKKAT

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

txt den veri çekme yardım

Katılım
7 Ocak 2007
Mesajlar
112
Excel Vers. ve Dili
6.1
Arkadaşlar aşağıdaki kod yardımyla TXT dosyalarından veri çekebiliyorum ama bazı veriler arasında boşluk oluşuyor çekilen karakterler arası boşluk olmaması için kodu nasıl düzeltebiliriz?
Sub veri_al()
Cells.ClearContents
Range("A1").Select
b = Application.GetOpenFilename
If b = False Then
Exit Sub
End If
i = 1
Open Dir(b) For Input As #1
Do While Not EOF(1)
Line Input #1, a
Cells(i, 1).Value = WorksheetFunction.Trim(WorksheetFunction.Substitute(Mid(a, 1, 30), Chr$(9), ""))


i = i + 1
Loop
Close
End Sub
 
Cells(i, 1).Value = WorksheetFunction.Trim(WorksheetFunction.Substitut e(Mid(a, 1, 30), Chr$(9), ""))

satırda hata var kontrol ediniz
 
hocam zaten hatayı göremediğim için soruyorum :) nasıl bir hata var sizin görebildiğiniz? Orada Txt de ki 1 ile 30. sütundaki karekterleri A1 hücresinde yanyana almak için olduğunu sanıyorum. ama alınan karakterlerin bazıları arasında boşluklar oluşuyor. Örneğin TXT de satır1 de 1 2 3 4 3 1 4 gibi rakamlar var aralarında boşluk olan. ben bu rakamları TXT den çekerek Excelde A1 hücresinde 1234314 şeklinde yanyana gelmiş bir sayı oluşmasını istiyorum. Ama A1 hücresine çekilen rakamların arasında boşluklar oluşuyor 1 2 3 4 3 1 4 şeklinde.
 
Sanırım kimse bu soruna çözüm üretemiyor kaç gün oldu kimseden ses yok...
 
Sanırım kimse bu soruna çözüm üretemiyor kaç gün oldu kimseden ses yok...

Evet kimse anlamadığı sorularda bir yorum yapmaz bana kalırsa konu ile ilgili bir adet text dosyası ve verilerinizi nasıl almak istediğinize dair örnek excel dasyasını ekleseydiniz sorunuza bakan kişiler belki bir çözüm üretirlerdi.
 
Kod:
Sub veri_al_bosluksuz_olsun()
Cells.ClearContents
Range("A1").Select
b = Application.GetOpenFilename
If b = False Then
Exit Sub
End If
i = 1
Open Dir(b) For Input As #1
Do While Not EOF(1)
Line Input #1, a
Cells(i, 1).Value = WorksheetFunction.Trim(WorksheetFunction.Substitute(Mid(a, 1, 30), Chr$(9), ""))
Columns("A:A").Select
Selection.Replace What:=" ", Replacement:="", LookAt:=xlPart, _
SearchOrder:=xlByRows, MatchCase:=False, SearchFormat:=False, _
ReplaceFormat:=False
i = i + 1
Loop
Close
End Sub
 
Son düzenleme:
Kod:
Sub uzun_veri_al_bosluksuz_olsun()
Cells.ClearContents
Range("A1").Select
b = Application.GetOpenFilename
If b = False Then
Exit Sub
End If
i = 1
Open Dir(b) For Input As #1
Do While Not EOF(1)
Line Input #1, a
'Rows("1:1").Clear
Cells(i, 1).Value = a
kolon = Split(Cells(1, 1).Value, " ")
For x = 0 To UBound(kolon)
Cells(1, x + 2).Value = kolon(x)
Next

     i = i + 1

Loop
Columns("A:A").Select
Selection.Replace What:=" ", Replacement:="", LookAt:=xlPart, _
SearchOrder:=xlByRows, MatchCase:=False, SearchFormat:=False, _
ReplaceFormat:=False
Close
End Sub

başka bir seçenek uzun txt dosyalarından hızlı ve boşluksuz a stununa sıralar 1 2 3 4 > 1234 yapar
 
hocam haklısınız ben örnek bir txt yükledim sizin kodlarınızıda inceledim. Fakat örnek txt de de görebileceğiniz gibi iki ayrı sütuna bilgileri çekmek gerekiyor. A sütunu txt için 1 den 39. karakter dahil B sütununa txt den 40 dan 60. karaktere kadar veriler çekilmesi gerekiyor. bakabilirseniz sevinirim
 

Ekli dosyalar

veri sekmesinden ; metinden bölümüne gelin ;txt dosyasını oldugu gibi excele atın atarken hücrelere satıra ;böl seçeneklerinden işiize yarayanı seçin
 
hocam dediğiniz kısımları bulamadım bende ki excel 2003 .... Hocam 7. mesajda ki kod örneğini A sütunu için TXTnin 1 ile 39. sutunlarını B sütununa da TXT nin 40 ile 60. sütunları çekmek mümkün değil mi?
 
hocam sorun çözüldü 7 nolu mesajdaki aşağıdaki gibi değiştirdim. Herşey için teşekkürler...


Sub veri_al_bosluksuz_olsun()
Cells.ClearContents
Range("A1").Select
b = Application.GetOpenFilename
If b = False Then
Exit Sub
End If
i = 1
Open Dir(b) For Input As #1
Do While Not EOF(1)
Line Input #1, a
Cells(i, 1).Value = WorksheetFunction.Trim(WorksheetFunction.Substitute(Mid(a, 1, 38), Chr$(9), ""))
Cells(i, 2).Value = WorksheetFunction.Trim(WorksheetFunction.Substitute(Mid(a, 40, 60), Chr$(9), ""))
Columns("A:B").Select
Selection.Replace What:=" ", Replacement:="", LookAt:=xlPart, _
SearchOrder:=xlByRows, MatchCase:=False, SearchFormat:=False, _
ReplaceFormat:=False
i = i + 1
Loop
Close
End Sub
 
Geri
Üst