txt formatını kod yazarak excel aktarma

Katılım
5 Temmuz 2019
Mesajlar
37
Excel Vers. ve Dili
excell 2007
excell 2016
Arkadaşlar merhaba, öncelikle bu makro işlerine yeni başladım ve note ile işlerimi yapmaya çalışıyorum. Şirkette txt formarlı bir dosyayı excelle dökümünde zorluk yaşıyorum.

ekran resminde gördüğünüz gibi txt formatını excele nasıl atabilrim txt dosyasını içine kod yazarak uzun yolunu biliyorum.


https://hizliresim.com/gPVv15 bakabilirsiniz.

https://www.dosya.tc/server20/94p0xy/MATERIAL-PIPE.tmp.html txt formatındaki dosya buraya nasıl bir kod yazmalıyım ki resimdeki gibi bir excell görünümü elde etmeliyim


resim yükleme hatası alıyorum bu yüzden link paylaştım.
 

YUSUF44

Destek Ekibi
Destek Ekibi
Katılım
4 Ocak 2006
Mesajlar
12,073
Excel Vers. ve Dili
İş : Ofis 365 - Türkçe
Ev: Ofis 365 - Türkçe
ikinci paylaştığınız tmp uzantılı dosya ne işe yarıyor anlamadım. Eğer txt dosyasını excele dönüştürmek istiyorsanız excel ile açabilir ya da excelin dış veri al özelliğini (veri menüsünde metinden özelliği ile) kullanabilirsiniz.
 
Katılım
5 Temmuz 2019
Mesajlar
37
Excel Vers. ve Dili
excell 2007
excell 2016
ikinci paylaştığınız tmp uzantılı dosya ne işe yarıyor anlamadım. Eğer txt dosyasını excele dönüştürmek istiyorsanız excel ile açabilir ya da excelin dış veri al özelliğini (veri menüsünde metinden özelliği ile) kullanabilirsiniz.
ikinci tmp uzantılı dosya şirkette kullandığımız bir programda çalışan makro gibi düşübilirsiniz tmp notepad ile açılarak içine ayar yapılabiliyor. Benim istediğim sizinde önerdiğiniz aktarım şeklini ( normal olarak manuel yapabiliyorum ) kod şeklinde nasıl bu notepad içine yazıp çalıştırabileceğimi öğrenmek.

Ya da elinizde bir örnek var ise txt formatlı ( içine kod yazılmış olarak ) bir notepad dosyasını excel veya csv uzantısı yapan işimi görür.

https://s2.dosya.tc/server9/gh7411/pipe.txt.html buradan resimdeki notepad dosyası üzerinde çalışabilirsiniz.
 

Haluk

Özel Üye
Katılım
7 Temmuz 2004
Mesajlar
12,406
Excel Vers. ve Dili
64 Bit 2010 - İngilizce
+
Google Sheets
+
JScript
Altın Üyelik Bitiş Tarihi
Text dosyanızda veriler belli bir delimeter (ayraç) ile birbirinden ayrılmış olsaydı, o zaman çeşitli alternatif kodlar yazılabilirdi.

Ancak, örnek olarak eklediğiniz pipe.txt dosyasındaki veriler gördüğüm kadarıyla sadece alan uzunlularına göre ayrılmış. Bu durumda, yukarıda Yusuf Beyin bahsettiği gibi Excel'in Data (Veri) menüsü altındaki seçenekleri kullanarak Excel'e aktarabilirsiniz. Bu işi yaparken "makro kaydet" yönetmini de kullanırsanız, ilgili kodları da elde edersiniz, ama sadece aynı şekilde ayrıştırılmış bir text belgesinde tekrar kullanabilirsiniz.

Yapılacak işlem aşağıdaki animasyonda belirtilmiştir...


.
 
Son düzenleme:
Katılım
5 Temmuz 2019
Mesajlar
37
Excel Vers. ve Dili
excell 2007
excell 2016
Text dosyanızda veriler belli bir delimeter (ayraç) ile birbirinden ayrılmış olsaydı, o zaman çeşitli alternatif kodlar yazılabilirdi.

Ancak, örnek olarak eklediğiniz pipe.txt dosyasındaki veriler gördüğüm kadarıyla sadece alan uzunlularına göre ayrılmış. Bu durumda, yukarıda Yusuf Beyin bahsettiği gibi Excel'in Data (Veri) menüsü altındaki seçenekleri kullanarak Excel'e aktarabilirsiniz. Bu işi yaparken "makro kaydet" yönetmini de kullanırsanız, ilgili kodları da elde edersiniz, ama sadece aynı şekilde ayrıştırılmış bir text belgesinde tekrar kullanabilirsiniz.

