• DİKKAT

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

Parantez içi rakamları toplu değiştir

  • 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 word belgesinde 600 den fazla sayfa olan bir çalışmada parantez içindeki sayıları Parantezler ile birlikte toplu olarak nasıl biçimlendirebilirim. Yüzlerce....
Örnek (12) rakamını (rakam grubunu) toplu olarak
(12) şeklinde değiştirmek istiyorum. (Rakamlar farklı. hem aynı sayı değil.
 
Yani, renklendirmek mi istiyorsunuz?

Örnek bir dosyanız var mı?

.
 
Yani, renklendirmek mi istiyorsunuz?

Örnek bir dosyanız var mı?

.

Haluk Hocam word dosyasında yüzlerce yukarıdaki örnekte verdiğim gibi parantez içinde rakamlar var. Ben bu parantez içindeki rakamları parantezleriyle birlikte biçimlendirmek istiyorum. dikkat çekmesi için.
 
Aşağıdaki kod, isteğinizi karşılar...

C#:
Sub Test()
    ' Haluk - 22/03/2024
    ' sa4truss@gmail.com
    Dim regExp As Object, myRange As Range
    
    Set regExp = CreateObject("VBscript.RegExp")
    
    regExp.Pattern = "\(\d+\)"
    regExp.Global = True
    
    For Each Match In regExp.Execute(ActiveDocument.Range.Text)
        Set myRange = ActiveDocument.Range(Match.FirstIndex, Match.FirstIndex + Match.Length)
        myRange.Font.Color = vbRed
    Next
    
    Set myRange = Nothing
    Set regExp = Nothing
End Sub

.
 
Aşağıdaki kod, isteğinizi karşılar...

C#:
Sub Test()
    ' Haluk - 22/03/2024
    ' sa4truss@gmail.com
    Dim regExp As Object, myRange As Range
   
    Set regExp = CreateObject("VBscript.RegExp")
   
    regExp.Pattern = "\(\d+\)"
    regExp.Global = True
   
    For Each Match In regExp.Execute(ActiveDocument.Range.Text)
        Set myRange = ActiveDocument.Range(Match.FirstIndex, Match.FirstIndex + Match.Length)
        myRange.Font.Color = vbRed
    Next
   
    Set myRange = Nothing
    Set regExp = Nothing
End Sub

.
Haluk Bey çok teşekkür ederim. istediğim bu idi. Eline sağlık
Kod'a biçimlendirmeyi koyu(Kalın) olacak şekilde bir satır ekleyebilirmiyiz.
 
Merhaba,
Bence kodları inceleseniz siz de yapabilirsiniz. Aşağıdaki kodu ekleyin.
Kod:
        myRange.Font.Bold = True
 
Haluk Bey teşekkür ederim sorunu ben çözdüm
Kod:
myRange.Font.Bold = True
satırı ekleyerek çözüldü
Tekrar teşekkür ederim
 
Merhaba,
Bence kodları inceleseniz siz de yapabilirsiniz. Aşağıdaki kodu ekleyin.
Kod:
        myRange.Font.Bold = True

Necdet Bey dediğiniz şekilde yapmıştım. ben çözmeye çalışırken siz mesaj yazmışsınız.
Size de ilginiz için teşekkür ederim. Sağolun
 
Merhaba.
Haluk bey, "Parantez içindeki rakamlar küsüratlı olsa ve aynı zamanda nokta ile ayrılmış olsa" nasıl olurdu diye bir soruyu bekleyin derim ben :)
 
Necdet Bey,

Nokta veya virgül varsa;

C#:
    regExp.Pattern = "\(\d+[.,]\d+\)"

.
 
Olası bir sonraki soru için;

Eğer nokta veya virgül kimisinde var, kimisinde yoksa bütün parantez ve içlerindeki nümerik değerlerde bu işi yapmak için;

C#:
    regExp.Pattern = "\(\d*[.,]?\d+?\)"

.
 
Eğer binlik ayraçları olan büyük sayılar varsa, "." veya "," iki veya daha fazla tekrar edebilir...
[.,]? yerine [.,]* gibi kullanmak daha iyi olur bence.

.
 
Ustad, bu daha pratik olmus...

.
 
Kod:
Sub Test()
    ' Haluk - 22/03/2024
    ' sa4truss@gmail.com
    Dim regExp As Object, myRange As Range
 
    Set regExp = CreateObject("VBscript.RegExp")
 
    regExp.Pattern = "\(\d+\)"
    regExp.Global = True
 
    For Each Match In regExp.Execute(ActiveDocument.Range.Text)
        Set myRange = ActiveDocument.Range(Match.FirstIndex, Match.FirstIndex + Match.Length)
        myRange.Font.Color = vbRed
    Next
 
    Set myRange = Nothing
    Set regExp = Nothing
End Sub

Haluk hocam ilk yukarıdaki yazdığınız kod bazı word dosyalarında, bazı bölümlerde çalışıyor bazı bölümlerde çalışmıyor.
 
Son düzenleme:
Tam anlamadım ama, sizin dokümanda bazı yerlerde eklediğiniz sayfa sonları karışılığa yol açıyor galiba...

.
 
Bilemiyorum...

.
 
Geri
Üst