Wordde hücre biçimlendirmek..

Katılım
22 Mart 2005
Mesajlar
847
Excel Vers. ve Dili
Excel-2003 TR.
Altın Üyelik Bitiş Tarihi
29-06-2023
Merhaba;

Excelde seçili olan hücreleri aşağıdaki kod ile 0 (sıfır) olanları -(Tire) , - (eksi olan) rakamları ise () parantez içerisinde gösterebiliyorum.


Sub bicimle()
Selection.NumberFormat = "#,##0;(#,##0);-"
End Sub

Sorum şu; Örnek dosyada da belirttiğim gibi tabloda seçili alan içersinde 0 (sıfırları) - (tire olarak), eksi rakamharı ise örneğin -365 (365) parantez içersinde ve sağa dayalı olarak nasıl gösterebilirim.
 

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
Aşağıdaki kodu bir ara denersiniz ...

Kod:
Sub Test()
    Dim MyTable As Table
    Dim MyCell As Cell
    For Each MyTable In ThisDocument.Tables
        For Each MyCell In MyTable.Range.Cells
            If IsNumeric(Replace(MyCell.Range.Text, Chr(7), Empty)) Then
                If (Replace(MyCell.Range.Text, Chr(7), Empty)) = 0 Then
                    MyCell.Range.Text = "-"
                End If
                If Val(Replace(MyCell.Range.Text, Chr(7), Empty)) < 0 Then
                    MyCell.Range.Text = "(" & -Val(MyCell.Range.Text) & ")"
                End If
                MyCell.Range.ParagraphFormat.Alignment = wdAlignParagraphRight
            End If
        Next
    Next
End Sub
 
Son düzenleme:
Katılım
22 Mart 2005
Mesajlar
847
Excel Vers. ve Dili
Excel-2003 TR.
Altın Üyelik Bitiş Tarihi
29-06-2023
Sn. Haluk;

Boş bir word dosyası açıp alt+f11 yapıp boş bir modül sayfyasına paste yapıyorum. (Bu makroyu değişik dosyalarda kullanmam lazım) word dosyasını kapatıp tekrar açtığımda çalıştır pasif oluyor.
 

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
Kodları tüm dosyalarda kullanmak için, ALT + F11 ile editöre geçtikten sonra, sol tarafta "Normal" altında yeni bir modül oluşturun ve onun içine kodları yapıştırın.

Bu şekilde bir problem olmaması gerekir.
 
Katılım
22 Mart 2005
Mesajlar
847
Excel Vers. ve Dili
Excel-2003 TR.
Altın Üyelik Bitiş Tarihi
29-06-2023
Sayın Haluk;

İlginiz için teşekkürler. Konuya ilişkin örnek olarak excelde hazırladığım ve worde kopyaladığım tablolar ekte mevcut. Worde kopyaladığım tablo üzerinde rakamsal verilerin olduğu yeri taradım ve makroyu çalıştırdım olmadı. Müsait olduğunuzda bakabilirmisiniz.
 
Katılım
22 Mart 2005
Mesajlar
847
Excel Vers. ve Dili
Excel-2003 TR.
Altın Üyelik Bitiş Tarihi
29-06-2023
Örnek dosyaları sıkıştırılmamış hali ektedir.
 

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
Merhaba,

Ben, en son ekledi&#287;iniz Word belgesinde &#246;nerdi&#287;im kodu yukar&#305;da dedi&#287;im &#351;ekilde denedim ve herhangibir problem olmad&#305;.
 
Katılım
22 Mart 2005
Mesajlar
847
Excel Vers. ve Dili
Excel-2003 TR.
Altın Üyelik Bitiş Tarihi
29-06-2023
Haluk hocam;

Makro güvenlik seviyesi orta, bu durumda alt+f11 ile normal editörünün altına boş bir modül açıp kodları buraya yapıştırdım.

Tabloda rakamsal verileri seçerek makroyu çalıştırıyorum. Hiç bir hareket yok. Biyerlerde bişeylermi kaçırıyorum acaba...
 

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
Merhaba;

Ekli dosyayı açıp, üstteki butona tıklayın. Tabloda herhangibir hücre falan seçmenize gerek yok...

Eğer olumlu sonuç alırsanız, kodu "Normal" altında bir modül ilave edip oraya yerleştirirsiniz.
 
Katılım
22 Mart 2005
Mesajlar
847
Excel Vers. ve Dili
Excel-2003 TR.
Altın Üyelik Bitiş Tarihi
29-06-2023
Haluk Hocam;

Kodları Belge Project altına modal açıp yapıştırdığım zaman istediğim şekilde çalışıyor. Bütün çalışmalarımda kullanmak üzere Normal altına modül açtığımda çalışmıyor enteresan...

Ama hiç olmazsa böylede işimi görüyor.
 

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
Merhaba;

Aşağıdakileri uygularsanız, Normal altında Module1 isimli modüldeki Test isimli prosedürü çalıştırabilirsiniz.

1) Öncelikle, Normal altında yeni bir modül oluşturuyoruz. Bu yeni modülün adı Module1 olsun.

Şimdi bu module aşağıdaki kodu yerleştiriyoruz;

(Eski koda göre çok ufak bir revizyon yaptık)

Kod:
Sub Test()
    Dim MyTable As Table
    Dim MyCell As Cell
    For Each MyTable In ActiveDocument.Tables
        For Each MyCell In MyTable.Range.Cells
            If IsNumeric(Replace(MyCell.Range.Text, Chr(7), Empty)) Then
                If (Replace(MyCell.Range.Text, Chr(7), Empty)) = 0 Then
                    MyCell.Range.Text = "-"
                End If
                If Val(Replace(MyCell.Range.Text, Chr(7), Empty)) < 0 Then
                    MyCell.Range.Text = "(" & -Val(MyCell.Range.Text) & ")"
                End If
                MyCell.Range.ParagraphFormat.Alignment = wdAlignParagraphRight
            End If
        Next
    Next
End Sub
2) Sayfadaki CommandButton1 nesnesine ait kod ise, şu şekilde;

Kod:
Private Sub CommandButton1_Click()
    Call Normal.Module1.Test
End Sub
Burada, modül ve prosedür isimlerinin yukarıdaki gibi olmasına dikkat edin.

Tabii, aslında CommandButton1 nesnesine de ihtiyacınız yok. Her zaman için menülerden bu Test isimli makroyu çalıştırabilirsiniz.

Sanırım, artık bir problem kalmaması gerekir ...
 
Katılım
22 Mart 2005
Mesajlar
847
Excel Vers. ve Dili
Excel-2003 TR.
Altın Üyelik Bitiş Tarihi
29-06-2023
Hocam; Çok teşekkür ederim. Bu kez tamam...:)
 
Üst