Hücreye Girilen Sayısal veya Metinsel Verilerden Bazılarını Gizlemek

Katılım
29 Mart 2013
Mesajlar
142
Excel Vers. ve Dili
office 2010
Herkese Merhabalar.

1. Sorum : A1 hücresine 11 haneli TC numarası girilince sadece ilk 4 ve son 3 hanesinin görünmesini istiyorum
Örneğin: A1 hücresine 12345678912 girdim diyelim 1234*****912 şeklinde görünmesini sağlayabilir miyiz?

2.Sorum : A1 hücresine girilen isim soyisim şeklinde metinsel verinin isim ve soyismin ilk ve son harfleri görünmesini sağlayabilir miyiz? Mesela Cemil TEMEL'i "CT" olarak gösterecek gibi.
Şimdiden teşekkürler.
 

YUSUF44

Destek Ekibi
Destek Ekibi
Katılım
4 Ocak 2006
Mesajlar
12,073
Excel Vers. ve Dili
İş : Ofis 365 - Türkçe
Ev: Ofis 365 - Türkçe
P sütununu yardımcı sütun olarak kullanarak bir kod hazırladım. Aşağıdaki kodu ilgili sayfanın kod bölümüne (sayfa adına sağ tıklayıp kod görüntüle deyince açılan sayfaya) yapıştırarak deneyin. A1:A100 aralığına 11 haneli sayı girildiğinde belirttiğiniz gibi 4 haneyi yıldız olarak gösterir. İçinde boşluk olan metin girildiğinde, ilk iki kelimenin baş harflerini yazar. Asıl yazdığınız veri ise P sütununda gösterilir. İsterseniz P sütununu gizlersiniz.:

PHP:
Private Sub Worksheet_Change(ByVal Target As Range)
On Error Resume Next
If Intersect(Target, [A1:A100]) Is Nothing Then Exit Sub
If Selection.Count > 1 Then Exit Sub
If IsNumeric(Target) Then
    If Len(Target) = 11 Then
        Target.Offset(0, 15) = Target
        Application.EnableEvents = False
            Target = Left(Target, 4) & "****" & Right(Target, 3)
        Application.EnableEvents = True
    Else
        MsgBox "TC kimlik numarası 11 hane olmalıdır!", vbCritical
        Application.EnableEvents = False
            Target.Offset(0, 15) = ""
            Target = ""
        Application.EnableEvents = True
    End If
Else
    Target.Offset(0, 15) = Target
    If Not WorksheetFunction.IsError(WorksheetFunction.Find(" ", Target)) Then
        Application.EnableEvents = False
            Target = Left(Target, 1) & Mid(Target, WorksheetFunction.Find(" ", Target) + 1, 1)
        Application.EnableEvents = True
    End If
End If
End Sub
 
Katılım
29 Mart 2013
Mesajlar
142
Excel Vers. ve Dili
office 2010
P sütununu yardımcı sütun olarak kullanarak bir kod hazırladım. Aşağıdaki kodu ilgili sayfanın kod bölümüne (sayfa adına sağ tıklayıp kod görüntüle deyince açılan sayfaya) yapıştırarak deneyin. A1:A100 aralığına 11 haneli sayı girildiğinde belirttiğiniz gibi 4 haneyi yıldız olarak gösterir. İçinde boşluk olan metin girildiğinde, ilk iki kelimenin baş harflerini yazar. Asıl yazdığınız veri ise P sütununda gösterilir. İsterseniz P sütununu gizlersiniz.:

PHP:
Private Sub Worksheet_Change(ByVal Target As Range)
On Error Resume Next
If Intersect(Target, [A1:A100]) Is Nothing Then Exit Sub
If Selection.Count > 1 Then Exit Sub
If IsNumeric(Target) Then
    If Len(Target) = 11 Then
        Target.Offset(0, 15) = Target
        Application.EnableEvents = False
            Target = Left(Target, 4) & "****" & Right(Target, 3)
        Application.EnableEvents = True
    Else
        MsgBox "TC kimlik numarası 11 hane olmalıdır!", vbCritical
        Application.EnableEvents = False
            Target.Offset(0, 15) = ""
            Target = ""
        Application.EnableEvents = True
    End If
Else
    Target.Offset(0, 15) = Target
    If Not WorksheetFunction.IsError(WorksheetFunction.Find(" ", Target)) Then
        Application.EnableEvents = False
            Target = Left(Target, 1) & Mid(Target, WorksheetFunction.Find(" ", Target) + 1, 1)
        Application.EnableEvents = True
    End If
