Excel Forum
ALTIN ÜYELİK Hakkında Bilgi


Geri Git   Excel Forum > EXCEL-Soruları > Diğer Excel Soruları
Atatürk
Şifremi Unuttum

DUYURU SİSTEMİ / REKLAM PANOSU

Diğer Excel Soruları Yukarıdaki başlıklara uymayan Excel sorularınızı bu bölüme gönderebilirsiniz.
Dosya ekleyebilirsiniz

Özel Arama


Yanıtla
 
Paylaş Konu Araçları Görünüm Modları
Eski 23-01-2018, 08:38   #1
CENGAVER1
 
Giriş: 27/09/2010
Şehir: İstanbul
Mesaj: 13
Excel Vers. ve Dili:
Professional Plus 2010
Varsayılan Tek hücre içinden istenilen karaktere sahip birden çok veriyi çekmek

Merhaba,
Basit komutlarla vba kullanıyorum ancak bu işlem benim makro bilgimin çok ilerisinde olduğundan yardımınıza ihtiyaç duyuyorum. Böyle bir konu bulamadım, eğer varsa konuyu refere etseniz de yeterli olur

şirketiminizin mail adreslerinin çektiğimde tek bir hücrede yüzlerce mail adresi geliyor.

Örnek: ESAT KATIK (IT Dept. (Veri Md.(DATA)) - Analist(DATA)) <ESATK@LEGO.COM>; LEVENT KURTBAY (IT Dept. (Veri Md.(DATA)) - Analist(DATA)) <LKURTBAY@LEGO.COM>; MURAT GOKYAR (IT Dept. (Veri Md.(DATA)) - Analist(DATA)) <MURATG@LEGO.COM>; ONEM SAYER (IT Dept. - Tip Muduru(DATA)) <OSAYER@LEGO.COM>; SERKAN AKINCI (IT Dept. (Veri Md.(DATA)) - Analist(DATA)) <SAKINCI@LEGO.COM>; TUGBERK INANC (IT Dept. (Veri Md.(DATA)) - Analist(DATA)) <TINANC@LEGO.COM>; NOLAN BASAR (IT Dept. (Veri Md.(DATA)) - Analist(DATA)) <NBASAR@LEGO.COM>

Bunu içindeki @ karakterine sahip kelimeyi kopyalayarak, veya <ile başlayan her ifadeyi > karakterine kadar kopyalayarak yapabileceğimizi düşündüm. Ancak yapamadım
Bu datanın hepsi A1 hücresinde ise her mail adresini çekerek sırayla B1-B2-B3 şeklinde ne kadar varsa yazdırabilir miyiz acaba?

Yardımcı olabilirseniz minnettar olurum.
Saygılarımla
CENGAVER1 Çevrimdışı   Alıntı Yaparak Cevapla
Eski 23-01-2018, 08:48   #2
Haluk
Özel Üye
 
Giriş: 07/07/2004
Şehir: Türkiye
Mesaj: 5,671
Excel Vers. ve Dili:
Office 2010 - İngilizce
Varsayılan

Makrosuz çözüm isterseniz;

-A sütununu seçin,
-Data > Text to Columns
-Delimited - Next
-Semicolon'u işaretleyin
-Finish

.

B, C, D .... hücrelerinde ayrıştırılmış olarak göreceksiniz.

Düzeltme: Soruyu eksik cevaplamışım. Yukarıdaki önerim sadece e-posta adreslerini değil, ";" ile ayrılmış kısımları bütün olarak alır.

.
__________________
Kod anlatılmaz,yazılır !

(Özel sorularınız için sa4truss@gmail.com)

Bu mesaj en son " 23-01-2018 " tarihinde saat 08:55 itibariyle Haluk tarafından düzenlenmiştir....
Haluk Çevrimdışı   Alıntı Yaparak Cevapla
Eski 23-01-2018, 09:00   #3
CENGAVER1
 
Giriş: 27/09/2010
Şehir: İstanbul
Mesaj: 13
Excel Vers. ve Dili:
Professional Plus 2010
Varsayılan

