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

Katılım
28 Temmuz 2004
Mesajlar
275
Sayın Raider,

BOOKMARK kullandığınızı söylediğiniz örneği büyük bir merakla açtım, çünkü Cuma günü alanlar ve ilgili konularla epey haşır neşir olmuş ama bir sonuç elde edemeyerek ayrılmıştım iş yerinden. Bununla ilgili bir örnek görmek çok iyi olacaktı yani.

Ancak zip'in bir azizliği midir nedir her iki örneğinizde de Yazı ile yazılması gereken yerde herhangi bir kod yazmıyor ve 'sayı'yı alan satırda hata veriyor. Benim bilgisayarda bir ayar sorunu filan varsa onu da tespit edemedim.

Usandığınız zaman çıtlatın bir daha sormam inanın. :cry:
 

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
Serpil hanım;

Ã?rneklerin hepsini test ederek mesajlara ekledim ve şimdi "Bookmark" ile ilgili örneği tekrar yukarıdan download edip, açtım.

Ã?rneklerin hepsi de çalışıyor.

Sanıyorum, karıştırdığınız konu şu;

Her iki örnekte de sayısal "Toplam" değeri tablonun ilgili hücresine metin olarak yazdırılırken, sözkonusu hücrede herhangibir alan tanımlanmamış ve dolayısi ile de herhangibir formül yoktur.

"Bookmark" ile ilgili örnekte, hücrenin kendisine "Bookmark" konularak kodlarda metinin yazdırıldığı hücreye bu "Bookmark" ile müracaat edilmiş, diğer alternatif örnekte ise, hücreye direkt olarak kendi hücre adresiyle müracaat edilmiştir.

Yani, her iki örnekte de yazıyla yazdırılan metin hücresinde herhangibir formul veya fonksiyon yoktur. Dosyayı açtıktan sonra tablodaki alanları güncellemek için klavyedeki F9 tuşuna bastığınız anda, formullü hücreler güncellenecek ve de güncellenmiş "Toplam" metin olarak kendi hücresine yazdırılacaktır.

Office2000 ile kodlarda bir hata yokken sizde niye hata veriyor ve ne hatasından bahsediliyor anlayamadım.

Sanırım sizden başka da örnekleri deneyen olmadığına göre, burada kendi kendimize debelenip duruyoruz.

Dosyaların ikisi de gayet güzel çalışıyor ama sizdeki problem nedir onu bilemiyorum...
 
Katılım
17 Mart 2005
Mesajlar
67
merak en buyuk hastalik iste. gorerk ogrenmek istedim. sonra da baska birinin bilgisayarini mincikladigim icin eski haline getirmem boynumun borcuydu.

tesekkürler... :hihoho:
 
Katılım
28 Temmuz 2004
Mesajlar
275
:oops:

Çok üzgünüm ve de çok özür diliyorum.

