• DİKKAT

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

Telefon numarasından konuşanın ismi bulabilmek

assenucler

Altın Üye
Katılım
19 Ağustos 2004
Mesajlar
3,595
Excel Vers. ve Dili
Office Pro Plus 2024 64 bit
Değerli dostlar;


Öncelikle yeni yılın ülkemize ve herkese barış, huzur, mutluluk ve iyi şanslar getirmesini dilerim

Ekli dosyada, " Veriler " ve " Liste " adlı 2 sayfa var.
Veriler'de telefon numarası ve kullanan kişiler bulunmaktadır.

Liste'de ise, bir telefon operatörünün excel formatında açılan 3000'e yakın telefon numaraları var. Ben kısaltılmış kısmını ekledim.

Makro ile Liste sayfasındaki telefon numarasının yazılı olduğu satırın "Y" sütununda, kullanan kişinin ad ve soyadının yazılması yapacağım filtrelemede işimi çok kolaylaştıracaktır. Ancak, excel'e kaydedilen operatör kayıtlarından her nasılsa, filtreleme de yapamıyorum. Ne yapmamı önerirsiniz?

Yardımınız için önceden teşekkürler.
 

Ekli dosyalar

Merhaba.
Aşağıdaki kod ile sanırım istediğiniz sonuç alınabiliyor.
Kod:
Sub BUL()
Dim l As Worksheet: Set l = Sheets("LISTE")
Dim v As Worksheet: Set v = Sheets("VERILER")
Application.ScreenUpdating = False: Application.Calculation = xlCalculationManual
    l.Range("Y:Y").ClearContents: alan = "C2:C" & v.[A65536].End(3).Row
    v.Range("C2:C" & v.[B65536].End(3).Row).NumberFormat = "@"
For vsat = 2 To v.[B65536].End(3).Row
    v.Cells(vsat, 3) = 9 & WorksheetFunction.Rept("0", 11 - Len(v.Cells(vsat, 1))) & v.Cells(vsat, 1)
Next
For lsat = 16 To l.[C65536].End(3).Row
    If WorksheetFunction.CountIf(v.Range(alan), l.Cells(lsat, 6)) = 0 Then GoTo 10
    l.Cells(lsat, 25) = v.Cells(WorksheetFunction.Match(l.Cells(lsat, 6) & "", v.Range(alan), 0) + 1, 2)
10: Next
Application.ScreenUpdating = True: Application.Calculation = xlCalculationAutomatic
    v.Range(alan).ClearContents: MsgBox "BİTTİ"
End Sub
 
Ömer Bey, o kadar uzatmaya gerek yok. ;)

Bu kodlar yeterli olacaktır.

Kod:
[FONT="Trebuchet MS"][SIZE="2"]Sub Emre()
    With Sayfa2
         For i = 2 To .Range("A65536").End(3).Row
         Set evn = Sayfa1.UsedRange.Find(.Cells(i, 1).DisplayFormat.NumberFormat & .Cells(i, 1).Value, , , 1)
         If Not evn Is Nothing Then Sayfa1.Cells(evn.Row, "Y").Value = .Cells(i, 2).Value
        Next i
    End With
End Sub[/SIZE][/FONT]
 
Sayın Ömer Baran,


Mesajınıza biraz önce bakabildim. Yanıtınızdaki kodu "Liste" sayfası bölümüne yazdım. Kısa süredeki yanıtınıza çok teşekkür ederim.

Bu arada, yeni yılınızı kutlar; sevdiklerinizle birlikte sağlık, huzur, mutluluk ve şans dolu nice yıllar dilerim.

Sevgi ve saygılar.
 
Sayın Murat Osma,


Öncelikle yeni yılınızı en içten dileklerimle kutlar; sevdiklerinizle birlikte sağlık, huzur, mutluluk ve şans dolu nice yıllar dilerim.

Üstadım, lisanslı Office 2016 kullanıyorum.

İlginiz için önce teşekkür ederim. Kodunuzu "Liste" sayfası bölümüne ekledim. İlk kez kullandığımda, 900000000001 telefonun ismini "Y" sütun satırına doğru ismi yazdı.

Liste'deki kodu 900000000002 yazıp, ya da silip yazdığımda olumlu sonuç alamadım. Acaba, eksik yaptığım bir şey mi var?

İlginizi rica edeceğim.

Sevgi ve saygılar.
 

Ekli dosyalar

Tekrar merhaba.
Aşağıdaki şekilde biraz daha iyi oldu sanki, test ediniz.
Kod içerisinde sayfa isimleri kullanıldığından Modül'e de eklenebilir, sayfanın kod bölümüne de.
Kod:
[B]Sub BUL_BRN()[/B]
Sheets("LISTE").Range("Y:Y").ClearContents
For lsat = 16 To Sheets("LISTE").[C65536].End(3).Row
    For vsat = 2 To Sheets("VERILER").[B65536].End(3).Row
        If 0 + (9 & WorksheetFunction.Rept("0", 11 - Len(Sheets("VERILER").Cells(vsat, 1))) _
            & Sheets("VERILER").Cells(vsat, 1)) <> Sheets("LISTE").Cells(lsat, 6) Then GoTo 10
            Sheets("LISTE").Cells(lsat, 25) = Sheets("VERILER").Cells(vsat, 2)
10: Next: Next
[B]End Sub[/B]
 
Zaman ayırarak getirdiğiniz çözüm için teşekkürler. Her 2 kod çalışıyor.

Sağ olun var olun.
 
Ahmet Bey yeni yıl size de sağlık, mutluluk, huzur getirsin, eksik olmayın.

Sizin hücre biçimlendirmenizde sorun var görünüyor.
Sıfırları sayarsanız eşit olmadığını göreceksiniz. Biçimlendirmedeki 0 sayısı ile hücredeki 0 sayısını eşitlerseniz sonuç alırsınız.

İyi tatiller.
 
Teşekkürler Murat Bey.
 
Geri
Üst