• DİKKAT

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

Türkçe karakter desteği

Katılım
16 Ekim 2009
Mesajlar
58
Excel Vers. ve Dili
2007 Türkçe
Merhaba;

Makro ile yapılan bir sorguda, sorgulanan hücredeki değer ile aranan değer eşleştirmesinde sorun yaşıyorum. Ne gibi bir kod ile bu problemin üstesinden gelebilirim? Örn: "istanbul" yazdığımda "İstanbul" yazılı hücredeki değer de gelsin istiyorum ancak şu anlık sadece "İ" büyük olursa aynı sonuç gelebiliyor. Bunun ne şekilde önüne geçebilirim? Yardımlarınız için şimdiden teşekkür ederim.

Konu ile ilgili çalışma için örnek trmusic-makro-1.zip

Konu ile ilgili konu başlığı Makro ile aranan değeri hücrelere yazdırma
 
Merhaba;

Makro ile yapılan bir sorguda, sorgulanan hücredeki değer ile aranan değer eşleştirmesinde sorun yaşıyorum. Ne gibi bir kod ile bu problemin üstesinden gelebilirim? Örn: "istanbul" yazdığımda "İstanbul" yazılı hücredeki değer de gelsin istiyorum ancak şu anlık sadece "İ" büyük olursa aynı sonuç gelebiliyor. Bunun ne şekilde önüne geçebilirim? Yardımlarınız için şimdiden teşekkür ederim.

Konu ile ilgili çalışma için örnek trmusic-makro-1.zip

Konu ile ilgili konu başlığı Makro ile aranan değeri hücrelere yazdırma

U
Kod:
Ucase
ile yaptığın işlemlerde mesela Ali değerini Ucase karşılığı ALI dir sen bunu ALİ olarak almak istiyorsan

