Kardiyak
Altın Üye
- Katılım
- 25 Aralık 2008
- Mesajlar
- 60
- Excel Vers. ve Dili
- 2010 türkçe
- Altın Üyelik Bitiş Tarihi
- 28-02-2027
Selamlar. Sorunum excel dosyasındaki verileri txt dosyasına UTF-8 BOM suz yazdıramamak."sayfa 1" adında bir sheet içinde C, D sütunlarında veriler var. Bunları arasında eşittir işareti olacak şekile alt alta bir txtye yazdırmaya çalışıyorum.
öncelikle şu kodları denedim. ANSI kaydetti
bu kod ile utf-8 with bom kaydedebildim.
Sonra elle veriyi yeni bir sayfaya kopyalayıp bunu farklı kaydetten sekmelere ayrılmış txt olarak aktardığımda bu dosyanın utf-8 without bom olarak kaydedildiğini gördüm ve bunu kod olarak yazayım dediğim.
Ama makro ile aynı işlem yapıldığında yine ansi oldu.
Elle kaydederken uyumlu olmayan özelliklerin çıkarılması için bir uyarıya evet diyorum. makroda öyle bir uyarı çıkmıyor bundan dolayımıdır acaba.
Makro ile Bom içermeyen bir UTF-8 txt dosyası nasıl oluşturabilirim?
öncelikle şu kodları denedim. ANSI kaydetti
Kod:
Sub txtdeneme1()
son = Cells(1048576, 1).End(xlUp).Row
dosya = ThisWorkbook.Path & "\1.txt"
Open dosya For Output As #1
For x = 2 To son
If Range("C" & x) <> "" Then
satır = Range("C" & x) & "=" & Range("D" & x)
Else
satır = ""
End If
Print #1, satır & vbNewLine
Next x
Close
End Sub
Kod:
Sub txtdeneme2() 'ansi
Dim FSO, Out As Object
son = Cells(1048576, 1).End(xlUp).Row
dosya = ThisWorkbook.Path & "\1.txt"
Set FSO = CreateObject("Scripting.FileSystemObject")
Set Out = FSO.CreateTextFile(dosya, True, False) '2.true
For x = 2 To son
If Range("C" & x) <> "" Then
satır = Range("C" & x) & "=" & Range("D" & x)
Else
satır = ""
End If
Out.WriteLine (satır)
Next x
Out.Close
End Sub
Kod:
Sub txtdeneme3() 'utf8 +bom
Dim FSO As Object
son = Cells(1048576, 1).End(xlUp).Row
dosya = ThisWorkbook.Path & "\1.txt"
Set FSO = CreateObject("ADODB.Stream")
FSO.Charset = "utf-8"
FSO.Open
For x = 2 To son
If Range("C" & x) <> "" Then
satır = Range("C" & x) & "=" & Range("D" & x)
Else
satır = ""
End If
FSO.WriteText satır & vbNewLine
Next x
FSO.SaveToFile dosya, 2
End Sub
Ama makro ile aynı işlem yapıldığında yine ansi oldu.
Kod:
Sub txtdeneme4()
son = Cells(1048576, 1).End(xlUp).Row
dosya = ThisWorkbook.Path & "\1.txt"
y = 1
Sheets.Add After:=Sheets(Sheets.Count)
For x = 2 To son
If Sheets("sayfa 1").Range("C" & x) <> "" Then
satır = Sheets("sayfa 1").Range("C" & x) & "=" & Sheets("sayfa 1").Range("D" & x)
Else
GoTo atla1
End If
Range("A" & y) = satır
atla1:
y = y + 1
Next x
Sheets(Sheets.Count).Move
ActiveWorkbook.SaveAs filename:=dosya, FileFormat:=xlText
ActiveWindow.Close False
End Sub
Makro ile Bom içermeyen bir UTF-8 txt dosyası nasıl oluşturabilirim?