• DİKKAT

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

cümleyi ayırıp istenenleri bulmak

ismailozkan4224

Altın Üye
Katılım
22 Kasım 2011
Mesajlar
175
Excel Vers. ve Dili
2007 türkçe
slm.değerli arkadaşlar.gönderdiğim dosyada kişilerin bilgileri bitişik bir vaziyette.buna benzer bintaıne var.ben parçalara ayır komutu ile ilk önce en baştaki 1. virgülden önceki ad soyad bölümünü,sonra içinde @ ifadesi olanları yani mailleri( buda bazen ikişer tane olabiliyor),enson olarakta telefon numaralarını (2 veya 3 tane olabilir.bazen cep telefonu bazen de mobil diye gelebiliyor.örnekte var),ve okul ifadesinden sonra gelen okul isimlerini diğer sayfaya aşağıdaki gibi mükerrer olmadan aktarmak istiyorum.
ad soyad telefon1 telefon2 telefon3 mail1 mail2 mail3 diye ayırmak istiyorum
şimdiden teşekkürler.
 

Ekli dosyalar

Son düzenleme:
Merhaba,

Şu fonksiyonları kullanabilirsiniz. Ancak 1 den fazla telefon ve eposta içeren örnek olsa fonksiyon daha kullanışlı olacak.

Kullanım örnekleri:

=adsoyad(A2)
Yesin Koşar

=ceptel(A2)
05555555555

=eposta(A2)
hgfhhgfhgf_84@hotmail.com

Kod:
Function adsoyad(r As Range) As String
    With CreateObject("VBScript.Regexp")
        .Pattern = "^[\wığüşöçĞÜŞİÖÇ\s]+(?=,)"
        adsoyad = .Execute(r).Item(0)
    End With
End Function

Function ceptel(r As Range) As String
    With CreateObject("VBScript.Regexp")
        .Pattern = "Cep Telefonu,(\d+),"
       ceptel = .Execute(r).Item(0).submatches(0)
    End With
End Function

Function eposta(r As Range) As String
    With CreateObject("VBScript.Regexp")
        .Pattern = "E-POSTA,(.+?),"
       eposta = .Execute(r).Item(0).submatches(0)
    End With
End Function
 
Zeki Bey,
Söylediğiniz şekilde dosyada uyguladım.
Ancak formüller HATA veriyor (#NAME?).
Dosyayı ekliyorum, kontrol edebilir misiniz, nerede hata var acaba?
 

Ekli dosyalar

Fonksiyonları module yapıştırmanız gerekiyordu. Sayfaların kod pencersinde çalışmaz.

Dosyayı düzenleyip ekliyorum.
 
zeki bey 2 tane sorum olacak.
1. cisi 2. 3. ceptele hata veriyor mantığını açıklayabilirseniz düzenlemeye çalışacağım
2. cisi E-POSTA YAZMASI MI GEREKİYOR YOKSA E-POSTALARI DİREK Mİ ALGILIYOR.MESELA BAZILARINDA E-POSTA YERİNE HOME,BAZILARINDA WORK DİYE YAZIYOR.AYNI SORUM CEP TELEFONLARINDADA GEÇERLİ.
 
zeki bey 2 tane sorum olacak.
1. cisi 2. 3. ceptele hata veriyor mantığını açıklayabilirseniz düzenlemeye çalışacağım
2. cisi E-POSTA YAZMASI MI GEREKİYOR YOKSA E-POSTALARI DİREK Mİ ALGILIYOR.MESELA BAZILARINDA E-POSTA YERİNE HOME,BAZILARINDA WORK DİYE YAZIYOR.AYNI SORUM CEP TELEFONLARINDADA GEÇERLİ.


Her türlü olasılığı içerebilecek örnek eklememekte ısrar ediyorsunuz. Bunu ilk mesajımda da belirttim. Mevcut örneğinizden yola çıkarak çözümler eksik kalıyor.

2. ve 3. tel konusunda, işin mantığında "05" ile başlayıp toplam 11 basamaklı sayıları arayıp bulma vardır. Bu konuda da yine yukarıdaki cümlem geçerlidir.
 
dosyayı güncelledim.konuyu anlamaya çalışmıştım.herşeyi sormayayım diye.birde dediğim gibi 2. ve 3. lerde hata veriyor.tşk.
 

Ekli dosyalar

Son düzenleme:
Fonksiyon son halini aldı sanırım. Dosyanıza da uyarladım.

Kod:
Function adsoyad(r As Range) As String
  With CreateObject("VBScript.Regexp")
        .Global = True
        .MultiLine = True
        .Pattern = "^[\wığüşöçĞÜŞİÖÇ\s]+(?=,)"
        adsoyad = .Execute(r).Item(0)
    End With
End Function

Function ceptel(r As Range, kacinciTel As Integer) As String
    With CreateObject("VBScript.Regexp")
        .Global = True
        .MultiLine = True
        .Pattern = "0[2-5]\d{9}"
       ceptel = .Execute(r).Item(kacinciTel - 1)
    End With
End Function

Function eposta(r As Range, kacinciMail As Integer) As String
    With CreateObject("VBScript.Regexp")
        .Global = True
        .MultiLine = True
        .Pattern = ",([\w.]+@[\w.]+),"
       eposta = .Execute(r).Item(kacinciMail - 1).submatches(0)
    End With
End Function
 

Ekli dosyalar

Sorun nerededir? Ekli resmi inceleyin.


attachment.php
 

Ekli dosyalar

  • Adsız.jpg
    Adsız.jpg
    99.8 KB · Görüntüleme: 30
özür diliyorum.ben o mesajı görmedim.
 
Geri
Üst