End If
End Sub
Çok teşekkür ederim cevabınız için kod işe yaradı ancak ben söylemeyi unuttum isim soyisim A1'den başlayacak, TC kimlik no ise B1 den başlayacak, yani farklı sütunlar için olacak. Sizin kod üstünde uğraştım beceremedim. Yardımcı olursanız sevinirim
 

YUSUF44

Destek Ekibi
Destek Ekibi
Katılım
4 Ocak 2006
Mesajlar
12,073
Excel Vers. ve Dili
İş : Ofis 365 - Türkçe
Ev: Ofis 365 - Türkçe
Aşağıdaki gibi deneyin:

PHP:
Private Sub Worksheet_Change(ByVal Target As Range)
On Error Resume Next
If Intersect(Target, [A1:A100]) Is Nothing Then GoTo 10
If Selection.Count > 1 Then Exit Sub
Target.Offset(0, 15) = Target
If Not WorksheetFunction.IsError(WorksheetFunction.Find(" ", Target)) Then
    Application.EnableEvents = False
        Target = Left(Target, 1) & Mid(Target, WorksheetFunction.Find(" ", Target) + 1, 1)
    Application.EnableEvents = True
End If
10:
If Intersect(Target, [B1:B100]) Is Nothing Then Exit Sub
If IsNumeric(Target) Then
    If Len(Target) = 11 Then
        Target.Offset(0, 15) = Target
        Application.EnableEvents = False
            Target = Left(Target, 4) & "****" & Right(Target, 3)
        Application.EnableEvents = True
    Else
        MsgBox "TC kimlik numarası 11 hane olmalıdır!", vbCritical
        Application.EnableEvents = False
            Target.Offset(0, 15) = ""
            Target = ""
        Application.EnableEvents = True
    End If
End If
End Sub
 
Katılım
29 Mart 2013
Mesajlar
142
Excel Vers. ve Dili
office 2010
Aşağıdaki gibi deneyin:

PHP:
Private Sub Worksheet_Change(ByVal Target As Range)
On Error Resume Next
If Intersect(Target, [A1:A100]) Is Nothing Then GoTo 10
If Selection.Count > 1 Then Exit Sub
Target.Offset(0, 15) = Target
If Not WorksheetFunction.IsError(WorksheetFunction.Find(" ", Target)) Then
    Application.EnableEvents = False
        Target = Left(Target, 1) & Mid(Target, WorksheetFunction.Find(" ", Target) + 1, 1)
    Application.EnableEvents = True
End If
10:
If Intersect(Target, [B1:B100]) Is Nothing Then Exit Sub
If IsNumeric(Target) Then
    If Len(Target) = 11 Then
        Target.Offset(0, 15) = Target
        Application.EnableEvents = False
            Target = Left(Target, 4) & "****" & Right(Target, 3)
        Application.EnableEvents = True
    Else
        MsgBox "TC kimlik numarası 11 hane olmalıdır!", vbCritical
        Application.EnableEvents = False
            Target.Offset(0, 15) = ""
            Target = ""
        Application.EnableEvents = True
    End If
End If
End Sub
Çok sağol şimdi oldu. Ellerine sağlık.
 

YUSUF44

Destek Ekibi
Destek Ekibi
Katılım
4 Ocak 2006
Mesajlar
12,073
Excel Vers. ve Dili
İş : Ofis 365 - Türkçe
Ev: Ofis 365 - Türkçe
Aslında ilki de olmuştu. Çünkü ilk mesajınızda hem TC numarası hem de ad soyad için A1 hücresinin kullanılacağını belirtmiştiniz.

Herkese Merhabalar.

1. Sorum : A1 hücresine 11 haneli TC numarası girilince sadece ilk 4 ve son 3 hanesinin görünmesini istiyorum
Örneğin: A1 hücresine 12345678912 girdim diyelim 1234*****912 şeklinde görünmesini sağlayabilir miyiz?

2.Sorum : A1 hücresine girilen isim soyisim şeklinde metinsel verinin isim ve soyismin ilk ve son harfleri görünmesini sağlayabilir miyiz? Mesela Cemil TEMEL'i "CT" olarak gösterecek gibi.
Şimdiden teşekkürler.
 
Katılım
29 Mart 2013
Mesajlar
142
Excel Vers. ve Dili
office 2010
Aslında ilki de olmuştu. Çünkü ilk mesajınızda hem TC numarası hem de ad soyad için A1 hücresinin kullanılacağını belirtmiştiniz.
Aynen öyle ben ilkinde tam anlatamadım istediğimi. Sorun benden kaynaklandı.
 
Üst