• DİKKAT

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

Noktalı harfleri noktasız hale getirme

Merhaba,

64 ün ne olduğunu bulamadım :)

1033 > English - United States ifade ediyor. Tüm listeyi ekteki dosyada görebilirsiniz.
 

Ekli dosyalar

Sayın Ömer Bey, mesaj kutusuna Ç, ç harfi yazdığımda aşağıdaki kodu sarıya boyuyor.

ElseIf Cells(Rows.Count, sor).End(3).Row = 1 Then
 
Merhaba,

64 ün ne olduğunu bulamadım :)

1033 > English - United States ifade ediyor. Tüm listeyi ekteki dosyada görebilirsiniz.

Ben de zaten bir listeden bulmamıştım ......:cool:

Deneme yaparken buldum.

.
 
Evet, çok faydalı bir konu oldu. Elinize sağlık.
Bir kaç ayrıntı da ben ekleyeyim:
vbLowerCase > Tüm harfler küçük
vbProperCase > İlk harfler büyük
vbUpperCase > Tüm harfler büyük
Ve en çok işe yarayacak olan Türkçe karakter kodu: 1055
 
Teşekkürler Zayın netzone.
Benim merak ettiğim, DİL değişikliği değil, karakter değişikliğinin nasıl yapıldığı idi, REPLACE benzeri bir İŞLEV kullanılmıyor oluşu.
 
Sayın ASLAN, bilgisayarı kapattım, Else satırından sonraki sor= ...... satırının yerini değiştirmek veya tekrarlamak gerekiyor.
Cep telefonundan yazıyorum, sonra baksam olur mu?
Belki de başka bir arkadaşımız düzeltir.
 
... karakter değişikliğinin nasıl yapıldığı idi, REPLACE benzeri bir İŞLEV kullanılmıyor oluşu.

Ömer Bey, Sanırım sorunuzun cevabı StrConv Fonksiyonunda gizli.

Bu arada, Haluk Bey'in kodları sadece Türkçe karakterleri değil bunun dışında Uzatılmış Latin sınıflarında yer alan Ă, Đ, ĕ, Ņ, Ÿ gibi karakteri de A, ?, E, N, Y olarak çevirdiğini gözlemledim.
 
Son düzenleme:
StrConv fonksiyonu, küçük "i" yi büyük "İ" olarak çeviremiyor sanırım.
Sub Test() MsgBox StrConv("i", vbUpperCase, 1055) End Sub
 
Çok faydalı bir konu oldu.
Sakin bir zamanda üzerinde durmak lazım.
 
StrConv fonksiyonu, küçük "i" yi büyük "İ" olarak çeviremiyor sanırım.
... MsgBox StrConv("i", vbUpperCase, 1055) ...

Zeki Bey, sizin de belirttiğiniz gibi küçük i nedense büyük İ ye dönüştüremiyor. Söz konusu fonksiyonun kullanımında LCID isteğe bağlı olduğu belirtilmiş buna göre MsgBox StrConv("i", vbUpperCase) sadece i harfini büyütmek istediğimizde malesef yine I olarak karşımıza çıkarıyor..
 