Araçlar>Seçenekler>Görünüm>Alan kodları seçili kalmış. Bu yüzden Myval olarak =sum(........ ne varsa alıyor ve sonra da tip uyumsuzluğu veriyormuş.

Haklısınız dosyalarınız çalışıyor. Biraz çalışıp bir şeyle öğrenmeliyim bu dosyalardan. Teşekkürlerimle.
 

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ı:
Araçlar>Seçenekler>Görünüm>Alan kodları seçili kalmış.
O zaman bir daha benzer bir durumla karşılaşmamak için, aşağıdaki kırmızı ile belirtilen ilaveyi de yaparsanız, daha iyi olur gibi geliyor.

Kod:
Sub RefreshTable()
[COLOR=red]ActiveWindow.View.ShowFieldCodes = False[/COLOR]
'
'Tabloda Toplam numerik degerinin metin olarak yazdirildigi hucreye ....
......................
.............
Umarım dosyalar size faydalı olur.
 
Moderatör tarafında düzenlendi:
Katılım
7 Ocak 2006
Mesajlar
50
Excel Vers. ve Dili
Türkçe Office2003 Pro
Gramla Fonksİyonu Worde Uyarlama

Haluk' Alıntı:
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.
Sayın haluk beyin word de yaptığı yazıyla fonksiyonunu kullanıyorum.
ekte sunduğum excel dosyasındaki gramla fonksiyonunu worde uyarlayabilirmiyiz. (haluk beyin yaptığı şekilde)bu çevirim işlemini arkadaşlarımız yapabilirlermi. tüm arkadaşlara iyi çalışmalar dilerim
 
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
Kilogram - Gram işi için; bu konu başlığında bir önceki sayfada yer alan aşağıdaki açıklamaları okuyup, burada anlatıldığı şekilde bu mesajın sonundaki kodları kullanabilirsiniz.

Haluk' Alıntı:
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;


Not: Kodlar Win2000 + Office2000 ile hazırlanmıştır.
Kod:
'***************************************************************************
'* MS Word dokumanlarinda sayi ile yazilmis bir degerin *
'* metin biciminde Kg ve Gr olarak yazilmasi ile ilgili bir calismadir. *
'* *
'* Burasi Excel vadisi... *
'* Raider ® *
'* Nisan 2006 *
'* *
'***************************************************************************
'
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:="TagKG").Delete
MyBar2.FindControl(Tag:="TagKG").Delete
MyBar3.FindControl(Tag:="TagKG").Delete
On Error GoTo 0
'
Set MenuObject = MyBar.Controls.Add(Type:=msoControlButton, Temporary:=True)
MenuObject.Tag = "TagKG"
MenuObject.Caption = "KG yaz... (Raider ®)"
MenuObject.BeginGroup = True
MenuObject.OnAction = "YazKG"
MenuObject.FaceId = 7
'
Set MenuObject = MyBar2.Controls.Add(Type:=msoControlButton, Temporary:=True)
MenuObject.Tag = "TagKG"
MenuObject.Caption = "KG yaz... (Raider ®)"
MenuObject.BeginGroup = True
MenuObject.OnAction = "YazKG"
MenuObject.FaceId = 7
'
Set MenuObject = MyBar3.Controls.Add(Type:=msoControlButton, Temporary:=True)
MenuObject.Tag = "TagKG"
MenuObject.Caption = "KG yaz... (Raider ®)"
MenuObject.BeginGroup = True
MenuObject.OnAction = "YazKG"
MenuObject.FaceId = 7
'
Set MyBar = Nothing
Set MyBar2 = Nothing
Set MyBar3 = Nothing
Set MenuObject = Nothing
End Sub
'
Function KG(sayi)
sayi = Round(sayi, 3)
X = InStr(1, sayi, ",")
If X > 0 Then
KiloGram = yaz$(Mid(sayi, 1, X - 1)) & " Kg "
TempGr = Mid(sayi, X + 1, 98)
If Len(TempGr) = 1 Then TempGr = TempGr * 10
Gram = yaz$(TempGr) & " Gr "
Else
KiloGram = yaz$(sayi) & " Kg "
End If
KG = KiloGram & Gram
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ÜZ"
Else
e$ = b$(c(1)) + "YÜZ"
End If
e$ = e$ + y$(c(2)) + b$(c(3))
If e$ <> "" Then e$ = e$ + m$(X)
If (X = 3) And (e$ = "BİRBİN") Then e$ = "Bİ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 YazKG()
If IsNumeric(Selection) Then
Selection = KG(Selection)
End If
End Sub
'
Sub AutoExit()
Application.CommandBars("Text").Reset
Application.CommandBars("Fields").Reset
Application.CommandBars("Table Text").Reset
End Sub
 
Moderatör tarafında düzenlendi:
Katılım
7 Ocak 2006
Mesajlar
50
Excel Vers. ve Dili
Türkçe Office2003 Pro
Haluk bey yazdığınız kodlar kilogram ve gram olarak tam istediğim gibi santigramıda yazarsa tam istediğim gibi olacak ilginize teşekkür ederim elinize sağlık.
Örnek:1.254,899 BİRKİLOGRAMİKİYÜZELLİDÖRTGRAMVİRGÜLSEKİZYÜZDOKSANDOKUZSANTİGRAM
(santigram hanesi 3 hane olacak yani virgülden sonra 3 hane olaçak)


1.254,899 BİRKİLOGRAMİKİYÜZELLİDÖRTGRAMVİRGÜLSEKİZYÜZDOKSANDOKUZSANTİGRAM
A1 HÜCESİNİN BİÇİMİ
#.##0,##0.

ÖNEMLİ RAKAMIN YAZILI OLDUĞU HÜCRE BİÇİMİ A3 HÜCRESİNDE GÖSTERİLDİĞİ FORMATTA OLACAK RAKAMLARI YAZARKEN MİLİGRAM CİNSİ YAZILACAK HÜCRE KENDİ VİRGÜLÜNÜ VE NOKTASINI YAZAR

(Excel de)

Dim b$(9)
Dim y$(9)
Dim m$(4)
Dim v(15)
Dim c(3)

Function gramla$(sayi)

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) = ""
m$(1) = "TON"
m$(2) = "KİLOGRAM"
m$(3) = "GRAMVİRGÜL"
m$(4) = "SANTİGRAM"

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

