TC numaralarını ayırma

Katılım
11 Eylül 2013
Mesajlar
6
Excel Vers. ve Dili
XLS, Türkçe
Merhaba, elimde bir liste var ve her bir hücrede, ad, soyad, doğum tarihi, doğum yeri, eğitim seviyesi ve tc numaraları var. Bu liste içerisindeki tc numaralarını başka bir hücreye ayırmak istiyorum. Fakat yukarıdaki bilgilerin hücre içerisindeki sıralanışı düzenli değil.

Örnek veri:

ALİ OSMAN TEZCAN 1983 KAYSERİ 46257896521 LİSANS
OSMAN SERHAT ÖZTÜRK 42979298650 İSTANBUL YÜKSEK LİSANS 1985
FATMA BALCI LİSE ANKARA 39875523670 1988

bu hücrelerden TC numaralarını başka bir hücreye nasıl ayırabilirim? Yardımlarınız için teşekkürler...
 

Erdal

Altın Üye
Katılım
23 Ekim 2006
Mesajlar
1,039
Excel Vers. ve Dili
2021 - Türkçe 32 Bit
Altın Üyelik Bitiş Tarihi
08-10-2029
Merhabalar
TC numaraları 11 hanelidir. Buna göre ayırabilirsiniz. Saygı ve selam ile ...
 
Katılım
11 Eylül 2013
Mesajlar
6
Excel Vers. ve Dili
XLS, Türkçe
TC numaraları

Merhaba,

11 haneli rakamların nasıl ayrılabileceğini gösterebilir misiniz? Teşekkür ederim...
 

Zeki Gürsoy

Uzman
Uzman
Katılım
31 Aralık 2005
Mesajlar
4,333
Excel Vers. ve Dili
Office 2019 (64 bit) - Türkçe
Merhaba,

Örnek bir dosya eklerseniz makro ile çözümü çok kolay olacaktır.
 
Katılım
11 Eylül 2013
Mesajlar
6
Excel Vers. ve Dili
XLS, Türkçe
Örnek Dosya

dosyayı eke koydum, ilginiz için teşekkürler...
 

Ekli dosyalar

halit3

Uzman
Uzman
Katılım
18 Ocak 2008
Mesajlar
12,786
Excel Vers. ve Dili
2003 excell türkçe
ve
2007 excell türkçe
kod:

Kod:
Private Sub CommandButton1_Click()

son = Cells(Rows.Count, "a").End(3).Row
Range("B2:B" & son).ClearContents

For i = 2 To son
aranan1 = Cells(i, 1).Value
For j = 1 To Len(aranan1)
bulunan = Mid(aranan1, j, 11)
If IsNumeric(bulunan) = True Then
If IsNumeric(Left(bulunan, 1)) = True Then
If IsNumeric(Right(bulunan, 1)) = True Then
Cells(i, 2).Value = bulunan
Exit For
End If
End If
End If
Next j
Next i
End Sub
 

Ekli dosyalar

Necdet

Moderatör
Yönetici
Katılım
4 Haziran 2005
Mesajlar
15,353
Excel Vers. ve Dili
Ofis 365 Türkçe
Merhaba,

Bende uğraşmıştım.

Kod:
Sub tcno()
    
    Dim i   As Long, _
        j   As Integer, _
        d
    
    For i = 2 To Cells(Rows.Count, "A").End(3).Row
        d = Split(Cells(i, "A"), " ")
        For j = 0 To UBound(d)
            If IsNumeric(d(j)) And Len(d(j)) = 11 Then
                Cells(i, "B") = d(j)
                Exit For
            End If
        Next j
        
    Next i
    
End Sub
 
Katılım
11 Eylül 2013
Mesajlar
6
Excel Vers. ve Dili
XLS, Türkçe
teşekkürler

çok teşekkür ederim, kodlar işe yaradı, beni büyük zahmetten kurtardınız, elinize sağlık, iyi ki varsınız...
 

Erdal

Altın Üye
Katılım
23 Ekim 2006
Mesajlar
1,039
Excel Vers. ve Dili
2021 - Türkçe 32 Bit
Altın Üyelik Bitiş Tarihi
08-10-2029
Merhabalar
Alternatif olması açısından dosyayı ekldim. Umarım işinize yarar. Saygı ve selam ile...
 

Ekli dosyalar

Zeki Gürsoy

Uzman
Uzman
Katılım
31 Aralık 2005
Mesajlar
4,333
Excel Vers. ve Dili
Office 2019 (64 bit) - Türkçe
"Regular Expression" olmazsa bu konunun tadı çıkmaz. :)

Kod:
Sub test()
    Set reg = CreateObject("VBScript.Regexp")
    reg.Pattern = "\b\d{11}\b" [COLOR=DarkGreen] ' Ömer bey' e teşekkürler[/COLOR]
    
    For sat = 2 To [a1000].End(3).Row
        Set m = reg.Execute(Cells(sat, "a"))
        If m.Count > 0 Then Cells(sat, "b") = m(0)
    Next
End Sub
 
Üst