• DİKKAT

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

Excel için yazılan makroyu Word için uyarlama

  • 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 için yazılmış makroyu Word'da kullanabilmem için nasıl bir değişiklik yapmak lazım
Kod:

Kod:
Sub Test3()
  
    Dim objRegEx As Object, myCell As Range, myStr As String
    
    Set objRegEx = CreateObject("VBscript.RegExp")
    objRegEx.Global = True
    objRegEx.Pattern = "\((\d+)\)"
    
    For Each myCell In Selection
        myStr = myCell.Text
        myStr = objRegEx.Replace(myStr, "")
        myCell = myStr
        myStr = Empty
    Next
    
    Set objRegEx = Nothing
End Sub
 
Word'da yaklaşık 2000 sayfalık bir bilgi var. ve bu metinlerdeki parantez içindeki sayıları parantez ile birlikte silmek istiyorum.
 
Her ne kadar birbirine benzese de kodlarında farklılık var. En iyi çözüm örneğinizi buraya yükleyerek cevap beklemek. Ya da joker karakter ile arama yaptırarak bul ve değiştirden temizlemek.
 
Ustalarım mesajıma yardımcı olabilirseniz sevinirim
 
Bul ve değiştirden; bul kısmına (***) yazın burdaki yıldızlar joker karakter seçeneğiyle eklenmiş olacak. Değiştir kısmına ise bir şey yazmayın. Tamam a basınca tümünü bulur ve değiştirir. Daha da yapamazsanız akşam PC başına geçince ekran görüntüsü atarım.
 
Bul ve değiştirden; bul kısmına (***) yazın burdaki yıldızlar joker karakter seçeneğiyle eklenmiş olacak. Değiştir kısmına ise bir şey yazmayın. Tamam a basınca tümünü bulur ve değiştirir. Daha da yapamazsanız akşam PC başına geçince ekran görüntüsü atarım.

Malesef olmadı. Yada ben yapamadım
 
Malesef olmadı. Yada ben yapamadım

Merhaba @asdsxx,

Joker karakter işaretliyken aranan kutusuna \(*\) veya [(]*[)] yazıp yeni değer kısmını boş bıraktığınızda parantez içinde olan herşeyi siler, bu parantezli sayıların sağında ve solunda boşluklar olabilir, 2 boşluk yanyana gelmemesi için aranan kelimenin sonunda boşluk olduğunu unutmayınız.

@tukayf, (***) araması tek bir karakteri sonuçlandırmaktadır.

İyi çalışmalar.

225142
 
MS Word için;

C#:
Sub Test()
'   Haluk - 10/02/2021
'   https://excelhaluk.blogspot.com/
    Dim regExp As Object
    
    Set regExp = CreateObject("VBscript.RegExp")
    
    regExp.Pattern = "\((\d+)\)"
    regExp.Global = True
    
    ActiveDocument.Range.Text = regExp.Replace(ActiveDocument.Range.Text, "")
    
    Set regExp = Nothing
End Sub

.
 
\(*\) birde bu şekilde deneyebilir misiniz.
Çok özür sizin mesajı görmeden yazdım.

Tukayf Bey sizin dediğiniz yöntem ile tüm parantez içi olanları buluyor. Ben sadece parantez içindeki rakamları parantezler ile birlikte silmesini istiyorum. Parantez içindeki kelime veya cümleler kalacak.
\(*\) kodunda "*" joker karakteri yerine (sayıların) yerini tutacak bir yöntem var mı acaba
 
MS Word için;

C#:
Sub Test()
'   Haluk - 10/02/2021
'   https://excelhaluk.blogspot.com/
    Dim regExp As Object
   
    Set regExp = CreateObject("VBscript.RegExp")
   
    regExp.Pattern = "\((\d+)\)"
    regExp.Global = True
   
    ActiveDocument.Range.Text = regExp.Replace(ActiveDocument.Range.Text, "")
   
    Set regExp = Nothing
End Sub

.

Haluk Bey Teşekkürler.
Kod Çalıştı. istediğim bu idi. Eline sağlık.
İyi ki varsınız.
Tekrar Teşekkürler...
 
Tukayf Bey ilgilendiğiniz için size de teşekkürler.
 
MS Word için;

C#:
Sub Test()
'   Haluk - 10/02/2021
'   https://excelhaluk.blogspot.com/
    Dim regExp As Object
   
    Set regExp = CreateObject("VBscript.RegExp")
   
    regExp.Pattern = "\((\d+)\)"
    regExp.Global = True
   
    ActiveDocument.Range.Text = regExp.Replace(ActiveDocument.Range.Text, "")
   
    Set regExp = Nothing
End Sub

.

Haluk Bey kod tüm belge için bütün çalışıyor. Belirli bir kısmı seçili olsada yine tüm belgeyi temizliyor.
Bu kod'a seçili kısımda da çalışması için nasıl bir ilave yapılabilir.
 
Kodun sadece seçili kısımda çalışması için aşağıdaki satırı, koddakinin yerine kullanın...

C#:
    Selection.Range.Text = regExp.Replace(Selection.Range.Text, "")


Yani; ActiveDocument yerine Selection kullanacaksınız.....

.
 
Kodun sadece seçili kısımda çalışması için aşağıdaki satırı, koddakinin yerine kullanın...

C#:
    Selection.Range.Text = regExp.Replace(Selection.Range.Text, "")


Yani; ActiveDocument yerine Selection kullanacaksınız.....

.

Teşekkürler Haluk Bey
 
Eyvallah .... kolay gelsin.

.
 
Geri
Üst