arama işleminde büyük / küçük harf duyarlılığı

uzmanamele

Uzman
Uzman
Katılım
26 Eylül 2007
Mesajlar
9,421
Excel Vers. ve Dili
excel 2010
merhaba
makro ile bir kelimeyi çalışma kitabında aratırken büyük / küçük harfe duyarlı nasıl aratırız?
bunun için kod kalıbı var mıdır? yoksa tüm karakterleri tanımlamak mı gerekir?
Türkçe karakter sorunu nasıl aşılır?

not: büyük / küçük harfe duyarlı ifadesini yanlış kullanmışım.
aranan kelime büyük veya küçük harfle var ise her durumda bulunmasını istiyorum.
 
Son düzenleme:

Korhan Ayhan

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

BUL kommutunu makro kaydet yöntemi ile kaydettiğimizde aşağıdakine benzer bir kod oluşur. (Arada oluşan size yaramayan kodları sildim.)

Kod:
Sub BUL()
    Cells.Find(What:="DENEME", LookAt:=xlWhole, MatchCase:=False).Activate
End Sub
Kod:
LookAt:=[COLOR=red]xlWhole[/COLOR]
Bu komut aranan değeri birebir içeren hücreleri bulur. Yani aranan değer DENEME ise hücre içinde sadece bu değer bulunan hücre varsa komut bu hücreyi bulur. Eğer bu komutun karşısına (= ibaresinden sonra) xlWhole kelimesi yerine xlPart yazarsanız aranan değeri içeren hücrelerin tümünü bulur.

Kod:
MatchCase:=[COLOR=red]False[/COLOR]
Bu komut karşılığı False olursa Büyük-Küçük harf duyarsız çalışır. True olursa Büyük-Küçük harf duyarlı çalışır.
 

Seyit Tiken

Uzman
Uzman
Katılım
23 Ağustos 2005
Mesajlar
4,651
Excel Vers. ve Dili
Excel : 2010
Bu şekilde de oluyor.
Kod:
Sub Düğme1_Tıklat()
Cells.Find("test").Select
End Sub
 

uzmanamele

Uzman
Uzman
Katılım
26 Eylül 2007
Mesajlar
9,421
Excel Vers. ve Dili
excel 2010
merhaba
syn Korhan Ayhan ve Syn Seyit Tiken, ilginize teşekkür ederim.
bul komutunun vba daki kullanımı ile ilgili açıklamanızı not ettim, ilerde kullanabilirim.
sanırım ne istediğimi açıkça belirtemediğim için LookAt:=xlWhole kodu işime yaramayacak.

aşağıdaki kodlarla çalışma kitabındaki adları denetlemeye çalışıyorum
sayfaların C12 hücresindeki veriyi sayfa adı olarak önüne deneme ekleyerek kullanıyorum C12'de ali yazıyorsa bu sayfanın adı deneme_ali oluyor.
başka saydada C12 ye ALİ yazdığımda sayfa adı makrosu çalışmıyor çünkü deneme_ali adında başka bir sayfa var.
benim istediğim diğer sayfalarda C12 hücresini kontrol etmek ve aynı ifade varsa yazılanı iptal ederek adı kullanamazsınız mesajı verdirmek.
kod şuanda zaten eksik ama asıl sorun C12 hücrelerini kontrol ederken ali ve ALİ kelimelerinin aynı olduğunu anlayabilmek.
alternatif çözüm; C12 ye veri girildiğinde bunları büyük harfe çevirmek olur. bu durumda varsa herzaman bulacaktır.

Sub ad_degistir()
On Error Resume Next
Application.ScreenUpdating = False
Dim syf As Worksheet
ad1 = ActiveSheet.Range("C12").Value
For Each syf In Worksheets
uzunluk2 = Len(syf.Name)
ad2 = Right(syf.Name, (uzunluk2 - 7))
If Not syf.Name = ActiveSheet.Name Then
If ad2 = ad1 Then GoTo 10
End If
Next
GoTo 20
10
MsgBox "bu ad zaten var " & vbLf & " başka ad kullanın!!!", vbCritical, "UYARI"
Target = Empty
Target.Select
20
End Sub
 

uzmanamele

Uzman
Uzman
Katılım
26 Eylül 2007
Mesajlar
9,421
Excel Vers. ve Dili
excel 2010
merhaba
varolan sayfa adı veya değiştirilmek istenen yeni sayfa adı büyük harfle veya küçük harfle yazılmış olma ihtimaline karşın aşağıdaki kodları kullandım ve sorunu çözdüm. ilgilenen arkadaşlara teşekkür ederim.
bende makro kodu yazabiliyormuşum :) :)

Sub ad_degistir()
On Error Resume Next
Application.ScreenUpdating = False

Dim syf As Worksheet
sayfaadı = ActiveSheet.Range("C12").Value 'C12 değerini sayfa adı olarak dene
ad1 = Evaluate("=UPPER(""" & sayfaadı & """)") 'denenen adı büyük harfe çevir
ad2 = Evaluate("=LOWER(""" & sayfaadı & """)") 'denenen adı küçük harfe çevir

For Each syf In Worksheets
uzunluk2 = Len(syf.Name)
ad3 = Right(syf.Name, (uzunluk2 - 6)) 'diğer sayfaları kontrol et

If Not syf.Name = ActiveSheet.Name Then 'kendi sayfa adını atla
If ad3 = ad1 Or ad3 = ad2 Then GoTo 10 'kontrol edilen sayfa adı varsa mesaj ver
End If
Next
GoTo 20
10
MsgBox "' " & syf.Name & " '" & " Adında Bir Sayfa Zaten Var " & vbLf & " Başka Ad Kullanın!!!", vbCritical, "UYARI"
ActiveSheet.Range("C12") = "BOŞ"
ActiveSheet.Range("C12").Select
20
Call sayfaadı
End Sub
 
Katılım
27 Mart 2008
Mesajlar
3
Excel Vers. ve Dili
a
merhaba

arkadaşlar merhaba... ben yeni bir katılımcıyım. çok özür dilerim konuya aykırı bişey sormam gerekiyor. başlık açmasını bilmiyorum tekrar özür dilerim. benim bir sıkıntım var ve bunu şöyle diyebilirm Microsoft Outlook ta butona makro yaptı aşağıdaki gibi... şimdi aynı şekilde Outlook Expresse de yapmak istiyorum bana örnek yollayabilecek arkadaş varmı..

Sub SİP1()
Dim olApp As Outlook.Application
Dim olMail As MailItem

Set olApp = New Outlook.Application
Set olMail = olApp.CreateItem(olMailItem)

ThisWorkbook.Sheets("SİP1").Copy

ActiveWorkbook.SaveAs ThisWorkbook.Path & "\" & "BİRİKTİR KAZAN.xls"

With olMail
.To = "alkenet@alkenet.com"
.Subject = "BİRİKTİR KAZAN"
'.BCC = "alkenet@alkenet.com"
.Attachments.Add ActiveWorkbook.FullName
.Display
'.Send
End With

ActiveWorkbook.Close False
Kill ThisWorkbook.Path & "\" & "BİRİKTİR KAZAN.xls"
Set olMail = Nothing
Set olApp = Nothing
'*******************************************************************
'Referanslardan Microsoft Outlook X.X Object Library seçili olmalı.*
'*******************************************************************
End Sub
 
Üst