• DİKKAT

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

Telefon No Ayırma

Katılım
7 Ağustos 2011
Mesajlar
319
Excel Vers. ve Dili
2003-2010 Türkçe
Merhaba Arkadaşlar,
Form sayfasından epeyce araştırdım fakat ilgili bir örnek bulamadım. D sütununda normal telefon numaraları ve normal telefon numaraları ile birlikte aynı hücreye yazılmış cep telefon numaraları var. İstediğim normal ve cep telefon numaraları aynı hücre içinde olanları ayırmak. Detaylı örnek ekli dosyada mevcut.
Yardımlarınız için şimdiden teşekkür ederim.
 

Ekli dosyalar

Verilerin bulunduğu sütunu seçiniz. Veri>Metni Sütunlara Dönüştür>Sınırlandırılmış> Diğer şeçiniz ve yandaki kutucuğa - yazanız. Tamam'a basınca işlem tamamdır. Dosyaya yukarıdaki işlem uygulanmıştır.
 

Ekli dosyalar

E1 hücresi için
Kod:
=PARÇAAL(D1;1;7)
F1 hücresi için
Kod:
=PARÇAAL(D1;9;14)
 
İlginiz için teşekkür ederim. Yalnız sorunu makro ile nasıl çözebiliriz. Örnek: -05'le başlayan telefon numaralarını E sütununa aktarmak istiyordum. Örnekte unutmuştum aynı hücrede 4213252-2354789 olan telefon numaraları da var.Bunları ayırmak istemiyorum.
 
Yada F1 için
Kod:
=EĞERHATA(PARÇAAL(D1;BUL("-";D1)+1;BUL("-";D1)+11);" ")
 
Son düzenleme:
İlginiz için teşekkür ederim. Yalnız sorunu makro ile nasıl çözebiliriz. Örnek: -05'le başlayan telefon numaralarını E sütununa aktarmak istiyordum. Örnekte unutmuştum aynı hücrede 4213252-2354789 olan telefon numaraları da var.Bunları ayırmak istemiyorum.

Merhaba,
Örnek dosyanıza göre çalışacak şekilde aşağıdaki kodları deneyebilirsiniz. Sayfa1 in kod penceresine aşağıdaki kodları kopyalayıp yapıştırınız.
Kod:
Sub telf_ayir()
Dim reg As Object, veri As Object

Set reg = CreateObject("vbscript.regexp")
reg.Global = True
reg.Pattern = "0?5[3450][0-9]\s?[0-9]{3}\s?[0-9]{2}\s?[0-9]{2}"
For i = 1 To 6
    Set veri = reg.Execute(Cells(i, 4))
    If veri.Count > 0 Then
        tlf = veri(0)
        Range("D" & i).Value = Replace(Range("D" & i).Value, tlf, "")
        Range("E" & i).Value = tlf
    End If
Next i
End Sub
 
Son düzenleme:
Makro ile çözüm için, alternatif olarak; aşağıdaki kodu da deneyebilirsiniz.
Not:Sayın genesis_vision'un tarif ettiği uygulamanın kod ile tanımlamasıdır.
Kod:
Sub TelefonAyir()
    With Range("D1:D" & Cells(Rows.Count, "D").End(xlUp).Row)
    .TextToColumns Destination:=Range("D1"), _
    DataType:=xlDelimited, _
    OtherChar:="-"
        End With
End Sub
 
Merhaba,
Örnek dosyanıza göre çalışacak şekilde aşağıdaki kodları deneyebilirsiniz. Sayfa1 in kod penceresine aşağıdaki kodları kopyalayıp yapıştırınız.
Kod:
Sub telf_ayir()
Dim reg As Object, veri As Object

Set reg = CreateObject("vbscript.regexp")
reg.Global = True
reg.Pattern = "0?5[3450][0-9]\s?[0-9]{3}\s?[0-9]{2}\s?[0-9]{2}"
For i = 1 To 6
    Set veri = reg.Execute(Cells(i, 4))
    If veri.Count > 0 Then
        Cells(i, 5).Value = veri(0)
   
    End If
Next i

End Sub

Antonio Hocam,
Yardımın için çok teşekkür ederim.D sütunundan E sütununa aktarılan cep telefon numarasını silebilir miyiz? Örnek D sütununda yalnız normal telefon numarası kalacak. E sütununda cep telefonu olacak şekilde.
 
6 No'lu Mesajımı isteğiniz doğrultusunda güncelledim.
 
Emeği geçen herkese çok teşekkür ederim.
 
Geri
Üst