Noktalı harfleri noktasız hale getirme

ASLAN7410

Altın Üye
Altın Üye
Katılım
15 Temmuz 2012
Mesajlar
2,790
Excel Vers. ve Dili
Ofis 2021 TR 64 Bit
Merhaba hayırlı bayramlar.

Ekte gönderdiğim excel dosyamın E sütununda Türkçe karakterli bazı kelimeler var, bu kelimelerin başında ve sonunda boşluklar var, aralarında da fazladan boşluklar var.

Ben butona bastığımda hangi sütunu dönüştürmek istiyorsam o sütunu Türkçe karakterli kelimeleri normale çevirmek, kelimenin başında, sonunda ve aralarındaki fazla boşlukları silmek istiyorum, hangi sütunda işlem yapıldıysa düzgün halini aynı sütuna yazmasını istiyorum.

İşlemi formülle yaptım işe yarıyor ancak işlem uzun sürüyor, formülün yaptığı bu işlemi Application.InputBox ile yapmak istiyorum.

Yardımcı olur musunuz?
 

Ekli dosyalar

Son düzenleme:

ASLAN7410

Altın Üye
Altın Üye
Katılım
15 Temmuz 2012
Mesajlar
2,790
Excel Vers. ve Dili
Ofis 2021 TR 64 Bit
Arkadaşlar forumda ve internette benim istediğim gibi bir şey bulamadım.

Yardımcı olur musunuz?
 

Ömer BARAN

Uzman
Katılım
8 Mart 2011
Mesajlar
13,002
Excel Vers. ve Dili
Office 2013 ( 32 bit ) TÜRKÇE
Merhaba.
Aşağıdaki gibi deneyin.
Mavi kısım sütun adının yanlış yazılması halinde onu düzeltmek içindir.
Rich (BB code):
Sub BARAN()
Application.Calculation = xlCalculationManual
sor = Application.InputBox("İşlem yapılacak sütun adını giriniz!..." & vbCrLf & " ", "Ö.BARAN", "A", Type:=2)
sor = UCase(Replace(Replace(Replace(Replace(Replace(Replace(Replace(Replace( _
    Replace(Replace(Replace(Replace(sor, "Ç", "C"), "ç", "c"), "ğ", "g"), _
    "Ğ", "G"), "İ", "I"), "ı", "i"), "Ö", "O"), "ö", "o"), "Ş", "S"), "ş", "s"), "Ü", "U"), "ü", "u"))
    If sor = False Then
        MsgBox "İşlemi iptal ettiniz.", vbInformation, "Ö.BARAN"
        GoTo 10
    ElseIf IsNumeric(sor) = True Then
        MsgBox "Sadece HARF yazınız.", vbInformation, "Ö.BARAN"
        GoTo 10
    ElseIf Len(sor) > 1 Then
        MsgBox "Sadece 1 adet HARF yazmalısınız.", vbInformation, "Ö.BARAN"
        GoTo 10
    ElseIf Cells(Rows.Count, sor).End(3).Row = 1 Then
        MsgBox "Belirtilen sütunda işlem yapılacak veri yok.", vbInformation, "Ö.BARAN"
        GoTo 10
    Else
        For sat = 2 To Cells(Rows.Count, sor).End(3).Row
            Cells(sat, sor) = WorksheetFunction.Trim(UCase(Replace(Replace(Replace(Replace(Replace(Replace(Replace(Replace( _
                    Replace(Replace(Replace(Replace(Cells(sat, sor), "Ç", "C"), "ç", "c"), "ğ", "g"), _
                    "Ğ", "G"), "İ", "I"), "ı", "i"), "Ö", "O"), "ö", "o"), "Ş", "S"), "ş", "s"), "Ü", "U"), "ü", "u")))
        Next
        MsgBox "İşlem tamam.", vbInformation, "Ö.BARAN"
    End If
10: Application.Calculation = xlCalculationAutomatic
End Sub
 
Son düzenleme:

ASLAN7410

Altın Üye
Altın Üye
Katılım
15 Temmuz 2012
Mesajlar
2,790
Excel Vers. ve Dili
Ofis 2021 TR 64 Bit
Sayın Ömer Bey, hayırlı geceler hayırlı bayramlar diliyorum.

Tam istediğim gibi çalışıyor, çok teşekkür ediyorum, valla süper oldu, ellerinize sağlık.
 

Ömer BARAN

Uzman
Katılım
8 Mart 2011
Mesajlar
13,002
Excel Vers. ve Dili
Office 2013 ( 32 bit ) TÜRKÇE
Bilmukabele, ben de sizin Kurban Bayramınızı kutluyorum.

Estağfurullah, kod'da fazlalık kısımlar olabilir belki.
Her neyse önemli olan ihtiyacın karşılanması değil mi?
 

ASLAN7410

Altın Üye
Altın Üye
Katılım
15 Temmuz 2012
Mesajlar
2,790
Excel Vers. ve Dili
Ofis 2021 TR 64 Bit
Sayın Ömer Bey, zahmet olmazsa koddaki fazlalık dediğiniz yerleri sadeleştirip gönderebilir misiniz?
 

Haluk

𐱅𐰇𐰼𐰚
Katılım
7 Temmuz 2004
Mesajlar
12,268
Excel Vers. ve Dili
64 Bit 2010 - İngilizce
+
Google Sheets
+
JScript
İşinize yararsa, biraz daha sade bir kod aşağıdadır ....

