iç içe "replace" kullanımı

Katılım
6 Temmuz 2008
Mesajlar
1,875
Excel Vers. ve Dili
OFFİCE 2010- TÜRKÇE
Altın Üyelik Bitiş Tarihi
22-12-2019
Kod:
adres = Replace(Replace(Replace(Replace(Replace(Replace(Replace(Replace(Replace(Replace(deg, "Ãœ", "Ü"), "Ä°", "İ"), "Ç", "Ç"), "Å", "Ş"), "Ä", "Ğ"), "б", "ı"), "Ã", "Ö"), "Ö¼", "ü"), "ĞŸ", "ğ"), "TC KİMLİK NO ", "")
Bu alanda yapmış olduğum replace komutunu döngü içerisinde ya da dizi içerisinde yapabilirmiyiz?
 
Katılım
6 Temmuz 2008
Mesajlar
1,875
Excel Vers. ve Dili
OFFİCE 2010- TÜRKÇE
Altın Üyelik Bitiş Tarihi
22-12-2019
Kod:
For adr = 2 To Sheets("Tanımlar").Cells(Rows.Count, "A").End(3).Row
mevcut = Sheets("Tanımlar").Cells(adr, "A")
olmgrkn = Sheets("Tanımlar").Cells(adr, "B")
deg = Replace(deg, mevcut, olmgrkn)
Next
adres = deg
Cells(1, 1) = adres
Döngü ile bu şekilde hazırladım. Sorun yok. Alternatif fikri olan var mı?
 

Tevfik_Kursun

Altın Üye
Katılım
30 Temmuz 2012
Mesajlar
3,791
Excel Vers. ve Dili
Office 2016 Pro - Türkçe 64 Bit
Altın Üyelik Bitiş Tarihi
12-02-2029
Merhaba,
İşinize yarar mı bilmem, ben sık kullanırım.
İyi çalışmalar
 

Ekli dosyalar

Tevfik_Kursun

Altın Üye
Katılım
30 Temmuz 2012
Mesajlar
3,791
Excel Vers. ve Dili
Office 2016 Pro - Türkçe 64 Bit
Altın Üyelik Bitiş Tarihi
12-02-2029
Rica ederim
İyi çalışmalar
 

Korhan Ayhan

Administrator
Yönetici
Admin
Katılım
15 Mart 2005
Mesajlar
42,243
Excel Vers. ve Dili
Microsoft 365 Tr-En 64 Bit
Alternatif;

Kod:
Sub Test()
    deg = "TC KİMLİK NO ÜİÇÅÄбÃּП"
    
    Eski = Array("Ãœ", "Ä°", "Ç", "Å", "Ä", "б", "Ã", "Ö¼", "ĞŸ", "TC KİMLİK NO")
    Yeni = Array("Ü", "İ", "Ç", "Ş", "Ğ", "ı", "Ö", "ü", "ğ", "")
    
    For X = O To UBound(Eski)
        deg = Replace(deg, Eski(X), Yeni(X))
    Next

    MsgBox deg
End Sub
 
Katılım
6 Temmuz 2008
Mesajlar
1,875
Excel Vers. ve Dili
OFFİCE 2010- TÜRKÇE
Altın Üyelik Bitiş Tarihi
22-12-2019
Alternatif;

Kod:
Sub Test()
    deg = "TC KİMLİK NO ÜİÇÅÄбÃּП"
   
    Eski = Array("Ãœ", "Ä°", "Ç", "Å", "Ä", "б", "Ã", "Ö¼", "ĞŸ", "TC KİMLİK NO")
    Yeni = Array("Ü", "İ", "Ç", "Ş", "Ğ", "ı", "Ö", "ü", "ğ", "")
   
    For X = O To UBound(Eski)
        deg = Replace(deg, Eski(X), Yeni(X))
    Next

    MsgBox deg
End Sub
Aradığım cevap buydu . (y)
Teşekkürler @Korhan Ayhan
 
Katılım
6 Temmuz 2008
Mesajlar
1,875
Excel Vers. ve Dili
OFFİCE 2010- TÜRKÇE
Altın Üyelik Bitiş Tarihi
22-12-2019
Soruya cevap yazılınca mail gelmedi. Siteye giriş yaptığımda cevabı görebildim.
@Hüseyin
 