s$ = ""
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ÜZ"
Else
e$ = b$(c(1)) + "YÜZ"
End If
e$ = e$ + y$(c(2)) + b$(c(3))
If e$ <> "" Then e$ = e$ + m$(x)
If (x = 3) And (e$ = "BİRBİN") Then e$ = "BİN"
s$ = s$ + e$
Next x

If s$ = "" Then s$ = "SIFIR"
If pozitif = 0 Then s$ = "Eksi" + s$
gramla$ = s$
GoTo tamam
hata: gramla$ = "Hata"
tamam:
End Function


şeklinde kullanıyorum
 
Katılım
7 Temmuz 2004
Mesajlar
327
Excel Vers. ve Dili
office xp pro türkçe
Sayın Haluk, Hocam
Paylaşımınız için teşekkürler gerçekten güzel kodlamalar

çalışmalarınızda başarılar
 
Katılım
30 Aralık 2005
Mesajlar
6
Excel Vers. ve Dili
excel 2003 türkçe
güzel bir çalışma elinize sağlık ama 565.67 rakamın üzerine gidip yaz dediğimde"ELLİALTIBİNBEŞYÜZALTMIŞYEDİ YENİ TÜRK LİRASI "olarak yazılıyor.kuruşları dikkate almıyor.
 
Katılım
24 Mayıs 2005
Mesajlar
462
Excel Vers. ve Dili
Excel 2003 Türkçe
Sayın Haluk bey, bu konuyla ilgili bir sorum olacak, Userform üzerindeki textbox1`e yazdığım metin içerisinde 1.530,50-YTL (Binbeşyüzotuz-YeniTürkLirası Elli Yeni Kuruş) yazmak yerine sadece 1.530,50-YTL yazıp bahsettiğiniz gibi mause sağ tuşu ile YTL yaz`ı seçebilirmiyiz. Yani bu textbox üzerinde de olurmu.

Lütfen bu konuda da bilgi verebilirmisiniz. Saygılarımla. :dua:
 

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

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
Ongun' Alıntı:
.......
1.530,50-YTL yazıp bahsettiğiniz gibi mause sağ tuşu ile YTL yaz`ı seçebilirmiyiz. Yani bu textbox üzerinde de olurmu.
Aşağıdaki resimde görüldüğü gibi, bu iş ekli dosyadaki kodlarla yapılmaktadır.

 
Moderatör tarafında düzenlendi:
Katılım
30 Aralık 2005
Mesajlar
6
Excel Vers. ve Dili
excel 2003 türkçe
sn.haluk daha öncede sizin dediğiniz şekilde 565,67 olarak yazdım olmamıştı belki olmuştur diye tekrar denedim ama olmuyor hata nerde olabilir,yada sizde kuruş yazan makro varsa sayfaya atmanız mümkünmü işimize çok yarayan bir makro olduğu için.
teşekkürler
 

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
mehmet47' Alıntı:
......
denedim ama olmuyor hata nerde olabilir
Herhalde şaka yapıyorsunuz. Toplam 3 sayfa olan bu mesaj başlığındaki kodların hiçbirinde bahsettiğiniz türden bir hata yok ve hepsi Lira - Kuruş yazar.

Ayrıca sorduğunuz kodlar da dosyalarda ve sayfalarda yer almaktadı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
atkbursa' Alıntı:
Haluk bey yazdığınız kodlar kilogram ve gram olarak tam istediğim gibi santigramıda yazarsa tam istediğim gibi olacak ilginize teşekkür ederim elinize sağlık.
Örnek:1.254,899 BİRKİLOGRAMİKİYÜZELLİDÖRTGRAMVİRGÜLSEKİZYÜZDOKSANDOKUZSANTİGRAM
(santigram hanesi 3 hane olacak yani virgülden sonra 3 hane olaçak)
Ekli dosyayı inceleyebilirsiniz...
 
Moderatör tarafında düzenlendi:
Katılım
30 Aralık 2005
Mesajlar
6
Excel Vers. ve Dili
excel 2003 türkçe
sn.Haluk bey eğer sorun kullandığım ofis 2003 değilse inanın şaka yapmıyorum.Sizin yazdığınız kodları tek tek yazmadım kopyala yapıştır ile yaptım YTL çıkıyor yeniKuruş çıkmıyor.ne yapalım kuruşlarıda attık bir şekilde yazacağız (Not Gönderdiğiniz kodların 0fis 2000 iin olduğunu belirtmiştiniz)
 
Üst