Excel de Varsayılan Utf-8 ayarı yada makroda ayarlama

Katılım
9 Mart 2017
Mesajlar
54
Excel Vers. ve Dili
2016 Excel Türkçe
Merhabalar

Aşağıda bulunan test adında bir makro kullanıyorum. Normalde html yi utf-8 ile kayıt yapıyor idi fakat hangi ayarını kurcaladım bilmiyorum ascii kod ile kayıt yapıyor (ı,ş gibi harfler bozuk çıkıyor. Makro dosyasını farklı kayıt et web seceneklerinden kodlama kısmından utf-8 yaptım oyle çalıştırdım olmadı. Excel secenekler Düzenleme dili türkçe Görüntüleme dili türkçe yaptım olmadı sonra görüntüleme dilini varsayılan microsoft windows ile eşleştir yaptım olmadı. Html yi yeniden utf-8 olarak nasıl yapabilirim. Şimdilik oluşan htmlyi notdefteri ile açıp ascii kodu utf-8 yapıp yeniden kaydettim zaman düzeliyor. Ya da aşağıdaki koda hmtlyi utf-8 olarak kaydet diyebileceğim bir çözüm kod var mı ? Office 365 proplus Türkçe kullanıyorum

Konu hakkında yardımlarını bekliyorum.

Tşk.ler





Sub Test()
RangeToHtml Range("A1:C3"), "test.html"
End Sub

Sub RangeToHtml(rng As Range, fileName As String)
Dim resBeg As String
resBeg = "<html><head></head><body><table>"
resEnd = "</table></body></html>"
For i = 1 To rng.Rows.Count
'---Rows---
resBeg = resBeg & "<tr>"
For j = 1 To rng.Columns.Count
'---Columns---
resBeg = resBeg & "<td>"
resBeg = resBeg & rng.Cells(i, j).Value
resBeg = resBeg & "</td>"
Next j
resBeg = resBeg & "</tr>"
Next i
Call SaveStringToFile(resBeg & resEnd, fileName)
End Sub

Sub SaveStringToFile(str As String, fileName As String)
Open fileName For Output As #1
Print #1, str
Close #1
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
Ben sizin kodu hiç değiştirmeden, olduğu gibi kullandım ve Türkçe karakterlerde bir problem olmadı. (Aktif sayfadaki A1:B10 aralığını "html" olarak kaydeder...)

Eğer siz mutlaka UTF-8 kullanmak istiyorsanız; ilk önce bilgisayarda C:\TestFolder klasörünü kendiniz manuel olarak oluşturduktan sonra, aşağıdaki gibi deneyin.

"Test" isimli makroyu çalıştırdığınızda, bilgisayarda C:\TestFolder\Test.html dosyası oluşturulacaktır. Sonuçtan memnun kalmazsanız, UTF-8 yerine Windows-1254 deneyin. O da kodun içinde pasifleştirilmiş olarak var.

Kod:
Sub Test()
    Call RangeToHtml(Range("A1:B10"), "C:\TestFolder\Test.html")
End Sub
'
Sub RangeToHtml(rng As Range, fileName As String)
    Dim resBeg As String
    
    'resBeg = "<html><body><table>"
    'resBeg = "<html><head><meta charset=""windows-1254""></head><body><table>"
    resBeg = "<html><head><meta charset=""UTF-8""></head><body><table>"
    
    resEnd = "</table></body></html>"
    
    For i = 1 To rng.Rows.Count
        resBeg = resBeg & "<tr>"
        For j = 1 To rng.Columns.Count
            resBeg = resBeg & "<td>"
            resBeg = resBeg & rng.Cells(i, j).Value
            resBeg = resBeg & "</td>"
        Next j
            resBeg = resBeg & "</tr>"
    Next i
    
    Call SaveStringToFile(resBeg & resEnd, fileName)
End Sub
'
Sub SaveStringToFile(str As String, fileName As String)
    Open fileName For Output As #1
        Print #1, str
    Close #1
End Sub
.
 
Son düzenleme:
Katılım
9 Mart 2017
Mesajlar
54
Excel Vers. ve Dili
2016 Excel Türkçe
Çok Teşekkür ederim <meta charset=""windows-1254""> işimi çözdü. İyi günler iyi çalışmalar
 
Üst