DOSYA İndirmek/Yüklemek için ÜCRETLİ ALTIN ÜYELİK Gereklidir!
Altın Üyelik Hakkında Bilgi
Önceki kod cevabımı güncelledim, sayfayı yenileyerek kontrol ediniz.
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
15 nolu mesajda yazdığım ktf doğru cevabı vermesi lazım.![]()
Eyvallah kardeş o şekilde alıntı iletiyi de düzelttim ve notumu aldım. Eline sağlık, çok teşekkür ederim.cc şeklinde başlayan satırı ve bir altındaki boş satırı silebilirsiniz.
Ben silmeyi unutmuşum.
Kolay gelsin.
.
Aşağıdaki linkteki dosyayı inceleyiniz.@Orion1 cahilliğimi mazur gör, ben onu uygulayamadım, beceriksizlik ve iş bilmezlik işte![]()
![]()
Modüldeki KTF yi aşağıdaki ile değiştiriniz.Teşekkürler inceledim. Alt satırlara da A1 den kestiği son kelimeyi uyguluyor
![]()
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
Sayfa adını Set k = Sheets("Sayfa2") kendinize göre düzenlediniz mi?Runtime error 9 hatası aldım
Son kelimeleri aşağı doğru aldı ama aldığı yerde kalan kelimeleri kesmedi, makroya ilave yapmak lazım sanırımModüldeki KTF yi aşağıdaki ile değiştiriniz.
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
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ı.Sayfa adını Set k = Sheets("Sayfa2") kendinize göre düzenlediniz mi?
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
=[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]))
=[COLOR="Red"]YERİNEKOY[/COLOR]([COLOR="Red"]KIRP[/COLOR]([B][COLOR="Blue"]A1[/COLOR][/B]);" "&C1;"")
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 dilerimTekrar 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,.-- B1 hücresine de aşağıdaki formülü 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]))
-- her iki formülü listeniz boyunca kopyalayın,Kod:=[COLOR="Red"]YERİNEKOY[/COLOR]([COLOR="Red"]KIRP[/COLOR]([B][COLOR="Blue"]A1[/COLOR][/B]);" "&C1;"")
-- 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.
.
KTF yi C sütununa yazın.Son kelimeleri aşağı doğru aldı ama aldığı yerde kalan kelimeleri kesmedi, makroya ilave yapmak lazım sanırım
=SOLDAN(A1;UZUNLUK(A1)-UZUNLUK(C1)-1)