• DİKKAT

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

Bazı Karakterleri silme

  • Konbuyu başlatan Konbuyu başlatan asdsxx
  • Başlangıç tarihi Başlangıç tarihi

asdsxx

Altın Üye
Katılım
22 Mayıs 2012
Mesajlar
510
Excel Vers. ve Dili
Excel 2016 Türkçe
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
 
Örnek dosya varsa, duruma bakalım...

.
 
"B" Sütununda b2-b5 arası
ama asıl dosyada satır sayısı yaklaşık 800 kadar.
 

Ekli dosyalar

Ekli dosyaya bakın....

.
 

Ekli dosyalar

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

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

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

.
 
5. satırdan sonrası
 

Ekli dosyalar

Ya da, bu şekilde deneyin ....

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

.
 
Hatta [5632] gibi 4 haneli rakamlarda var
 
Haluk Bey teşekkürler son kod işe yaradı
 
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
 
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

.
 
Süper...
Çok teşekkürler.
 
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

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
 
Korhan Bey Eline sağlık kod çalışıyor. Haluk Bey'in 14 nolu mesajdaki kod ile entegre olarak bütünleştirilebilir mi
 
Geri
Üst