• DİKKAT

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

hücredeki değeri * kullanarak kodlama

  • Konbuyu başlatan Konbuyu başlatan peleryn
  • Başlangıç tarihi Başlangıç tarihi
Katılım
10 Mayıs 2009
Mesajlar
1,080
Excel Vers. ve Dili
2003 türkçe
Herkese Merhabalar;

Ekli dosyadaki soru:Bir hücrede bulunan değerin örneğin bu değer "ali gel" olsun
bir başka hücrede "*** ***" şeklinde görünmesi ve bu şekilde kodlanmış olan hücreye veri girdiğimde ilk hücredeki metinle aynı yere denk gelen harflerin yazılı olarak görünmesi diğerlerinin "*" olarak kalması ile ilgili bir soru.

Umarım açıklayıcı olabilmişimdir.Dosyada görsel olarak daha ayrıntılı bir açıklama mevcut..

İlgilenecek olan herkese teşekkür ederim.
 

Ekli dosyalar

Selamlar,

Aşağıdaki kodu denermisiniz. Sayfanın kod bölümüne uygulayınız.

Kod:
Private Sub Worksheet_Change(ByVal Target As Range)
    Dim Veri As Variant, Uzunluk As Integer
    
    Application.EnableEvents = False
    If Target <> "" And Target.Address = "$F$10" Then
        Range("F13") = Empty
        For X = 1 To Len(Target)
            If Mid(Target, X, 1) <> " " Then
                Range("F13") = Range("F13") & "*"
            Else
                Range("F13") = Range("F13") & " "
            End If
        Next
    
    ElseIf Target <> "" And Target.Address = "$F$13" Then
        Veri = Target
        Target = Empty
        Uzunluk = IIf(Len(Veri) = Len(Range("F10")), Len(Veri), Len(Range("F10")))
        
        For X = 1 To Uzunluk
            If Mid(Veri, X, 1) = Mid(Range("F10"), X, 1) Then
                Target = Target & Mid(Range("F10"), X, 1)
            Else
                Target = Target & "*"
            End If
        Next
    End If
    Application.EnableEvents = True
End Sub
 
Korhan Hocam ;

Ellerinize sağlık çok güzel olmuş.Soruyu yollarken Korhan Hocam bu soruyu görürse yapar diye düşünüyordum tam da sizden cevap geldi çok mutlu oldum:)

Hocam her yönüyle harika olmuş sadece tek bir ricam olacak.Denerseniz göreceksiniz F13 hücresine F10 dakinden daha uzun bir metin girin bu durumda metnin sonuna fazladan "*" işareti ekliyor.Bu fazla girilen değerleri yok sayarak hep F10'daki verinin boyutu kadar işlem yapsa benim için mükemmel olacak.

Daha anlaşılır olsun diye kısaca örnekleyeyim:

F10="ali"
F13'e girdiğimiz değer "aloş" olsun
Bu durumda kodların şu haliyle F13'teki değeri "al**" olarak düzenliyor.
Oysa F10 daki değerim 3 harfli.İstediğim F13'e girdiğim değerde fazla olan "ş" değerini yok sayması ve bu değer için bir yıldız koymaması sürekli Len([f10])=Len([f13]) işlemini yapmasını sağlayabilirseniz çok sevinirim.
 
Selamlar,

Peki tam tersi durum söz konusu mu?

F10 = "ALİ" (3 Karakter)
F13 = "AK" (2 Karakter)

Bu durumda sonucun ne olmasını istiyorsunuz?
 
Hocam her halükarda F13 F10'a eşit olacak.F13'teki *'ların dizilimi F10'un bir şablonu gibi iş yapacak.Yazılan değer ne olursa olsun uzunlukları ve boşlukların yeri aynı kalacak ve uygun harfin denk gelmediği yerler * olarak işaretli duracak.

F13="ali"
F10="ak" ise F10="a**" şeklinde..
F13="ali"
F10="aloş" ise F10="al*" şeklinde görüntülenecek.
 
Selamlar,

Üstteki mesajımdaki kodu yeniledim dener misiniz?
 
Hocam tek kelimeyle harika tam anlattığım gibi çalışıyor.Emeğinize sağlık çok teşekkür ederim.
 
Geri
Üst