• DİKKAT

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

macro içinde çalışan bir komut kütüphanesi yapmak

Katılım
12 Mayıs 2009
Mesajlar
4
Excel Vers. ve Dili
excel macro
yaptığım program da, bir hücredeki text'i büyük harfe çevirmek istiyorum. çünkü tüm arama çeşitlerinde ı ve i aslında farklı karakterler.
bu yüzden metindeki tüm "İ" ve "ı" ları, "i"ye çeviren bir kod yazdım.
ama bu kodu yazdığım macronun pek çok yerinde kullanacağım. bu sebepten her seferinde aynı kodu kopyalayıp yapıştırmak yerine. tıpkı hücrelerde kullandığımız fonksiyonları yazdığımız gibi, bir kütüphane öğesi yapmak istiyorum. çalışma prensibi UCASE(değişken) gibi olacak.
örneğin CEVIR(değişken) gibi çalışmasını istiyorum.
bunun mutlaka basit bi yöntemi vardır lakin ben bulamadım yardımcı olursanız sevinirim.
 

Ekli dosyalar

Private Sub Worksheet_Change(ByVal Target As Range)
ddd = 1: III1 = "ı"
aaaa = Target
zz:
bbb = InStr(ddd, aaaa, III1)
If bbb <> 0 Then
ddd = bbb + 1
Mid(aaaa, bbb, 1) = "i"
GoTo zz
End If
If III1 = "ı" Then III1 = "İ": ddd = 1: GoTo zz
sson = UCase(aaaa)
Target = sson
End Sub

sayfanın kod bölümüne kopyalayın.
 
hatta bu kodu thisworkbook'a kopyalarsan bütün sayfalara geçerli olur,

Private Sub Workbook_SheetChange(ByVal Sh As Object, ByVal Target As Range)
ddd = 1: III1 = "ı"
aaaa = Target
zz:
bbb = InStr(ddd, aaaa, III1)
If bbb <> 0 Then
ddd = bbb + 1
Mid(aaaa, bbb, 1) = "i"
GoTo zz
End If
If III1 = "ı" Then III1 = "İ": ddd = 1: GoTo zz
sson = UCase(aaaa)
Target = sson
End Sub
 
güzel bir yöntem ama benim yapmak istediğim bu değil ki.
benim istediğim şu:

kod
kod
ab=ucase(değişken)
kod

nasılki burda ucase() fonksiyonu değişkendeki ( ki bunu ben seçeceğim :) ) tüm küçük harfleri büyük harfe çeviriyor. fakat ı harfinde problem yaratıyor. benim yapmak istediğim ucase() fonksiyonu yerine macronun içinde kullanabileceğim kendi fonksiyonum, mesela BHARF() gibi. böylece ı larıda i ye çevirecek. sonra büyük harfe çevirecek.
 
Son düzenleme:
Merhaba,
Eğer sorunuzu tam anladıysam aşağıdaki kod sorunu düzeltecektir.

Kod:
Private Sub CommandButton1_Click()
[b1] = UCase(Replace(Replace([a1], "i", "İ"), "ı", "I"))
End Sub
 

Ekli dosyalar

tam olarak istediğim bu da değil ama kesinlikle sorunu çözecek kadar kısa kullanışlı. ilginiz için teşekkürler.
 
Merhaba,

Fonksiyon olarak hazırlayıp kullanabilirsiniz.

Kod:
Private Sub TextBox1_Change()
TextBox1 = [COLOR=red][B]BuyukHarf[/B][/COLOR](TextBox1)
End Sub

Aşağıdaki Fonksiyon Bir Modülde Olabilir.

Kod:
Function [COLOR=red][B]BuyukHarf[/B][/COLOR](Veri As String)
BuyukHarf = UCase(Replace(Replace(Veri, "i", "İ"), "ı", "I"))
End Function
 

Ekli dosyalar

Geri
Üst