Word'de rakamlar yazı ile yazdırılabilir mi?

Katılım
28 Temmuz 2004
Mesajlar
275
Excel'de her tür rakamı yazı ile yazdırdık. Ama yazışmalarımızın önemli bir kısmı da Word ile oluyor. Acaba Word'de de rakamları yazıya çevirmenin bir yolu var mıdır?
 

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 ektedir...
 
Moderatör tarafında düzenlendi:
Katılım
28 Temmuz 2004
Mesajlar
275
Sayın Raider,
Saolunuz, ellerinize sağlık, pek güzel pek hoş da prosedür çalıştırmak için kısayol tuşu nasıl atanır ki.
 

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
Tools >> Macro >> Macros menüsü ile çalıştırsanız olmuyor mu ?
 
Katılım
28 Temmuz 2004
Mesajlar
275
Olmaz olur mu?

Tabii kısayol şansımız yoksa...


Þimdi ayrılıyorum bu yüzden verirseniz cevabınızı yarın okurum. Tekrar elinize sağlık ve iyi akşamlar.
 

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
Tabii kısayol şansımız yoksa...
Söyle bir sey hazirladim....

Asagidaki resimde de belirtildigi gibi, MS Word belgesindeki numerik degeri fare ile sectikten sonra, farenin sag tusuna tiklarsaniz orada cikan YTL yaz ... menusu ile amaciniza ulasirsiniz.

 
Moderatör tarafında düzenlendi:
Katılım
28 Şubat 2005
Mesajlar
707
Excel Vers. ve Dili
office 2007 (excel2007)English işte
office 2003 (excel2003)
Türkçe evde
merhaba;
eline bilgine sağlık syn raider mükemmel olmuş :bravo:
 
Katılım
28 Temmuz 2004
Mesajlar
275
Sayın Raider,

Diyelim ki bir tablo yaptım ve toplam hücresinde Tablo>Formül den üsttekileri toplattım. Bir alt satırında da YALNIZCA .......................YTL dir gibi bir ibarem var. Tabloda bir değişiklik yaparsam F9 ile formülü güncelleyebiliyorum. Peki bu yazYTL yi nasıl uygulamalıyım.

Bu uygulamanızda toplamı yaptığım yere yazıyla yazıldığından ben uyarlamakta zorluk çekiyorum. Üstelik tablonun içinde menü de değişiyor ve sizin eklentiniz gelmiyor o zaman.
 

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
serpily' Alıntı:
Diyelim ki bir tablo yaptım ve toplam hücresinde ....

MS Word tablolarında uygulamak için ekli örneği inceleyin.

Yalnız işlemi yaptıktan sonra tablonun hücresindeki formul silinir, yerine yazıyla YTL yazılır.

Edit:
birol_mumcu' Alıntı:
.... mükemmel olmuş
Teşekkürler Birol bey.
 
Moderatör tarafında düzenlendi:
Katılım
28 Temmuz 2004
Mesajlar
275
Raider demiş ki,

Ancak bu kez, hücredeki formül ortadan kalkacaktır.

Demek ki aynı fikirdeyiz. Ben istiyordum ki tablomu güncelledikçe formülümü, formülümü güncelleyince yazıyı güncelleyebileyim.

Bu hali de
Saolun.
 

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
Eğer birisinin aklına gelirse diye belirtmek istedim.

MS Word tablolarında Insert Field ile formul yazılmış bir hücrede yapılacak sağ klik ile formulsüz bir hücrede yapılacak sağ klik, ekrana değişik PopUp menüler getirir.

Bu nedenle, tablodaki hem formullü (Field içeren) hem de formül içermeyen (Field içermeyen), ayrıca tablo olmayan alanlarda da sağ klik menüsüne Yaz YTL... meüsünün eklendiği son revizyon ektedir.

Dip Not: Bu menü ile ilgili makro çalıştırıldıktan sonra, makronun yaptığı iş MS Word'un menu çubuğundaki Undo (GeriAl) menüsü ile yapılan işlem geri alınabilmektedir.

Son revizyon ektedir...
 
Moderatör tarafında düzenlendi:

fox

Katılım
23 Mart 2005
Mesajlar
29
Sayın raider çözümünüz çok hoş da bunuda tıpkı exceldeki gibi tüm yeni açılan sayfalarda çalıştırmamız mümkünmü? (xla..?)
 

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
tıpkı exceldeki gibi tüm yeni açılan sayfalarda çalıştırmamız mümkünmü? (xla..?)
Cevap silindi ... (Raider ®)
 

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
fox' Alıntı:
tıpkı exceldeki gibi tüm yeni açılan sayfalarda çalıştırmamız mümkünmü?