Son düzenleme:
StrConv fonksiyonu, küçük "i" yi büyük "İ" olarak çeviremiyor sanırım.
Sadece "i" harfi değil, "ı" harfinde de olumsuz sonuç verdi. Bu harfleri küçültürken herhangi bir sorun olmuyor. Türkçe yönlü büyük harfe çevirme konusunda bu kod çok kullanışlı olmayacak gibi görünüyor. Bunun yerine her zaman kullandığımız deg = UCase(Replace(Replace(mtn, "ı", "I"), "i", "İ")) kodunu kullanmak gerekecek sanırım. Bir de yerleşik fonksiyonun makro karşılığını denedim ve olumlu sonuç aldım. deg = Evaluate("upper(""" & mtn & """)")
Kelimelerin ilk harflerinin büyük harfe çevrilmesinde "vbProperCase" "ı,i" de takıldı. Bunun için WorksheetFunction.Proper(mtn) kodunu denedim, olumlu sonuç aldım.
Kod:
Sub dene()
mtn = "ç-ğ-ı-i-u-ü-ş-o-ö"
mtn2 = "ılıman bir iklim. içim çok sıkılıyor."
deg1 = UCase(Replace(Replace(mtn, "ı", "I"), "i", "İ"))
deg2 = Evaluate("upper(""" & mtn & """)")
deg3 = WorksheetFunction.Proper(mtn2)
MsgBox deg1 & Chr(10) & "-----" & Chr(10) & deg2 & Chr(10) & "-----" & Chr(10) & deg3
End Sub
 
Esasında, gerek çeşitli yazılım dillerinde gerekse internette Türkçe karakterlerde yaşadığımız sorun; vakti zamanında yapılan uluslararası toplantılarda gerekli önemi vermememiz nedeniyle, Türkçe karakterlerin bilişim dilinde yer almamasıdır.

Bu sorun, yazılım dilinden başlayıp standart bilgisayar klavyesine kadar gitmektedir. Bu nedenle sonradan Türkçe-Q ve Türkçe-F klavye gibi enterasan şeyler icat edilmek zorunda kaldı. Yazılımlarda beklenmeyen bir sorun çıktığında ise, herkes bir şekilde başının çaresine bakıyor.

Konunun Excel boyutuna gelirsek; VBA'de değil ama neyse ki Excel'in yerleşik fonksiyonlarındaki karakter setlerinde, dil kodlamasında Türkçe karakterler yer aldığı için çok sıkıntı çekmiyoruz.

Bu nedenle; VBA ile uğraşırken eğer Türkçe karakterleri büyük/küçük harf yapmak ihtiyacını hisettiğimde ben genellikle kullanılmayan bir hücreye metni yazıp, VBA'den Excel'in ilgili fonksiyonunu kullanarak işimi çözmeye çalışırım.

Örnek olarak;

Kod:
Sub Test()
    mystr1 = "ğüşıiöç"
    Range("AA1") = mystr1
  
    myStrUpper = [upper(AA1)]
    MsgBox mystr1 & ">>>>  " & myStrUpper
  
    mystr2 = "ĞÜŞIİÖÇ"
    Range("AA1") = mystr1
  
    myStrLower = [lower(AA1)]
    MsgBox mystr2 & ">>>>  " & myStrLower
End Sub
 
Son düzenleme:
Türkçe karakterlerde yaşadığımız sorun; vakti zamanında yapılan uluslararası toplantılarda gerekli önemi vermemiz nedeniyle, Türkçe karakterlerin bilişim dilinde yer almamasıdır.

Haluk Bey, bu sorun aslında framework ile çözüldü. Bence sorun, Visual Basic kodlarının başvurduğu dll'in yazıldığı zamandaki haliyle kalması. (VBA -> "VBA?.dll" ve VB6 -> "msvbvm.60.dll")

VB.Net (framework) ile gördüğüm kadarıyla TR dil sorunu çözülmüş. "StrConv" olması gerektiği gibi çalışıyor. Yine aklıma gelen VBA/VB6 daki bir türlü düzeltilmeyen "Round" fonksiyonundaki yuvarlama hatası da çözülmüş.

Hayalimdeki VBA editörü gün gelir de framework başvurusu ile çalışırsa tadına doyulmayan bir editör olacağı kesin.

Selamlar.
 
Zeki Bey; MS Türkiye bu tür forumları takip ediyor mu bilmiyorum ama, hep birlikte umalım da bu düzenlemeri yapsınlar ......

Selamlar,

.
 
Sayın Ömer Bey, gece gece rahatsız ediyorum.

Mesaj kutusuna yanlışlıkla rakam yazdığımda kod içerisindeki ElseIf Cells(Rows.Count, sor).End(3).Row = 1 Then kısmını sarıya boyuyor.
 
Elseif IsNumeric.... kısmını yukarı alarak cevabımı tekrar güncelledim.
 
Geri
Üst