Yapılacak işlem aşağıdaki animasyonda belirtilmiştir...


.
teşekkürler. evet bu yapılıyor. Ancak istediğim kodu bir txt dosyasının bu hale gelmesi .
https://s4.dosya.tc/server6/u4zpzg/pipe.txt.html
aynı zamanda pipe.txt dosyasını , ayrılmış halinide koyuyorum . Nasıl kodlar yazılır onu öğrenmek istiyorum txt dosyasının içine.
 

Haluk

Özel Üye
Katılım
7 Temmuz 2004
Mesajlar
12,406
Excel Vers. ve Dili
64 Bit 2010 - İngilizce
+
Google Sheets
+
JScript
Altın Üyelik Bitiş Tarihi
Hazırlanacak kodlar text dosyasına değil, verilerin alınacağı Excel dosyasına yazılır.

En son eklediğiniz ve içindeki verileri virgülle ayrıştırılmış text dosyasını Excel'e aktarmak için yukarıdaki animasyonda belirttiğim yöntemi kullanabilirsiniz.

Tek farkı olacak, o da; ilk ekranda "Fixed width" değil, "Delimited" seçeceksiniz, sonraki ekranda ayraç olarak "virgül" işaretleyeceksiniz. Ekranları onaylayarak kapattığınızda tüm veriler Excel'e aktarılmış olacak. Bunu yaparken "makro kaydet" yöntemini de kullanırsanız, gereki kodları da kendiniz üretmiş olursunuz.

Bu yöntemle benim elde ettiğim kodlar aşağıdadır. Siz text dosyasının yolunu, aşağıdaki kırmızı ile belirttiğim yerde kendinize göre ayarlayabilirsiniz...

Rich (BB code):
Sub Macro1()
'
' Macro1 Macro
'

'
    With ActiveSheet.QueryTables.Add(Connection:= _
        "TEXT;C:\Users\Haluk\Desktop\pipe.txt", Destination:=Range("$A$1"))
        .Name = "pipe"
        .FieldNames = True
        .RowNumbers = False
        .FillAdjacentFormulas = False
        .PreserveFormatting = True
        .RefreshOnFileOpen = False
        .RefreshStyle = xlInsertDeleteCells
        .SavePassword = False
        .SaveData = True
        .AdjustColumnWidth = True
        .RefreshPeriod = 0
        .TextFilePromptOnRefresh = False
        .TextFilePlatform = 65001
        .TextFileStartRow = 1
        .TextFileParseType = xlDelimited
        .TextFileTextQualifier = xlTextQualifierDoubleQuote
        .TextFileConsecutiveDelimiter = False
        .TextFileTabDelimiter = False
        .TextFileSemicolonDelimiter = False
        .TextFileCommaDelimiter = True
        .TextFileSpaceDelimiter = False
        .TextFileColumnDataTypes = Array(1, 1, 1, 1, 1, 1, 1, 1)
        .TextFileDecimalSeparator = "."
        .TextFileThousandsSeparator = ","
        .TextFileTrailingMinusNumbers = True
        .Refresh BackgroundQuery:=False
    End With
End Sub

.
 
Son düzenleme:
Katılım
5 Temmuz 2019
Mesajlar
37
Excel Vers. ve Dili
excell 2007
excell 2016
Hazırlanacak kodlar text dosyasına değil, verilerin alınacağı Excel dosyasına yazılır.

En son eklediğiniz ve içindeki verileri virgülle ayrıştırılmış text dosyasını Excel'e aktarmak için yukarıdaki animasyonda belirttiğim yöntemi kullanabilirsiniz.

Tek farkı olacak, o da; ilk ekranda "Fixed width" değil, "Delimited" seçeceksiniz, sonraki ekranda ayraç olarak "virgül" işaretleyeceksiniz. Ekranları onaylayarak kapattığınızda tüm veriler Excel'e aktarılmış olacak. Bunu yaparken "makro kaydet" yöntemini de kullanırsanız, gereki kodları da kendiniz üretmiş olursunuz.

Bu yöntemle benim elde ettiğim kodlar aşağıdadır. Siz text dosyasının yolunu, aşağıdaki kırmızı ile belirttiğim yerde kendinize göre ayarlayabilirsiniz...

Rich (BB code):
Sub Macro1()
'
' Macro1 Macro
'

