Karakter ayrıştırma ve silme

Katılım
5 Eylül 2007
Mesajlar
1,247
Excel Vers. ve Dili
ofis 2010
Altın Üyelik Bitiş Tarihi
21-07-2024
Merhaba;
Daha önce formdan bulduğum karakter ayrıştırma ve silme makrosuna bir ilave daha yapmak istiyorum. Ancak yapamadım. Kullandığım makro
Kod:
Private Sub AYIR_Click()


    'Haluk - 31/05/2019
    'ürünlerdeki isim ve fiyat ayrıştırması sağlıyor, isim kalıp fiyat siliniyor
    Dim objRegEx As Object, NoB As Long, myStr As String
   
    Set objRegEx = CreateObject("VBscript.RegExp")
    objRegEx.Global = True
    objRegEx.Pattern = "\([^()]*\)|(\-.*$)"
    NoB = Range("A" & Rows.Count).End(xlUp).Row
    For i = 3 To NoB
        myStr = Range("A" & i).Text
        myStr = objRegEx.Replace(myStr, "")
        Range("A" & i) = myStr
        myStr = Empty
    Next
    Set objRegEx = Nothing

End Sub

PAMUK İPLİĞİ (29,33 TL) trh:03.01.23) / PAMUK İPLİĞİ şeklindeki listedeki ürün ismi duruyor bunun dışındaki diğer bilgileri siliyordu. Ancak daha önce Parantez veya benzeri işaret kullanırken şimdi - trh: - kullanmaya başladım. Bu makroya nasıl bir ilave yapılırsa trh: ve tarih bilgisi de silinebilir.
Ürün ismi SATEN PAMUKLU KUMAŞ vs gibi bir kaç cümle olabiliyor.

 

Korhan Ayhan

Administrator
Yönetici
Admin
Katılım
15 Mart 2005
Mesajlar
42,228
Excel Vers. ve Dili
Microsoft 365 Tr-En 64 Bit
Bu veriden almak istediğiniz sonuç nedir? Farklı yapıda veri girişiniz var mı?

PAMUK İPLİĞİ (29,33 TL) trh:03.01.23) / PAMUK İPLİĞİ
 
Katılım
5 Eylül 2007
Mesajlar
1,247
Excel Vers. ve Dili
ofis 2010
Altın Üyelik Bitiş Tarihi
21-07-2024
Verilerin tamamı bu şablon olarak giriliyor. Farklı bir veri girişi olmuyor.
 

Korhan Ayhan

Administrator
Yönetici
Admin
Katılım
15 Mart 2005
Mesajlar
42,228
Excel Vers. ve Dili
Microsoft 365 Tr-En 64 Bit
Bir sorum daha vardı ona cevap vermemişsiniz.
 

Haluk

Özel Üye
Katılım
7 Temmuz 2004
Mesajlar
12,406
Excel Vers. ve Dili
64 Bit 2010 - İngilizce
+
Google Sheets
+
JScript
Altın Üyelik Bitiş Tarihi
C#:
    objRegEx.Pattern = "\s?\(.*$"
.
 
Katılım
5 Eylül 2007
Mesajlar
1,247
Excel Vers. ve Dili
ofis 2010
Altın Üyelik Bitiş Tarihi
21-07-2024
Sadece ürünün isminin kalması, belirttiğiniz gibi
PAMUK İPLİĞİ
 
Katılım
5 Eylül 2007
Mesajlar
1,247
Excel Vers. ve Dili
ofis 2010
Altın Üyelik Bitiş Tarihi
21-07-2024
Teşekkür ederim, istediğim sonucu verdi.
 

Korhan Ayhan

Administrator
Yönetici
Admin
Katılım
15 Mart 2005
Mesajlar
42,228
Excel Vers. ve Dili
Microsoft 365 Tr-En 64 Bit
İki alternatifte ben paylaşmak isterim.

C++:
Option Explicit

Sub Test_1()
    Dim X As Long, Data As Variant
   
    With VBA.CreateObject("VBscript.RegExp")
        .Global = True
        .Pattern = "(^\D+ )"
        For X = 3 To Cells(Rows.Count, 1).End(3).Row
            If .Test(Cells(X, 1).Value) And InStr(1, Cells(X, 1).Value, "(") > 0 Then
                Set Data = .Execute(Cells(X, 1).Value)
                Cells(X, 1).Value = Trim(Data(0))
            End If
        Next
    End With

    MsgBox "İşleminiz tamamlanmıştır.", vbInformation
End Sub

Sub Test_2()
    Dim X As Long
   
    For X = 3 To Cells(Rows.Count, 1).End(3).Row
        If InStr(1, Cells(X, 1).Value, "(") > 0 Then
            Cells(X, 1).Value = Trim(Split(Cells(X, 1).Value, "(")(0))
        End If
    Next
    
    MsgBox "İşleminiz tamamlanmıştır.", vbInformation
End Sub
 
Katılım
5 Eylül 2007
Mesajlar
1,247
Excel Vers. ve Dili
ofis 2010
Altın Üyelik Bitiş Tarihi
21-07-2024
Teşekkür ederim;
iki makro da sorunsuz çalışıyor. İyi çalışmalar.
 
Üst