Değiştirilecek hücrelerin tümünü fare ile seçtikten sonra, aşağıdaki makroyu çalıştırabilirsiniz.

Kod:
Sub Test()
    Dim Rng As Range
    For Each Rng In Selection
        Rng = StrConv(Rng.Text, vbUpperCase, 1033)
        Rng = StrConv(Rng.Text, vbUpperCase, 64)
    Next
End Sub
.
 

Ömer BARAN

Uzman
Katılım
8 Mart 2011
Mesajlar
13,002
Excel Vers. ve Dili
Office 2013 ( 32 bit ) TÜRKÇE
Fazlalık değil ama eksiklik var diye düşündüm.
Inputbox'a 1'den fazla karakter yazılması, harf dışında karakter yazılması, yazılan sütunda veri olmaması gibi seçenkeleri de ekledim.
Sayfayı yenileyerek önceki kod cevabımı tekrar kontrol ediniz.
 

ASLAN7410

Altın Üye
Altın Üye
Katılım
15 Temmuz 2012
Mesajlar
2,790
Excel Vers. ve Dili
Ofis 2021 TR 64 Bit
Sayın Ömer Bey, çok teşekkür ediyorum, ellerinize sağlık, çok güzel çalışıyor.

Hayırlı geceler, hayırlı bayramlar diliyorum.
 

ASLAN7410

Altın Üye
Altın Üye
Katılım
15 Temmuz 2012
Mesajlar
2,790
Excel Vers. ve Dili
Ofis 2021 TR 64 Bit
Sayın Haluk Bey, sizinde ilginize çok teşekkür ediyorum, kod gayet güzel çalışıyor.
Ama fazla boşlukları kırpmıyor, bu da olursa sizin kodda çok güzel olacak.
 

Haluk

𐱅𐰇𐰼𐰚
Katılım
7 Temmuz 2004
Mesajlar
12,268
Excel Vers. ve Dili
64 Bit 2010 - İngilizce
+
Google Sheets
+
JScript
Aslan Bey;

Bir satır daha ilave edersek, o da olur ...

Kod:
Sub Test()
    Dim Rng As Range
    For Each Rng In Selection
        Rng = StrConv(Rng.Text, vbUpperCase, 1033)
        Rng = StrConv(Rng.Text, vbUpperCase, 64)
        Rng = WorksheetFunction.Trim(Rng)
    Next
End Sub
 

ASLAN7410

Altın Üye
Altın Üye
Katılım
15 Temmuz 2012
Mesajlar
2,790
Excel Vers. ve Dili
Ofis 2021 TR 64 Bit
Sayın Haluk Bey, kelime başındaki ve sonundaki boşlukları siliyor.
Kelime arasındaki fazla boşlukları kırpmıyor.
 

Haluk

𐱅𐰇𐰼𐰚
Katılım
7 Temmuz 2004
Mesajlar
12,268
Excel Vers. ve Dili
64 Bit 2010 - İngilizce
+
Google Sheets
+
JScript
13 No'lu mesajdaki kod revize edildi.

.
 

ASLAN7410

Altın Üye
Altın Üye
Katılım
15 Temmuz 2012
Mesajlar
2,790
Excel Vers. ve Dili
Ofis 2021 TR 64 Bit
Sayın Haluk Bey, ellerinize sağlık çok teşekkür ediyorum.

Hayırlı geceler, hayırlı bayramlar diliyorum.
 

ASLAN7410

Altın Üye
Altın Üye
Katılım
15 Temmuz 2012
Mesajlar
2,790
Excel Vers. ve Dili
Ofis 2021 TR 64 Bit
Sayın Ömer Bey, en son gönderdiğiniz koddaki mesaj kutusuna yanlışlıkla noktalı harflerden ç,ü,ö,i,ş harflerden birisini yazdığımda kod hata veriyor.

Önceki gönderdiğiniz kodda bunu düzeltiyordu. Bu kısmı önceki kod gibi ayarlayabilir misiniz?
 

Haluk

𐱅𐰇𐰼𐰚
Katılım
7 Temmuz 2004
Mesajlar
12,268
Excel Vers. ve Dili
64 Bit 2010 - İngilizce
+
Google Sheets
+
JScript
Bilmukabele,

Size de iyi geceler, iyi bayramlar.

.
 

Ömer BARAN

Uzman
Katılım
8 Mart 2011
Mesajlar
13,002
Excel Vers. ve Dili
Office 2013 ( 32 bit ) TÜRKÇE
Haluk Bey verdiğiniz kod'daki 1033 ve 64'ün anlamlarını belirtebilir misiniz?
Başka seçenekler de var mıdır?
Tahminim o ki; font ailesi anlamına geliyor ama, anlamak istediğim örneğin Ç'yi C olarak değiştirmesi nasıl oluyor acaba?
Birinin kod karşılığı 199 iken diğerinin 67 mesela.
 

Ömer BARAN

Uzman
Katılım
8 Mart 2011
Mesajlar
13,002
Excel Vers. ve Dili
Office 2013 ( 32 bit ) TÜRKÇE
Yanlış kopyalamış olabilirim, sayfayı yenileyerek tekrar kontrol edin.
 
Üst