boşluktan ayırma

Katılım
18 Ağustos 2013
Mesajlar
7
Excel Vers. ve Dili
Türkçe 2010
Cells(1,1) hücresindeki "ABC 100A" string ifadesini boşluktan ayırıp "ABC" yi Cellls(1,2) ye yazdırmak istiyorum.nasıl bi fonksiyon kullanmam gerekiyor ?
 

Necdet

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

Kod:
Cells(1, 2) = Split(Cells(1, 1), " ")(0)
 
Katılım
18 Ağustos 2013
Mesajlar
7
Excel Vers. ve Dili
Türkçe 2010
Teşekkür ederim bu kod işimi gördü.
Fakat bi sorum daha olacak. Sondan ayırma yapmak istiyorsam nasıl olacak.
Örneğin ; "ABC 98 KLM" bu stringi sondan başlıyarak ilk boşluğa geldiğinde
"ABC 98"i bi hücreye "KLM" yi bi hücreye yazsın.
Ama sondan başlaması önemli.
 

Necdet

Moderatör
Yönetici
Katılım
4 Haziran 2005
Mesajlar
15,548
Excel Vers. ve Dili
Ofis 365 Türkçe
Teşekkür ederim bu kod işimi gördü.
Fakat bi sorum daha olacak. Sondan ayırma yapmak istiyorsam nasıl olacak.
Örneğin ; "ABC 98 KLM" bu stringi sondan başlıyarak ilk boşluğa geldiğinde
"ABC 98"i bi hücreye "KLM" yi bi hücreye yazsın.
Ama sondan başlaması önemli.

Kod:
Cells(1, 2) = Split(Cells(1, 1), " ")(0)
Merhaba,

Split(Cells(1, 1), " " fonksiyonu hücreyi Boşluğa göre böler

Bu durumda hücre ABC, 98 ve KLM olarak sanki 3 ayrı sözcükmüş gibi düşünebilirsiniz.

Split fonksiyonun sonundaki (0) bölünen bu sözcüklerin ilkini, (1) ikincisini (yani 98), (2) ise son sözcüğü yani KLM yi bize verirdi.

Bu durumda eğer hücredeki yapınız "ABC 98 KLM" gibi ise yani 2 boşluk var ise yukardaki yapıyı kullanarak son sözcüğü alır hücreye yazarsınız, sonra bu sözcüğü Replace yani değiştirerek yerine hiç bir şey koymazsanız sizin istediğiniz ABC 98 i elde edersiniz.

Yani B1 hücresine son sözcüğü alacaksanız

Cells(1, "B") = Split(Cells(1, "A"), " ") (2)

kullanabilirsiniz.

C1 hücresine de ABC 98 i almak isterseniz

Cells(1, "C") = Replace(Cells(1, "A"), cells(1, "B"), "")

yazabilirsiniz.

Ancak hücre içindeki değerde değişken sayıda boşluk varsa ve siz son sözcüğü B sütununa, diğer geri kalanını C sütununa yazmak isterseniz durum biraz daha farklı olacaktır.

Önce hücreyi bir değişkene bölerek atarsınız.

Degisken = Split(Cells(1, "A"), " ")

Son sözcüğü almak istediğinizde ise

Cells(1, "B") = Degisken(Ubound(Degisken))

yazarak alabilirsiniz. UBound bir dizinin kaç elemandan oluştuğunu verir

Örneğimizde UBound(Degisken) bize 2 elemanlı olduğunu söyler(Sıfırıncı elemanın olduğunu düşünürsek, 3 elaman var demektir)

Umarım yardımcı olmuştur bu açıklamalar.
 
Katılım
18 Ağustos 2013
Mesajlar
7
Excel Vers. ve Dili
Türkçe 2010
Çok teşekkür ederim kodları açıklamanız çok işime yaradı.ben bu vba kodlarını öğrenmem gerekiyor böyle kodların açıklamasını yapan bir döküman bulabilirmiyim acaba ?
 

Necdet

Moderatör
Yönetici
Katılım
4 Haziran 2005
Mesajlar
15,548
Excel Vers. ve Dili
Ofis 365 Türkçe
Çok teşekkür ederim kodları açıklamanız çok işime yaradı.ben bu vba kodlarını öğrenmem gerekiyor böyle kodların açıklamasını yapan bir döküman bulabilirmiyim acaba ?
Merhaba,

VBA ile ilgili kitaplar edinebilirsiniz, ayrıca forumda da bol miktarda örnekler görebilirsiniz. Forumun en başındaki setlerden yararlanabilirsiniz.

Eğer bildiğiniz bir fonksiyon ise onun detaylı kullanımını VBA nın yardımında bulabilirsiniz.
 
Üst