Tekrar merhaba;

Yukarıdaki mesajımda bu soruya bir cevap yazmıştım ancak, biraz karışık olduğunu düşündüğümden ve orada analatılanları denemek isteyen acemi bir kullanıcısının MS Word programını bozabileceğinden endişe ettiğim için o cevabımı sonradan sildim.

Þimdi, daha rahat bir çözüm önerebilirim.

Silmiş olduğum cevabımda demiştim ki; tıpkı MS Excel'in *.xlt dosyaları gibi MS Word'un de *.dot dosyaları vardır.

*.xlt >> MS Excel Template
*.dot >> MS Word Document Template

Excel'de ayrıca *.xla dosyaları yaratıp, bunları eklenti olarak Excel'e tanıttığımızda bütün Excel dosyalarında ilgili makrolar çalışır.

Ancak, MS Word bu geçerli değildir (en azından ben öyle biliyorum).

Aslında, MS Word uygulamasını başlattığınız anda bilgisayarınızdaki Normal.dot dosyası açılır ve ekrana *.doc gelir. Siz de bir isim vererek dosyayı kaydedirsiniz. Bu nedenle, söz konusu Normal.dot dosyasında yapılacak her türlü değişiklik, otomatik olarak MS Word programı çalıştırıldığında veya o şablon (Normal.dot ile üretilmiş bir *.doc dosyası açıldığında, devreye girecektir.

İşin hafiften teorik kısmı böyle..... :mrgreen:

Þimdi, eğer yukarıdaki çalışmamda bahsedilen YTL yaz ... menüsünün, yeni oluşturulan bir MS Word dosyasında veya herhangibir *.doc dosyasında geçerli olabilmesi için, aşağıdakileri resimlerde de belirtildiği gibi uygulamak yeterli olucaktır.

İlk önce açık olan bütün MS Word uygulamalarını kapatalım.

Daha sonra MS Word programını çalıştıralım.

Boş ve yeni bir *.doc sayfası ekrana geldiğinde klavyede Alt + F11 tuşlarına basarak, VBE kısmına geçelim.

Burada, sol taraftaki Project penceresinde Normal yazan yeri fare ile tıklayarak, aktif hale getirelim.

Daha sonra, yukarıda menülerden buraya yeni bir Modul ekleyelim.
Eklenen modulün, belirttiğim gibi Normal içinde olması gerekir, aksi takdirde sadece o dosyada sözkonusu makrolar çalışır.

Þimdi, bu eklediğimiz modulün (resimdeki adıyla, Module1) üzerine çift tıklayarak, ekranın sağ tarafındaki bu module ait kod penceresini açalım.

Bu modül içine aşağıdakileri Copy - Paste (Kopyala - Yapıştır) yöntemiyle yapıştıralım.

Daha sonra, yine sol taraftaki Project penceresinde Normal aktif hale getirip, yukarıdaki üzerinde "disket" işareti olan düğmeyi tıklayarak, Normal modulünü kaydedelim.

Þimdi, dosyayı kapatalım.

Herhangibir MS Word belgesini açalım veya yeni bir MS Word uygulamasını başlatıp, sayfanın üzerinde farenin sağ tuşuna basarak, yeni menünün görünüp görünmediğine bakabilirsiniz.

Bu arada; eğer MS Word programınıza ait makro güvenlik ayarlarını da gözden geçirip, bunun "Medium" (orta) seviyeye ayarlanmış olmasına da dikkat edin.

Yukarıda bahsetmiş olduğum işler için, Normal içinde oluşturulacak yeni module yerleştirilecek kodlar aşağıdadır;

[vb:1:f8752a80cd]'**********************************************************************
'* MS Word dokumanlarinda sayi ile yazilmis bir degerin *
'* metin biciminde YTL olarak yazilmasi ile ilgili bir calismadir. *
'* *
'* Burasi Excel vadisi... *
'* Raider ® *
'* Mart 2005 *
'* *
'**********************************************************************
'
Dim MyBar As CommandBar
Dim MyBar2 As CommandBar
Dim MyBar3 As CommandBar
'
Sub AutoExec()
Call PopUpMenu
End Sub
'
Sub PopUpMenu()
Set MyBar = Application.CommandBars("Text")
Set MyBar2 = Application.CommandBars("Fields")
Set MyBar3 = Application.CommandBars("Table Text")
'
On Error Resume Next
MyBar.FindControl(Tag:="TagYTL").Delete
MyBar2.FindControl(Tag:="TagYTL").Delete
MyBar3.FindControl(Tag:="TagYTL").Delete
On Error GoTo 0
'
Set MenuObject = MyBar.Controls.Add(Type:=msoControlButton, Temporary:=True)
MenuObject.Tag = "TagYTL"
MenuObject.Caption = "YTL yaz... (Raider ®)"
MenuObject.BeginGroup = True
MenuObject.OnAction = "YazYTL"
MenuObject.FaceId = 7
'
Set MenuObject = MyBar2.Controls.Add(Type:=msoControlButton, Temporary:=True)
MenuObject.Tag = "TagYTL"
MenuObject.Caption = "YTL yaz... (Raider ®)"
MenuObject.BeginGroup = True
MenuObject.OnAction = "YazYTL"
MenuObject.FaceId = 7
'
Set MenuObject = MyBar3.Controls.Add(Type:=msoControlButton, Temporary:=True)
MenuObject.Tag = "TagYTL"
MenuObject.Caption = "YTL yaz... (Raider ®)"
MenuObject.BeginGroup = True
MenuObject.OnAction = "YazYTL"
MenuObject.FaceId = 7
'
Set MyBar = Nothing
Set MyBar2 = Nothing
Set MyBar3 = Nothing
Set MenuObject = Nothing
End Sub
'
Function YTL(sayi)
sayi = Round(sayi, 2)
X = InStr(1, sayi, ",")
If X > 0 Then
Lira = yaz$(Mid(sayi, 1, X - 1)) & " YENİ TÜRK LİRASI "
TempKurus = Mid(sayi, X + 1, 98)
If Len(TempKurus) = 1 Then TempKurus = TempKurus * 10
Kurus = yaz$(TempKurus) & " YENİ KURUÞ "
Else
Lira = yaz$(sayi) & " YENİ TÜRK LİRASI "
End If
YTL = Lira & Kurus
End Function
'
Function yaz$(sayi)
Dim b$(9)
Dim y$(9)
Dim m$(4)
Dim v$(15)
Dim c$(3)
b$(0) = ""
b$(1) = "BİR"
b$(2) = "İKİ"
b$(3) = "ÜÇ"
b$(4) = "DÖRT"
b$(5) = "BEÞ"
b$(6) = "ALTI"
b$(7) = "YEDİ"
b$(8) = "SEKİZ"
b$(9) = "DOKUZ"
y$(0) = ""
y$(1) = "ON"
y$(2) = "YİRMİ"
y$(3) = "OTUZ"
y$(4) = "KIRK"
y$(5) = "ELLİ"
y$(6) = "ALTMIÞ"
y$(7) = "YETMİÞ"
y$(8) = "SEKSEN"
y$(9) = "DOKSAN"
m$(0) = "TRILYON"
m$(1) = "MİLYAR"
m$(2) = "MİLYON"
m$(3) = "BİN"
m$(4) = ""
a$ = Str(sayi)
If Left$(a$, 1) = "" Then pozitif = 1 Else pozitif = 0
a$ = Right$(a$, Len(a$) - 1)
For X = 1 To Len(a$)
If (Asc(Mid$(a$, X, 1)) > Asc("9")) Or (Asc(Mid$(a$, X, 1)) < Asc("0")) Then GoTo hata
Next X
If Len(a$) > 15 Then GoTo hata
a$ = String(15 - Len(a$), "0") + a$
For X = 1 To 15
v(X) = Val(Mid$(a$, X, 1))
Next X
a$ = ""
For X = 0 To 4
c(1) = v((X * 3) + 1)
c(2) = v((X * 3) + 2)
c(3) = v((X * 3) + 3)
If c(1) = 0 Then
e$ = ""
ElseIf c(1) = 1 Then
e$ = "Y&#220;Z"
Else
e$ = b$(c(1)) + "Y&#220;Z"
End If
e$ = e$ + y$(c(2)) + b$(c(3))
If e$ <> "" Then e$ = e$ + m$(X)
If (X = 3) And (e$ = "B&#304;RB&#304;N") Then e$ = "B&#304;N"
s$ = s$ + e$
Next X
If s$ = "" Then s$ = "SIFIR"
If pozitif = 0 Then s$ = "" + s$
yaz$ = s$
GoTo tamam
hata: yaz$ = "hata"
tamam:
End Function
'
Sub YazYTL()
If IsNumeric(Selection) Then
Selection = YTL(Selection)
End If
End Sub
'
Sub AutoExit()
Application.CommandBars("Text").Reset
Application.CommandBars("Fields").Reset
Application.CommandBars("Table Text").Reset
End Sub
[/vb:1:f8752a80cd]

Not: Kodlar Win2000 + Office2000 ile haz&#305;rlanm&#305;&#351;t&#305;r.



 
Moderatör tarafında düzenlendi:
Katılım
28 Temmuz 2004
Mesajlar
275
Sayın Raider,

Sizi çok yordum ama olay gittikçe güzelleşiyor. Yazmaya çekindiğim önemli bir konu Sayın fox'un da katkısıyla sayenizde halledildi.

Ama inanın ki sizin bu konuya yapabileceğiniz bir şey daha var. Ekle> Alan da daha önce görmediğim YazYTL yi şimdi görüyorum. Bana öyle geliyor ki buradan bir alan tanımlaması ile rakamın olduğu yere değil de yazının olmasını istediğimiz yere bir alan tanımlayabileceğiz.

Ne dersiniz? Yanılıyor muyum sizce?
 
Katılım
17 Mart 2005
Mesajlar
67
hepsini yaptım güzel oldu. peki macroyu kaldırmak için ne yapmalıyım.
modüle 1 i sildim ama sag tiklayinca yine ytl yaz cıkıyor
bunu da bildirebilseniz supper olacak
 
Katılım
29 Eylül 2004
Mesajlar
1,810
Excel Vers. ve Dili
Excel 2002 TR
Madem kaldıracaktınız neden sn. raider'ı bu kadar uğraştırdınız. :hiho: :hiho:

(100% espri niyetine)
 

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
Dokumana bir modul ekleyip a&#351;a&#287;&#305;dakini yap&#305;&#351;t&#305;rd&#305;ktan sonra, Test isimli proseduru &#231;al&#305;&#351;t&#305;r&#305;n...

Kod:
Sub Test()
Application.CommandBars("Text").Reset
Application.CommandBars("Fields").Reset
Application.CommandBars("Table Text").Reset
End Sub
 
Moderatör tarafında düzenlendi:

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
@Serpily;

Ekte bir ornek calismamı daha yolluyorum. Belki yine tam olarak istediginiz gibi bir sey degil ama, isinize yarayacagini umuyorum.

Dokumandaki tabloda kirmizi fontlu hucreler formullerle hesaplanmaktadir. Tablodaki mavi dolgu renkli hucre ise, diger kirmizi font renkli hucrelerin toplamini alan bir formul icermektedir. Basit bir tablo, maksat ornek olsun.

Tablonun en son hucresine de bu toplam degeri, yaziyle metin olarak yazdirilmaktadir.

Ekli *.zip dosyasindaki dokumani actiktan sonra tablodaki Baslik-1 ve Baslik-2 sutunlarindaki hucrelerde yer alan numerik degerleri istediginiz gibi degistirdikten sonra, MS Word tablolarinda alanlari gunceller gibi, farenin imleci dokumanin herhangibir yerindeyken klavyedeki F9 tusuna bastiginiz anda, hem sizin tablodaki formul iceren alanlariniz guncellenecek, hem de guncellenmis toplam yazi ile metin olarak yazdirilacaktir.

Ekli dosyadaki kodlarda, isin mantigini anlatan aciklamalari da satir aralarina yazdim ki, siz baska bir dosyada ve/veya tabloda yine ayni mantikla amaciniza ulasabilirsiniz. Hucre referansini ve sozkonusu "Bookmark" ın yerini kendi tablonuza gore degistirerek, her turlu tabloda bu isi rahatlikla yapabilirsiniz.

Benim bu konuda yapabilecegim bu kadar. Sizin bahsettiginiz gibi kullanici tanimli bir fonksiyonun tipki MS Excel'de oldugu gibi MS Word tablolarinda kullanilmasi sanirim mumkun degil.

Ornek dosya ektedir...
 
Moderatör tarafında düzenlendi:

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
Ve bu kez alternatif olarak, kodlarda Bookmark kullanmadan tıpkı MS Excel' de olduğu gibi hucre referanlarının kullanılmasıyla sorunun çözülmesini içeren alternatif dosya ektedir.
 
Moderatör tarafında düzenlendi:
Üst