'
    With ActiveSheet.QueryTables.Add(Connection:= _
        "TEXT;C:\Users\Haluk\Desktop\pipe.txt", Destination:=Range("$A$1"))
        .Name = "pipe"
        .FieldNames = True
        .RowNumbers = False
        .FillAdjacentFormulas = False
        .PreserveFormatting = True
        .RefreshOnFileOpen = False
        .RefreshStyle = xlInsertDeleteCells
        .SavePassword = False
        .SaveData = True
        .AdjustColumnWidth = True
        .RefreshPeriod = 0
        .TextFilePromptOnRefresh = False
        .TextFilePlatform = 65001
        .TextFileStartRow = 1
        .TextFileParseType = xlDelimited
        .TextFileTextQualifier = xlTextQualifierDoubleQuote
        .TextFileConsecutiveDelimiter = False
        .TextFileTabDelimiter = False
        .TextFileSemicolonDelimiter = False
        .TextFileCommaDelimiter = True
        .TextFileSpaceDelimiter = False
        .TextFileColumnDataTypes = Array(1, 1, 1, 1, 1, 1, 1, 1)
        .TextFileDecimalSeparator = "."
        .TextFileThousandsSeparator = ","
        .TextFileTrailingMinusNumbers = True
        .Refresh BackgroundQuery:=False
    End With
End Sub

.
Teşekkürler sağolun aradığım buydu. run time error 5 invalid procedure call or argument gibi bir hata aldım ancak daha detaylı inceleyerek çözmeye çalışacağım.
 

Haluk

Özel Üye
Katılım
7 Temmuz 2004
Mesajlar
12,406
Excel Vers. ve Dili
64 Bit 2010 - İngilizce
+
Google Sheets
+
JScript
Altın Üyelik Bitiş Tarihi
Dosya yolunu koda yanlış yazmış olabilirsiniz....

İsterseniz aşağıdaki kodu deneyin..... Bu kodları ilgili Excel dosyasında yeni bir modül ilave edip, oraya yapıştırın, daha sonra da Test isimli prosedürü çalıştırın. Sizden ilgili dosyayı seçmenizi isteyecek, daha sonra da Excel'e aktarım yapılacaktır.

Kod:
Sub Test()
    'Haluk - 05/07/2019
    'sa4truss@gmail.com
   
    Dim myFile As Variant, i As Integer
   
    If ThisWorkbook.Connections.Count > 0 Then
        For i = ThisWorkbook.Connections.Count To 1 Step -1
            ThisWorkbook.Connections(i).Delete
        Next
    End If
   
    If ActiveSheet.QueryTables.Count > 0 Then
        For i = ActiveSheet.QueryTables.Count To 1 Step -1
            ActiveSheet.QueryTables(i).Delete
        Next
    End If
   
    myFile = Application.GetOpenFilename("Text Files, *.txt", , "Dosya seçin...")
    If myFile = False Then Exit Sub
   
    With ActiveSheet.QueryTables.Add(Connection:="TEXT;" & myFile, Destination:=Range("$A$1"))
        .Name = "pipe"
        .TextFilePlatform = 65001
        .TextFileParseType = xlDelimited
        .TextFileCommaDelimiter = True
        .TextFileColumnDataTypes = Array(2, 1, 1, 1, 2, 2, 1, 1)
        .TextFileDecimalSeparator = "."
        .TextFileThousandsSeparator = ","
        .Refresh BackgroundQuery:=False
    End With
End Sub
.
 

Haluk

Özel Üye
Katılım
7 Temmuz 2004
Mesajlar
12,406
Excel Vers. ve Dili
64 Bit 2010 - İngilizce
+
Google Sheets
+
JScript
Altın Üyelik Bitiş Tarihi
ADO kullanarak hazırlanan başka bir alternatif de ekte verilmiştir.

Sıkıştırılmış dosyanın içindeki pipe.txt, Schema.ini ve Excel dosyası aynı klasör içinde bulunmalı ve Excel dosyası hariç, diğerlerinin dosya isimleri değiştirilmemelidir...

Schema.ini dosyasının kullanma nedenleri; pipe.txt dosyasındaki nümerik değerler içeren sütunlardaki desimal ayraç olarak kullanılan "." işaretinin Ülkemizde kullanıldığı şekilde "," olarak kullanılmasını temin etmek ve pipe.txt dosyasındaki tüm karakterleri doğru bir şekilde Excel'de görüntülemek için UTF-8 karakter setini kullanabilmektir.

Eğer ihtiyaç duyarsanız, Schema.ini dosyasını Notepad ile açıp, içinde gerekli düzenlemeri yapabilirsiniz.

Ekli dosyayı indirmek için "Altın Üye" olmanız gerekir.

.
 

Ekli dosyalar

Son düzenleme:
Üst