Bazı Karakterleri silme

asdsxx

Altın Üye
Katılım
22 Mayıs 2012
Mesajlar
491
Excel Vers. ve Dili
Excel 2016 Türkçe
Altın Üyelik Bitiş Tarihi
20-02-2025
Arkadaşlar Excel hücrelerine word'an paragraf olarak yapıştırılan metinler var. Bu metinlerin içinde dipnot veya açıklama olarak verilmiş bazı karakterler var.
mesela [1], [12] , [*] gibi ben bunları formül yada kod ile nasıl silerim. Yani [ ] köşeli parantez ve içindeki her ne ise onları sileceğim. Öyle bir formül yada kod olması lazım ki bütün hücrelerdeki köşeli parantez ve içindeki rakam, karakter ne varsa birlikte silsin. Veriler aynı sütunda
 

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
Örnek dosya varsa, duruma bakalım...

.
 

asdsxx

Altın Üye
Katılım
22 Mayıs 2012
Mesajlar
491
Excel Vers. ve Dili
Excel 2016 Türkçe
Altın Üyelik Bitiş Tarihi
20-02-2025
"B" Sütununda b2-b5 arası
ama asıl dosyada satır sayısı yaklaşık 800 kadar.
 

Ekli dosyalar

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
Ekli dosyaya bakın....

.
 

Ekli dosyalar

asdsxx

Altın Üye
Katılım
22 Mayıs 2012
Mesajlar
491
Excel Vers. ve Dili
Excel 2016 Türkçe
Altın Üyelik Bitiş Tarihi
20-02-2025
Haluk Bey teşekkürler çalışıyor.
Ancak benim dikkatimden kaçan, köşeli parantez dışında sadece "*" işareti olanlar var onları koda nasıl ilave edebiliriz.
 

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
Kodda, ilgili satırı aşağıdaki ile değiştirin....

Kod:
    objRegEx.Pattern = "\[(.?)\]|\*"
.
 

asdsxx

Altın Üye
Katılım
22 Mayıs 2012
Mesajlar
491
Excel Vers. ve Dili
Excel 2016 Türkçe
Altın Üyelik Bitiş Tarihi
20-02-2025
İlk kodda bir sıkıntı olduğunu farkettim size gönderdiğim dosyada yok ama bendeki dosyanın farklı satırlarında [23] gibi köşeli parantezin içinde 2 veya 3 haneli sayılar var onları silmiyor. sadece köşeli parantez içindeki tek haneli rakamları ve parantezleri siliyor.
Ben
objRegEx.Pattern = "\[(.??)\]|\*"
bir soru işareti daha ekledim ama yine çalışmadı
 

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
Düzgün bir örnek dosya gönderin, onun üzerinde uğraşalım...

.
 

asdsxx

Altın Üye
Katılım
22 Mayıs 2012
Mesajlar
491
Excel Vers. ve Dili
Excel 2016 Türkçe
Altın Üyelik Bitiş Tarihi
20-02-2025
5. satırdan sonrası
 

Ekli dosyalar

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
Ya da, bu şekilde deneyin ....

Kod:
    objRegEx.Pattern = "\[(.?)+\]|\*"
.
 

asdsxx

Altın Üye
Katılım
22 Mayıs 2012
Mesajlar
491
Excel Vers. ve Dili
Excel 2016 Türkçe
Altın Üyelik Bitiş Tarihi
20-02-2025
Hatta [5632] gibi 4 haneli rakamlarda var
 

asdsxx

Altın Üye
Katılım
22 Mayıs 2012
Mesajlar
491
Excel Vers. ve Dili
Excel 2016 Türkçe
Altın Üyelik Bitiş Tarihi
20-02-2025
Haluk Bey teşekkürler son kod işe yaradı
 

asdsxx

