Sağdan PARÇAAL ile Kelime ayırma

Orion1

Uzman
Uzman
Katılım
1 Mart 2005
Mesajlar
22,248
Excel Vers. ve Dili
Win7 Home Basic TR 64 Bit

Ofis-2010-TR 32 Bit
15 nolu mesajda yazdığım ktf doğru cevabı vermesi lazım.:cool:
 

Ömer BARAN

Uzman
Katılım
8 Mart 2011
Mesajlar
12,997
Excel Vers. ve Dili
Office 2013 ( 32 bit ) TÜRKÇE
Altın Üyelik Bitiş Tarihi
(18.03.2020) - Uzman olduğu için tarih geçersiz oldu.
Önceki kod cevabımı güncelledim, sayfayı yenileyerek kontrol ediniz.
 
Katılım
11 Mayıs 2016
Mesajlar
34
Excel Vers. ve Dili
Türkçe
Önceki kod cevabımı güncelledim, sayfayı yenileyerek kontrol ediniz.
Kod:
Sub SON_KELİME()
For sat = 1 To Cells(Rows.Count, "A").End(3).Row
    Set brnn = Cells(sat, "A").Find(" ", , , xlPart)
    If Not brnn Is Nothing Then
        brn = WorksheetFunction.Search(" ", VBA.StrReverse(brnn), 1)
        Cells(sat, "B") = Mid(Cells(sat, "A"), Len(Cells(sat, "A")) - brn + 2, brn)
        Cells(sat, "A") = Mid(Cells(sat, "A"), 1, Len(Cells(sat, "A")) - brn)
    Else
        Cells(sat, "B") = Cells(sat, "A"): Cells(sat, "A") = ""
    End If
Next: brnn = Empty
MsgBox "İşlem tamamlandı.", vbInformation, "...::... Ö. BARAN ...::..."
End Sub
Evet sorunsuz çalıştı, eline sağlık kardeşim. Çok işime yarayacak
 
Son düzenleme:

Ömer BARAN

Uzman
Katılım
8 Mart 2011
Mesajlar
12,997
Excel Vers. ve Dili
Office 2013 ( 32 bit ) TÜRKÇE
Altın Üyelik Bitiş Tarihi
(18.03.2020) - Uzman olduğu için tarih geçersiz oldu.
cc şeklinde başlayan satırı ve bir altındaki boş satırı silebilirsiniz.
Ben silmeyi unutmuşum.

Kolay gelsin.
.
 
Katılım
11 Mayıs 2016
Mesajlar
34
Excel Vers. ve Dili
Türkçe
15 nolu mesajda yazdığım ktf doğru cevabı vermesi lazım.:cool:

