TXT Dosyası Aktarım hatası!
Merhaba;
Ben yine bu forumda çözüm bulduğum bir işlemi devam ettirmek istiyorum.
Sorunum şu;
bir txt dosyasını(A1 hücresine numara vererek) excel e aktarıyorum. bu txt dosyası her defasında değişiyor! örneğin A1=1.txt, A1=2.txt
bu aktardığım hücrelere bağlantılı formul atıyorum. Ama 2. çağırdıgım dosyada eğer sildirmezsem bir sonraki attığım txt dosyasının satırı az ise bir onceki txt nin artığı kalıyor. Sildirincede bu bağlamış olduğum formülü ikinci dosyayı çağırdığımda #BASV. diye formulu bozuyor. Lütfen yardım edermisiniz.
iyi çalışmalar
Sub TXT_DOSYADAN_EXCELE_VERİ_AKTAR()
For si = 2 To Sheets.Count
Sheets(si).Range("ac1:ag1").Clear
Next
Range("AC:AG").Delete
Dosya = "C:\m\" & [B1] & ".txt"
Open Dosya For Input As #1
Do While Not EOF(1)
Line Input #1, Kayıt
Satır = Satır + 1
Cells(Satır, 29) = Mid(Kayıt, 1, 15)
Cells(Satır, 30) = Mid(Kayıt, 8, 5)
Cells(Satır, 31) = Convert(Mid(Kayıt, 13, 16))
Cells(Satır, 32) = Convert(Mid(Kayıt, 29, 15))
Cells(Satır, 33) = Convert(Mid(Kayıt, 44, 12))
Cells(Satır, 34).NumberFormat = "@"
Cells(Satır, 34) = Mid(Kayıt, 56, 17)
Cells(Satır, 35).NumberFormat = "@"
Cells(Satır, 35) = Mid(Kayıt, 73, 3)
Cells(Satır, 36).NumberFormat = "@"
Cells(Satır, 36) = Mid(Kayıt, 76, 14)
Cells(Satır, 37) = Mid(Kayıt, 90, 2) & "." & Mid(Kayıt, 92, 2) & "." & Mid(Kayıt, 94, 4)
Cells(Satır, 38) = Convert(Mid(Kayıt, 100, 11))
Cells(Satır, 39) = Mid(Kayıt, 111, 9)
Cells(Satır, 40) = Convert(Mid(Kayıt, 120, 29))
Cells(Satır, 41) = Mid(Kayıt, 149, 12)
Loop
Close #1
Cells.EntireColumn.AutoFit
End Sub
Function Convert(Veri As String)
Veri = Replace(Veri, Chr(154), "Ü")
Veri = Replace(Veri, Chr(166), "Ğ")
Veri = Replace(Veri, Chr(158), "Ş")
Veri = Replace(Veri, Chr(128), "Ç")
Veri = Replace(Veri, Chr(153), "Ö")
Veri = Replace(Veri, Chr(152), "İ")
Convert = Replace(Veri, Chr(15), "")
End Function
Merhaba;
Ben yine bu forumda çözüm bulduğum bir işlemi devam ettirmek istiyorum.
Sorunum şu;
bir txt dosyasını(A1 hücresine numara vererek) excel e aktarıyorum. bu txt dosyası her defasında değişiyor! örneğin A1=1.txt, A1=2.txt
bu aktardığım hücrelere bağlantılı formul atıyorum. Ama 2. çağırdıgım dosyada eğer sildirmezsem bir sonraki attığım txt dosyasının satırı az ise bir onceki txt nin artığı kalıyor. Sildirincede bu bağlamış olduğum formülü ikinci dosyayı çağırdığımda #BASV. diye formulu bozuyor. Lütfen yardım edermisiniz.
iyi çalışmalar
Sub TXT_DOSYADAN_EXCELE_VERİ_AKTAR()
For si = 2 To Sheets.Count
Sheets(si).Range("ac1:ag1").Clear
Next
Range("AC:AG").Delete
Dosya = "C:\m\" & [B1] & ".txt"
Open Dosya For Input As #1
Do While Not EOF(1)
Line Input #1, Kayıt
Satır = Satır + 1
Cells(Satır, 29) = Mid(Kayıt, 1, 15)
Cells(Satır, 30) = Mid(Kayıt, 8, 5)
Cells(Satır, 31) = Convert(Mid(Kayıt, 13, 16))
Cells(Satır, 32) = Convert(Mid(Kayıt, 29, 15))
Cells(Satır, 33) = Convert(Mid(Kayıt, 44, 12))
Cells(Satır, 34).NumberFormat = "@"
Cells(Satır, 34) = Mid(Kayıt, 56, 17)
Cells(Satır, 35).NumberFormat = "@"
Cells(Satır, 35) = Mid(Kayıt, 73, 3)
Cells(Satır, 36).NumberFormat = "@"
Cells(Satır, 36) = Mid(Kayıt, 76, 14)
Cells(Satır, 37) = Mid(Kayıt, 90, 2) & "." & Mid(Kayıt, 92, 2) & "." & Mid(Kayıt, 94, 4)
Cells(Satır, 38) = Convert(Mid(Kayıt, 100, 11))
Cells(Satır, 39) = Mid(Kayıt, 111, 9)
Cells(Satır, 40) = Convert(Mid(Kayıt, 120, 29))
Cells(Satır, 41) = Mid(Kayıt, 149, 12)
Loop
Close #1
Cells.EntireColumn.AutoFit
End Sub
Function Convert(Veri As String)
Veri = Replace(Veri, Chr(154), "Ü")
Veri = Replace(Veri, Chr(166), "Ğ")
Veri = Replace(Veri, Chr(158), "Ş")
Veri = Replace(Veri, Chr(128), "Ç")
Veri = Replace(Veri, Chr(153), "Ö")
Veri = Replace(Veri, Chr(152), "İ")
Convert = Replace(Veri, Chr(15), "")
End Function
Son düzenleme: