• DİKKAT

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

Hücre içeriğini ayırma

Katılım
7 Ağustos 2011
Mesajlar
319
Excel Vers. ve Dili
2003-2010 Türkçe
Makro ile A1 Hücresindeki içerikte belli bir kelimeden sonrasını B1 hücresine aktarma.Ekteki örnekte detaylı açıkladım.
Yardımlarınız için şimdiden teşekkürler.
 

Ekli dosyalar

Merhaba

Bunu deneyiniz.
Kod:
Sub Laz_Bakkal()
For x = 1 To [a65536].End(3).Row
    a = Split(Cells(x, 1), "Bakkal")
    For i = 1 To UBound(a)
    For j = 0 To LBound(a)
        Cells(x, 2) = Left(a(j), Len(a(j))) & "Bakkal"
        Cells(x, 3) = Left(a(i), Len(a(i)))
    Next
Next
Next
End Sub

Not: Bakkal ismi ek alıyorsa (mahalle bakkalınız) gibi, istediğiniz sonuç olmayabilir, gerekirse buna da çare bulunur.
 
kodu bir modüle kopyalayıp dener misiniz..

Sub deneme()
For x = 1 To [a10000].End(3).Row
a = Split(Cells(x, 1), "Bakkal")
Cells(x, 1) = a(LBound(a)) & "Bakkal"
Cells(x, 2) = a(UBound(a))
Next x
End Sub
 
Ben de uğraştım emeğim boşa gitmesin (formül çözüm);
Uzun adresin C1'de olduğu varsayılarak A1'e
Kod:
PARÇAAL(C1;1;BUL("Bakkal";C1)+6)
B1'e
Kod:
PARÇAAL(C1;UZUNLUK(A1);1000)
 
kodu bir modüle kopyalayıp dener misiniz..

Sub deneme()
For x = 1 To [a10000].End(3).Row
a = Split(Cells(x, 1), "Bakkal")
Cells(x, 1) = a(LBound(a)) & "Bakkal"
Cells(x, 2) = a(UBound(a))
Next x
End Sub

Ayırma işlemini yaptıktan sonra makroyu 2.kez çalıştırdığımda B sütunundaki verileri siliyor.
Birde aynı makroyu A sütunu değilde B sütunu için uyarladığımda (küçük a'ları b yaptığımda)işlem yapmıyor.
 
Merhaba

Bunu deneyiniz.
Kod:
Sub Laz_Bakkal()
For x = 1 To [a65536].End(3).Row
    a = Split(Cells(x, 1), "Bakkal")
    For i = 1 To UBound(a)
    For j = 0 To LBound(a)
        Cells(x, 2) = Left(a(j), Len(a(j))) & "Bakkal"
        Cells(x, 3) = Left(a(i), Len(a(i)))
    Next
Next
Next
End Sub

Not: Bakkal ismi ek alıyorsa (mahalle bakkalınız) gibi, istediğiniz sonuç olmayabilir, gerekirse buna da çare bulunur.

Uzmanamale Kardeş,
Bakkal ismi ek alırsa Bakkalı-Bakkalınız olursa ne yapabiliriz,yardım edebilir misiniz?
 
Merhaba; uzun adresin C1'de olduğu varsayılarak A1'e
Kod:
PARÇAAL(PARÇAAL(C1;1;BUL("Bakkal";C1)+6);1;(UZUNLUK(PARÇAAL(C1;1;BUL("Bakkal";C1)+6))-BUL("Bakkal";PARÇAAL(C1;1;BUL("Bakkal";C1)+6);1))+6)
Biraz karışık ama istediğiniz oluyor. :)
 
Merhaba

Bunu deneyiniz.
Kod:
Sub Laz_Bakkal()
For x = 1 To [a65536].End(3).Row
    a = Split(Cells(x, 1), "Bakkal")
    For i = 1 To UBound(a)
    For j = 0 To LBound(a)
        Cells(x, 2) = Left(a(j), Len(a(j))) & "Bakkal"
        Cells(x, 3) = Left(a(i), Len(a(i)))
    Next
Next
Next
End Sub

Not: Bakkal ismi ek alıyorsa (mahalle bakkalınız) gibi, istediğiniz sonuç olmayabilir, gerekirse buna da çare bulunur.

Harziyan Kardeş,
Yardımlarınız için teşekkür ederim.Yalnız yukarıdaki Uzmanamale Kardeşin makrosunda Bakkal ismi ek alırsa Bakkalı-Bakkalınız olursa ne yapabiliriz,demiştim.
 
Örnek dosyada açıkladığım şekilde Bakkal-Bakkalı-Bakkalınız kelimelerinden sonrasını B sütununa nasıl aktarabilirim.
Yardımlarınız için şimdiden teşekkürler
 

Ekli dosyalar

Son düzenleme:
Aşağıdaki kodu dener misin?
Kod:
Private Sub CommandButton1_Click()

    For x = 1 To Range("A1:A" & Rows.Count).End(xlDown).Row
        a = Split(Cells(x, 1), "Bakkal")
        Cells(x, 2) = a(LBound(a)) & "Bakkal"
        Cells(x, 3) = Right(a(UBound(a)), Len(a(UBound(a))) - WorksheetFunction.Search(" ", a(UBound(a)), WorksheetFunction.Search(" ", a(UBound(a)), 1) + 0))
    Next x
    
End Sub
 
Kod:
Private Sub CommandButton1_Click()

    Dim i As Long, ss As Long, pos As Integer
    
    ss = Range("A" & Rows.Count).End(xlUp).Row
    
    For i = 1 To ss
        With Range("A" & i)
            pos = InStr(InStr(1, .Value, "bakkal", 1), .Value, " ", 1)
            .Offset(, 1).Value = Mid(.Value, pos + 1, Len(.Value))
            .Value = Left(.Value, pos - 1)
        End With
    Next i

End Sub
 
Eğer makro şart değilse;

B1 hücresine;
Kod:
=EĞER(A1="";"";SOLDAN(A1;BUL(" ";A1;BUL("Bakkal";A1;1))-1))
C1 hücresine;
Kod:
=EĞER(A1="";"";PARÇAAL(A1;BUL(" ";A1;BUL("Bakkal";A1;1))+1;UZUNLUK(A1)-(BUL(" ";A1;BUL("Bakkal";A1;1)))))
yazıp aşağı doğru çoğaltabilirsiniz.
 
Geri
Üst