@Orion1 cahilliğimi mazur gör, ben onu uygulayamadım, beceriksizlik ve iş bilmezlik işte :( :(

cc şeklinde başlayan satırı ve bir altındaki boş satırı silebilirsiniz.
Ben silmeyi unutmuşum.

Kolay gelsin.
.
Eyvallah kardeş o şekilde alıntı iletiyi de düzelttim ve notumu aldım. Eline sağlık, çok teşekkür ederim.
 

Ömer BARAN

Uzman
Katılım
8 Mart 2011
Mesajlar
12,997
Excel Vers. ve Dili
Office 2013 ( 32 bit ) TÜRKÇE
Altın Üyelik Bitiş Tarihi
(18.03.2020) - Uzman olduğu için tarih geçersiz oldu.
İyi günler, iyi çalışmalar dilerim.
 
Katılım
11 Mayıs 2016
Mesajlar
34
Excel Vers. ve Dili
Türkçe
Teşekkürler inceledim. Alt satırlara da A1 den kestiği son kelimeyi uyguluyor

 

Orion1

Uzman
Uzman
Katılım
1 Mart 2005
Mesajlar
22,248
Excel Vers. ve Dili
Win7 Home Basic TR 64 Bit

Ofis-2010-TR 32 Bit
Teşekkürler inceledim. Alt satırlara da A1 den kestiği son kelimeyi uyguluyor

Modüldeki KTF yi aşağıdaki ile değiştiriniz.:cool:

Kod:
Function evrendondur(ByRef deg As Variant)
Dim say As Byte
deg = VBA.StrReverse(deg)
say = InStr(1, deg, " ")
deg = Left(deg, say - 1)
evrendondur = StrReverse(deg)
End Function
 
Katılım
11 Mayıs 2016
Mesajlar
34
Excel Vers. ve Dili
Türkçe
Modüldeki KTF yi aşağıdaki ile değiştiriniz.:cool:

Kod:
Function evrendondur(ByRef deg As Variant)
Dim say As Byte
deg = VBA.StrReverse(deg)
say = InStr(1, deg, " ")
deg = Left(deg, say - 1)
evrendondur = StrReverse(deg)
End Function
Son kelimeleri aşağı doğru aldı ama aldığı yerde kalan kelimeleri kesmedi, makroya ilave yapmak lazım sanırım
 
Katılım
11 Mayıs 2016
Mesajlar
34
Excel Vers. ve Dili
Türkçe
Sayfa adını Set k = Sheets("Sayfa2") kendinize göre düzenlediniz mi?
Afedersiniz sayfa numarasını değiştirmeyi unutmuşum ve çalıştı. Ancak ilk satırın karşısını boş bıraktı alttakileri olması gerektiği gibi son kelimeden ayırıp sağdaki sütuna aldı.

sat = 2
For a = 2 To k.Range("A65500").End(3).Row


2 değerini de aşağıdaki gibi 1 yaptım baştan sona işlevi yerine getirdi. Bu da çok güzel oldu. Eline sağlık arkadaşım, zahmet verdim ama arayıp soranlara da güzel bir kaynak oluşturdunuz. Başarılar

Kod:
Sub ayir()
Set k = Sheets("Sayfa1")
sat = 1
For a = 1 To k.Range("A65500").End(3).Row
    ad = Split(k.Cells(a, "A"), " ")
    ReDim ad1(UBound(ad) - 1)
    For b = LBound(ad) To UBound(ad) - 1
        ad1(b) = ad(b)
    Next
    k.Cells(sat, "A") = Join(ad1, " ")
    k.Cells(sat, "B") = ad(UBound(ad))
    sat = sat + 1
Next
End Sub
Katkı ve destek sağlayan herkese çok teşekkür ederim. Harika insanlarsınız. Kolay gelsin
 

Ömer BARAN

Uzman
Katılım
8 Mart 2011
Mesajlar
12,997
Excel Vers. ve Dili
Office 2013 ( 32 bit ) TÜRKÇE
Altın Üyelik Bitiş Tarihi
(18.03.2020) - Uzman olduğu için tarih geçersiz oldu.
Tekrar merhaba.

Sayın sonageldik, bence bu işlem için kod kullanmaya hiç gerek yoktu ama neyse sonuca ulaşıldı zaten.

Ancak formül kullanarak çözüm önerisiyle ilgili şunu söyleyeyim:

-- 9 numaralı cevapta önerdiğim aşağıdaki formülü C1 hücresine uygulayın,.
Kod:
=[COLOR="red"]EĞER[/COLOR]([B][COLOR="Blue"]A1[/COLOR][/B]="";"";[COLOR="red"]EĞER[/COLOR]([COLOR="red"]ESAYIYSA[/COLOR]([COLOR="red"]BUL[/COLOR](" ";[COLOR="red"]KIRP[/COLOR]([B][COLOR="Blue"]A1[/COLOR][/B]);1));[COLOR="red"]PARÇAAL[/COLOR]([COLOR="red"]KIRP[/COLOR]([B][COLOR="Blue"]A1[/COLOR][/B]);[COLOR="red"]BUL[/COLOR]("|";[COLOR="red"]YERİNEKOY[/COLOR]([COLOR="red"]KIRP[/COLOR]([B][COLOR="Blue"]A1[/COLOR][/B]);" ";"|";[COLOR="red"]UZUNLUK[/COLOR]([COLOR="red"]KIRP[/COLOR]([B][COLOR="Blue"]A1[/COLOR][/B]))-[COLOR="red"]UZUNLUK[/COLOR]([COLOR="red"]YERİNEKOY[/COLOR]([COLOR="Red"]KIRP[/COLOR]([B][COLOR="Blue"]A1[/COLOR][/B]);" ";"")));1)+1;255);[B][COLOR="Blue"]A1[/COLOR][/B]))
-- B1 hücresine de aşağıdaki formülü uygulayın,
Kod:
=[COLOR="Red"]YERİNEKOY[/COLOR]([COLOR="Red"]KIRP[/COLOR]([B][COLOR="Blue"]A1[/COLOR][/B]);" "&C1;"")
-- her iki formülü listeniz boyunca kopyalayın,
-- sonucun sabit kalması için B ve C sütununda formül uygulanmış alanı kopyalayıp, DEĞER olarak yapıştırın
-- A sütununu silin.

İsteğinizin formül ile elde edilmiş sonucu aynen istediğiniz gibi olacaktır.
.
 
Katılım
11 Mayıs 2016
Mesajlar
34
Excel Vers. ve Dili
Türkçe
Tekrar merhaba.

Sayın sonageldik, bence bu işlem için kod kullanmaya hiç gerek yoktu ama neyse sonuca ulaşıldı zaten.

Ancak formül kullanarak çözüm önerisiyle ilgili şunu söyleyeyim:

-- 9 numaralı cevapta önerdiğim aşağıdaki formülü C1 hücresine uygulayın,.
Kod:
=[COLOR="red"]EĞER[/COLOR]([B][COLOR="Blue"]A1[/COLOR][/B]="";"";[COLOR="red"]EĞER[/COLOR]([COLOR="red"]ESAYIYSA[/COLOR]([COLOR="red"]BUL[/COLOR](" ";[COLOR="red"]KIRP[/COLOR]([B][COLOR="Blue"]A1[/COLOR][/B]);1));[COLOR="red"]PARÇAAL[/COLOR]([COLOR="red"]KIRP[/COLOR]([B][COLOR="Blue"]A1[/COLOR][/B]);[COLOR="red"]BUL[/COLOR]("|";[COLOR="red"]YERİNEKOY[/COLOR]([COLOR="red"]KIRP[/COLOR]([B][COLOR="Blue"]A1[/COLOR][/B]);" ";"|";[COLOR="red"]UZUNLUK[/COLOR]([COLOR="red"]KIRP[/COLOR]([B][COLOR="Blue"]A1[/COLOR][/B]))-[COLOR="red"]UZUNLUK[/COLOR]([COLOR="red"]YERİNEKOY[/COLOR]([COLOR="Red"]KIRP[/COLOR]([B][COLOR="Blue"]A1[/COLOR][/B]);" ";"")));1)+1;255);[B][COLOR="Blue"]A1[/COLOR][/B]))
-- B1 hücresine de aşağıdaki formülü uygulayın,
Kod:
=[COLOR="Red"]YERİNEKOY[/COLOR]([COLOR="Red"]KIRP[/COLOR]([B][COLOR="Blue"]A1[/COLOR][/B]);" "&C1;"")
-- her iki formülü listeniz boyunca kopyalayın,
-- sonucun sabit kalması için B ve C sütununda formül uygulanmış alanı kopyalayıp, DEĞER olarak yapıştırın
-- A sütununu silin.

İsteğinizin formül ile elde edilmiş sonucu aynen istediğiniz gibi olacaktır.
.
C1 ve ardından B1 bu da farklı bir bakış ve sonuç olumlu. Teşekkür ederim arkadaşım. Çok sağol. İyi çalışmalar dilerim
 

Orion1

Uzman
Uzman
Katılım
1 Mart 2005
Mesajlar
22,248
Excel Vers. ve Dili
Win7 Home Basic TR 64 Bit

Ofis-2010-TR 32 Bit
Son kelimeleri aşağı doğru aldı ama aldığı yerde kalan kelimeleri kesmedi, makroya ilave yapmak lazım sanırım
KTF yi C sütununa yazın.
B sütununada B1 hücresine aşağıdaki formülü girin.:cool:
Dosya linktedir.:cool:

DOSYAYI İNDİR

Kod:
=SOLDAN(A1;UZUNLUK(A1)-UZUNLUK(C1)-1)
 
Üst