Haluk bey, cevabınız için teşekkürler,
Şu an zaten manuel kolonlara ayırıp, formüllerle mailleri alıp, başka listelerle kıyaslayarak kontrol sağlıyoruz.Ve bunu 8-10 liste için yapıyoruz
Eğer makronun sorduğum kısmını çözebilirsem diğer kısımlarla birlikte tek bir tuşla tüm işlemleri yaptırmayı düşündük.
CENGAVER1 Çevrimdışı   Alıntı Yaparak Cevapla
Eski 23-01-2018, 09:13   #4
Haluk
Özel Üye
 
Giriş: 07/07/2004
Şehir: Türkiye
Mesaj: 5,671
Excel Vers. ve Dili:
Office 2010 - İngilizce
Varsayılan

O zaman aşağıdaki makroyu deneyin.

A1 hücresindeki dataları B sütununda alt alta ayrıştırıp, sıralar.

Kod: (Rahat kopyalayabilmeniz için tüm kodu seçmenizi sağlar)
Sub Test()
    Dim arrayData As Variant
    arrayData = Split(Range("A1"), ";")
    For Each Data In arrayData
        strTemp = arrayData(i)
        strAnchor = InStr(1, strTemp, "<")
        strMailAddress = Left(Mid(strTemp, strAnchor + 1, 99), Len(Mid(strTemp, strAnchor + 1, 99)) - 1)
        Range("B" & i + 1) = strMailAddress
        i = i + 1
    Next
End Sub
__________________
Kod anlatılmaz,yazılır !

(Özel sorularınız için sa4truss@gmail.com)
Haluk Çevrimdışı   Alıntı Yaparak Cevapla
Eski 23-01-2018, 10:56   #5
Haluk
Özel Üye
 
Giriş: 07/07/2004
Şehir: Türkiye
Mesaj: 5,671
Excel Vers. ve Dili:
Office 2010 - İngilizce
Varsayılan

@CENGAVER1;

Yukarıdaki kod işinize yaradı mı?

.
__________________
Kod anlatılmaz,yazılır !

(Özel sorularınız için sa4truss@gmail.com)
Haluk Çevrimdışı   Alıntı Yaparak Cevapla
Eski 23-01-2018, 11:39   #6
CENGAVER1
 
Giriş: 27/09/2010
Şehir: İstanbul
Mesaj: 13
Excel Vers. ve Dili:
Professional Plus 2010
Varsayılan

Haluk bey,
Kod harika çalıştı teşekkürler,
370 maillik bir listeyi kopyaladım 326 yı sorunsuz aktardı
diğerlerini aktarmama sebebi de kalanları alt satıra atmış
Sanırım hücrenin 32,767 karakter sayısını geçtiği için.

Eğer 2.satırda da aynı işlemi yapıp önceki yaptıklarının üzerine devam edebilir miyiz dersem çok uğraştırır mı sizi acaba?
CENGAVER1 Çevrimdışı   Alıntı Yaparak Cevapla
Eski 23-01-2018, 11:58   #7
Haluk
Özel Üye
 
Giriş: 07/07/2004
Şehir: Türkiye
Mesaj: 5,671
Excel Vers. ve Dili:
Office 2010 - İngilizce
Varsayılan

Merhaba;
Su anda bilgisayar basinda degilim, aksama dogru ancak kodu revize edebilirim.
Selamlar,

.
__________________
Kod anlatılmaz,yazılır !

(Özel sorularınız için sa4truss@gmail.com)
Haluk Çevrimdışı   Alıntı Yaparak Cevapla
Eski 23-01-2018, 12:28   #8
CENGAVER1
 
Giriş: 27/09/2010
Şehir: İstanbul
Mesaj: 13
Excel Vers. ve Dili:
Professional Plus 2010
Varsayılan

Haluk bey hiç sorun değil, şu yaptığınız bile acayip işime yaradı.
Birleştirme için işinize yarar diye son kayıtların görüntüsünü de ekliyorum.
Saygılarımla

https://ibb.co/bxSXuG

CENGAVER1 Çevrimdışı   Alıntı Yaparak Cevapla
Eski 23-01-2018, 13:41   #9
Haluk
Özel Üye
 