hafasepa

Altın Üye
Katılım
5 Mart 2015
Mesajlar
7
Excel Vers. ve Dili
2010
Altın Üyelik Bitiş Tarihi
21-11-2024
Merhabalar,

sayfanın kod alanında function ekledim ve recplace ile "cotto" bulursan "cotton" yap şeklinde. aşağıdaki kodu kullandım, doğru bir kullanım olmayabilir ama işimi görür gibi oldu. bir kaç noktada takıldım..

OtomatikDuzelt= UCase(Replace(Replace(Veri, "cotto", "COTTON"), "polyamid", "POLYAMIDE"))

yukarıdaki kod ile yaptığım denememde hücreye gerçekten doğru bir şekilde "COTTON" girilmiş olsa bile "COTTO" ifadesini bulduğu için yine düzeltiyor ve "COTTONN" yapıyor.


Tam olarak da istediğim şudur; bir hücreye değer girildiğinde (hücreden çıkıldığında)

"cotto" varsa "COTTON",
"Polyamde" varsa "POLYAMIDE"
"plyester" varsa "POLYESTER"

yazsın istiyorum.

yani hatalı yazım tahminlerimi düzeltmek için koda gömmek istiyorum.

Yardımcı olursanız çok sevinirim.
 

Levent Menteşoğlu

Administrator
Yönetici
Admin
Katılım
13 Ekim 2004
Mesajlar
16,057
Excel Vers. ve Dili
Excel 2010-32 bit-Türkçe
Excel 365 -32 bit-Türkçe
Tam olarak da istediğim şudur; bir hücreye değer girildiğinde (hücreden çıkıldığında)

"cotto" varsa "COTTON",
"Polyamde" varsa "POLYAMIDE"
"plyester" varsa "POLYESTER"
Sayfanın kod sayfasına aşağıdaki kodu ekleyin. Kod içindeki Range("A1:A100") aralığına değiştirilmesini istediğiniz hücre aralığını girin. Ancak örneğin, her seferinde Polyamde yazılacağından emin misiniz? Bir çok yanlış yazım şekli olabilir. Bence bu hücrelere veri doğrulama koyarak hatalı yazımı kontrol edebilirsiniz.

Kod:
Private Sub Worksheet_Change(ByVal Target As Range)

If Intersect(Target, Range("A1:A100")) Is Nothing Then Exit Sub

Select Case Target

Case "cotto"
Target = "COTTON"

Case "Polyamde"
Target = "POLYAMIDE"

Case "plyester"
Target = "POLYESTER"

End Select

End Sub
 

hafasepa

Altın Üye
Katılım
5 Mart 2015
Mesajlar
7
Excel Vers. ve Dili
2010
Altın Üyelik Bitiş Tarihi
21-11-2024
Sayfanın kod sayfasına aşağıdaki kodu ekleyin. Kod içindeki Range("A1:A100") aralığına değiştirilmesini istediğiniz hücre aralığını girin. Ancak örneğin, her seferinde Polyamde yazılacağından emin misiniz? Bir çok yanlış yazım şekli olabilir. Bence bu hücrelere veri doğrulama koyarak hatalı yazımı kontrol edebilirsiniz.

Kod:
Private Sub Worksheet_Change(ByVal Target As Range)

If Intersect(Target, Range("A1:A100")) Is Nothing Then Exit Sub

Select Case Target

Case "cotto"
Target = "COTTON"

Case "Polyamde"
Target = "POLYAMIDE"

Case "plyester"
Target = "POLYESTER"

End Select

End Sub

Hocam aslında biraz yanlış anlatmış olabilirim. ben zaten aslında tek bir yanlışı değil birden fazlasını işlemek istiyorum. örnekte tek bir örnek vermiştim. Ayrıca veri doğrulamayı şu yüzden tam anlamıyla kullanamadım, hücrenin içine tek bir kelime yazdırmayacağız.

%77 cotton %21 polyamide %2 elastane

tek hücreye yapıştırılacak metin bu. ben içinde cotto, coton, polymde, poltester gibi yanlış ihtimalleri girip doğrularına çevirsin istiyorum.
 
Üst