Altın Üye
Katılım
22 Mayıs 2012
Mesajlar
491
Excel Vers. ve Dili
Excel 2016 Türkçe
Altın Üyelik Bitiş Tarihi
20-02-2025
Haluk Bey yukarıda dediğim gibi kod çok güzel çalıştı Ben kodu biraz geliştirsek diye bir deneme yaptım ama çalışmadı. kodu sadece bir sütun değil de çalışma sayfasının tamamında çalışması yada çoklu sütun kontrol etmesi için kodda değişiklik yaptım ama dediğim gibi çalışmadı. kod aşağıda
Kod:
Sub Test()
'Haluk - 15/04/2020
'sa4truss@gmail.com
Dim objRegEx As Object, i As Long, NoB As Long, myStr As String

Set objRegEx = CreateObject("VBscript.RegExp")
objRegEx.Global = True
objRegEx.Pattern = "\[(.?)+\]|\*"
NoB = Range("A2:Z" & Rows.Count).End(xlUp).Row
For i = 1 To NoB
myStr = Range("A2:Z" & i).Text
myStr = objRegEx.Replace(myStr, "")
Range("A2:Z" & i) = myStr
myStr = Empty
Next
Set objRegEx = Nothing
End Sub

Yukarıdaki kod çalışmadı nerede eksiklik var
 

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
Değiştirme işlemini yapacağınız hücreleri fare seçin, sonra aşağıdaki kodu çalıştırın......

Kod:
Sub Test()
    'Haluk - 15/04/2020
    'sa4truss@gmail.com
    Dim objRegEx As Object, myCell As Range, myStr As String
    
    Set objRegEx = CreateObject("VBscript.RegExp")
    objRegEx.Global = True
    objRegEx.Pattern = "\[(.?)+\]|\*"
    For Each myCell In Selection
        myStr = myCell.Text
        myStr = objRegEx.Replace(myStr, "")
        myCell = myStr
        myStr = Empty
    Next
    Set objRegEx = Nothing
End Sub
.
 

asdsxx

Altın Üye
Katılım
22 Mayıs 2012
Mesajlar
491
Excel Vers. ve Dili
Excel 2016 Türkçe
Altın Üyelik Bitiş Tarihi
20-02-2025
Süper...
Çok teşekkürler.
 

asdsxx

Altın Üye
Katılım
22 Mayıs 2012
Mesajlar
491
Excel Vers. ve Dili
Excel 2016 Türkçe
Altın Üyelik Bitiş Tarihi
20-02-2025
Haluk Bey Hayırlı kandiller.
Yukarıdaki kod çok faydalı olmuştu. Ellerine sağlık. Bu kod'a aşağıdaki örnek dosyada olduğu gibi cümlenin (Ayet) başındaki numaralar hariç cümlenin içinde geçen rakamları sildirtebilirmiyiz. Yukarıdaki kod aynen korunacak ilave olarak rakamlar silinecek ama cümle başındakiler hariç cümle içi veya sonundaki
 

Ekli dosyalar

Korhan Ayhan

Administrator
Yönetici
Admin
Katılım
15 Mart 2005
Mesajlar
42,184
Excel Vers. ve Dili
Microsoft 365 Tr-En 64 Bit
Deneyiniz.

C++:
Option Explicit

Sub Sayilari_Temizle()
    Dim Veri As Range, Bul As Integer, Metin As String
    
    With CreateObject("VBscript.RegExp")
        .Global = True
        .Pattern = "[0-9]"
        For Each Veri In Selection
            Bul = InStr(1, Veri.Value, ".")
            If Bul > 0 Then
                Metin = Mid(Veri.Value, Bul + 1, Len(Veri.Value) - Bul)
                Veri.Value = Mid(Veri.Value, 1, Bul) & .Replace(Metin, "")
            End If
        Next
    End With
    
    MsgBox "İşleminiz tamamlanmıştır.", vbInformation
End Sub
 

asdsxx

Altın Üye
Katılım
22 Mayıs 2012
Mesajlar
491
Excel Vers. ve Dili
Excel 2016 Türkçe
Altın Üyelik Bitiş Tarihi
20-02-2025
Korhan Bey Eline sağlık kod çalışıyor. Haluk Bey'in 14 nolu mesajdaki kod ile entegre olarak bütünleştirilebilir mi
 
Üst