Giriş: 07/07/2004
Şehir: Türkiye
Mesaj: 5,671
Excel Vers. ve Dili:
Office 2010 - İngilizce
Varsayılan

Tekrar merhaba;

A1 ve altındaki diğer hücreler için de işlem yapılması için, aşağıdaki kodu deneyebilirsiniz.

Kod: (Rahat kopyalayabilmeniz için tüm kodu seçmenizi sağlar)
Sub Test2()
    Dim arrayData As Variant
    NoA = Cells(Rows.Count, 1).End(xlUp).Row
    For j = 1 To NoA
        arrayData = Split(Range("A" & j), ";")
        i = 0
        For Each Data In arrayData
            strTemp = arrayData(i)
            strAnchor = InStr(1, strTemp, "<")
            strMailAddress = Left(Mid(strTemp, strAnchor + 1, 99), Len(Mid(strTemp, strAnchor + 1, 99)) - 1)
            Range("B" & r + 1) = strMailAddress
            i = i + 1
            r = r + 1
        Next
    Next
    Erase arrayData
End Sub
__________________
Kod anlatılmaz,yazılır !

(Özel sorularınız için sa4truss@gmail.com)
Haluk Çevrimdışı   Alıntı Yaparak Cevapla
Eski 24-01-2018, 08:27   #10
CENGAVER1
 
Giriş: 27/09/2010
Şehir: İstanbul
Mesaj: 13
Excel Vers. ve Dili:
Professional Plus 2010
Varsayılan

Haluk bey harika çalışıyor ancak ufak bir bug var birleşim noktasında
ilk hücrenin sonundaki kişinin kalan datatısnı da maillerin arasına bir satır yaparak koyuyor
sonra aynı kişinin mailiyle devam ediyor bir alt satırdan ekteki gibi

https://ibb.co/eUZgpG
CENGAVER1 Çevrimdışı   Alıntı Yaparak Cevapla
Yanıtla


Konu Araçları
Görünüm Modları

Gönderme Kuralları
You may not post new threads
You may not post replies
You may not post attachments
You may not edit your posts

BB code is Açık
SimgelerAçık
[IMG] kodu Açık
HTML kodu Kapalı


Saat 05:15


Bu forum Elit NET - www.elitnet.com.tr tarafından sunulmaktadır.

Excel Eğitimi - Mobil Uygulama - Çorlu - Çorlu Web Tasarım -- Beylikdüzü mali müşavir - Beylikdüzü mali müşavir - Lingerie - Dyeing Machine - Karton Bardak- Karton Bardak- Çorlu Dil Konuşma Terapisti- Çorlu Dil Konuşma Terapisti- Çorlu Konuşma Terapisti- Çorlu Konuşma Terapisti- Çorlu Özel Eğitim- Site Yönetimi- Pronet Tekirdağ- Çorlu Kamera- Pronet Edirne- Pronet Çorlu- Çorlu Araç Takip- Rampa- Çorlu İnternet Sitesi- Çorlu Sürücü Kursu- Şişli Avukat- Çorlu Etüt- İstanbul Botanik- Çorlu Sigorta- Kağıt Bardak- Kağıt Bardak- Çorlu Havuz- Çorlu Havuz- Çorlu Perde Yıkama- Okul Danışmanlık- ADR'li taşıma kabı imalatı- Mekanik Tesisat- Çorlu Grafik Tasarım- Çorlu Sondaj- Çorlu Etüt- Futbol Cafe- Beylikdüzü Temizlik- Çorlu Kurs- Çorlu Ders- İzmit Mimar- Hurda Bakır Kablo- Hurda Bakır Kablo- Çorlu Pronet- Çorlu Yönetim- Çorlu Apartman Yönetimi- Çorlu Marangoz- Çorlu Avukat- Çorlu Su Arıtma- Çorlu Kompresör- İstanbul İnşaat-
Powered by vBulletin Version 3.7.2
Copyright ©2000 - 2018, Jelsoft Enterprises Ltd.
Advertisement System V2.6 By   Branden