Kod:
ComboBox1 = Evaluate("=büyükharf(""" & ComboBox1 & """)")
    ComboBox1 = Evaluate("=upper(""" & ComboBox1 & """)")

şeklinde kullanman gerekiyor
bu şekilde yazdığın zaman mesela hücre değeri ali ise senin buyukharf değerin ALİ olacaktır istanbul vb diğer türkçe karakterlerdede işlem aynıdır.
 
İlginiz için teşekkür ederim ancak böyle bir şey değil. Yani giriş yapılan hücrenin ne şekilde girilmiş olabileceği meçhul olabileceğinden dolayı sorgu ekranında harf duyarlılığı istemiyorum. Bu her zaman büyük yazılmış olacak anlamına gelmiyor. "İstanbul" ararken "istanbul" yazılmış da olabilir, "istanbul" ararken "İstanbul" yazılmış da olabilir. Yani sürekli olarak büyük harf araması yapmak çok doğru sonuç vermez gibi geliyor. Bu sefer de küçük harfleri yok sayacaktır.
 
İlginiz için teşekkür ederim ancak böyle bir şey değil. Yani giriş yapılan hücrenin ne şekilde girilmiş olabileceği meçhul olabileceğinden dolayı sorgu ekranında harf duyarlılığı istemiyorum. Bu her zaman büyük yazılmış olacak anlamına gelmiyor. "İstanbul" ararken "istanbul" yazılmış da olabilir, "istanbul" ararken "İstanbul" yazılmış da olabilir. Yani sürekli olarak büyük harf araması yapmak çok doğru sonuç vermez gibi geliyor. Bu sefer de küçük harfleri yok sayacaktır.

peki bir örnek yapıp yolluyorum, C1 hücresini veya a sutunundaki değerleri büyüklü küçüklü değiştirip sonuca bakabilirmisin ?
Kod:
Sub karsilastir()
Sheets("sayfa1").Select
For x = 2 To [A65536].End(3).Row
If Evaluate("=upper(""" & (Cells(1, "C").Value) & """)") = Evaluate("=upper(""" & (Cells(x, "A").Value) & """)") Then
Cells(x, "B").Value = "UYGUN"
Else
Cells(x, "B").Value = "UYUŞMUYOR"
End If
Next
End Sub
aynı kodu birde
Kod:
Ucase
kullanarak yaptım her iki makronun sonuçlarına bakabilirmisin ?
 

Ekli dosyalar

Merhaba,
tespitt makrosunda aşağıdaki değişikliği yaparsanız istediğiniz olur.
Kolay gelsin.

Kod:
Sub tespitt()
Call data_temizlee
Call sorgu_temizlee
Application.ScreenUpdating = False
On Error Resume Next
Set s1 = ThisWorkbook.Worksheets("Sorgu")
Set s2 = ThisWorkbook.Worksheets("data")
'sonsatir = s1.Range("A65536").End(xlUp).Row + 1

For i = 2 To s2.Range("b65536").End(xlUp).Row
data_ad = UCase(Replace(Replace(s2.Cells(i, 5), "ı", "I"), "i", "İ"))
data_soyad = UCase(Replace(Replace(s2.Cells(i, 6), "ı", "I"), "i", "İ"))
aranan_ad = UCase(Replace(Replace(s1.Cells(2, 1), "ı", "I"), "i", "İ"))
aranan_soyad = UCase(Replace(Replace(s1.Cells(2, 2), "ı", "I"), "i", "İ"))

If (aranan_ad <> "" And aranan_soyad = "" And aranan_ad = data_ad) Then s2.Cells(i, 1) = i
If (aranan_ad = "" And aranan_soyad <> "" And aranan_soyad = data_soyad) Then s2.Cells(i, 1) = i
If (aranan_ad <> "" And aranan_soyad <> "" And aranan_ad = data_ad And aranan_soyad = data_soyad) Then s2.Cells(i, 1) = i
Next i
Call verileri_all
End Sub
 
Hocam sorgu tek bir hücreden yapılmıyor asıl programda. Bu sebeple çok fazla sonuç ortaya çıkıyor.
 
Merhaba,
tespitt makrosunda aşağıdaki değişikliği yaparsanız istediğiniz olur.
Kolay gelsin.

Kod:
Sub tespitt()
Call data_temizlee
Call sorgu_temizlee
Application.ScreenUpdating = False
On Error Resume Next
Set s1 = ThisWorkbook.Worksheets("Sorgu")
Set s2 = ThisWorkbook.Worksheets("data")
'sonsatir = s1.Range("A65536").End(xlUp).Row + 1

For i = 2 To s2.Range("b65536").End(xlUp).Row
data_ad = UCase(Replace(Replace(s2.Cells(i, 5), "ı", "I"), "i", "İ"))
data_soyad = UCase(Replace(Replace(s2.Cells(i, 6), "ı", "I"), "i", "İ"))
aranan_ad = UCase(Replace(Replace(s1.Cells(2, 1), "ı", "I"), "i", "İ"))
aranan_soyad = UCase(Replace(Replace(s1.Cells(2, 2), "ı", "I"), "i", "İ"))

If (aranan_ad <> "" And aranan_soyad = "" And aranan_ad = data_ad) Then s2.Cells(i, 1) = i
If (aranan_ad = "" And aranan_soyad <> "" And aranan_soyad = data_soyad) Then s2.Cells(i, 1) = i
If (aranan_ad <> "" And aranan_soyad <> "" And aranan_ad = data_ad And aranan_soyad = data_soyad) Then s2.Cells(i, 1) = i
Next i
Call verileri_all
End Sub

İşte aradığım cevap buydu çok teşekkür ederim.
 
Gönderdiğim değişikliği denediniz mi?
 
Hocam sorgu tek bir hücreden yapılmıyor asıl programda. Bu sebeple çok fazla sonuç ortaya çıkıyor.

Bu mesaj sizin için değildi. Sizin gönderdiğiniz çözüm tam da aradığım çözümdü. Çok teşekkürler.
 
Geri
Üst