File chuyển số sang viết bằng chữ

  • Thread starter HyperVN
  • Ngày gửi
F

ForestC

Guest
11/1/05
377
1
0
44
E'rywhere
Thực ra cái lỗi chữ "tỷ" này trước đây đã có một bạn phát hiện ra và mình đã sửa nhưng chưa update lại file trên Thư viện. Nếu bạn nào đang dùng NameManager cũ của MaiKa và thường hay dùng UNICODE thì các bạn có thế vào phần Module của add-in này, chọn cái VNUD, tìm đến dòng số 19, (dòng Doc= ấy), tìm số 272 và sửa thành 7927 (có 2 cái) là khắc phục được cái chữ "tỷ" ấy thôi.
 
Khóa học Quản trị dòng tiền
P

Phanthanh

Guest
27/12/04
18
0
0
Da Nang
www.vnkhuyenmai.com
Cái hàm VNUD của Maika rất có ích cho tớ đấy.
- Cho 1 tô Mì Quảng
- Mì Quảng nóng hổi vừa thổi vừa nhai đây các bạn ơi !!!!!
Ngon không Workman ? ai ăn tôi gọi thêm 1/2 tô nữa ?
Mì Quảng đâu có nóng mà sao tôi nóng dữ .
 
M

mybinh

Guest
24/5/05
10
0
1
43
HCMC
mình cũng đã cài và chạy thử chương trình, mọi thứ đều okê cả, nhung khi tắt đi bật lại thì lại không xài được, có ai đó có thể hướng dẫn cho mình không, mình không rành mấy cái này lắm, chỉ biết copy sang xài thôi, hehe. Thanks
 
W

workman

Guest
22/7/05
372
2
0
52
Ho Chi Minh
Cách dễ nhất là bạn copy cái NameManager của Maika vào thư mục XLStart. Thư mục này ở trong Program Files\Microsoft Office\Office10 (Nếu không có tìm dùng tiện ích search là ra ngay ấy mà).

Nếu bạn tìm hoài không ra cái XLStart thì chịu khó vào Tool\Add-In, rồi browse đến nơi bạn lưu tập tin NameManager.xla là xong.

Bạn thử đi nhé.
 
W

workman

Guest
22/7/05
372
2
0
52
Ho Chi Minh
Bữa nay nghỉ lễ, các bậc tiền bối đi chơi hết rồi. Tôi cũng là 1 thành viên mới, thôi thì thành viên mới xin chào mừng thành viên mới hơn vậy.

Bạn phải vào trong thư viện, tìm đến phần Add-In rồi load cái NameManager của bác Maika xuống. Làm các bước như phần hướng dẫn trong diễn đàn này. Thế là xong.

Nếu không tìm ra, thì vào tạm đây

http://webketoan.com/thuvien/redirect.php?dlid=33&PHPSESSID=0cee6fa7ab567a7fb6784cc13f4f89f3

để download nhé.
 
W

workman

Guest
22/7/05
372
2
0
52
Ho Chi Minh
Bạn đã làm đến bước nào rồi?

1. Download Namemanager.xla?
2. Unzip cái file này vào thư mục XLStart?
3. Khởi động excel.

À mà nhớ là vào Tool/Option/Security/Macro Security. Đánh dấu security ở mức Medium hoặc Low thôi nhé. Có thế chương trình mới chạy được.
 
M

mybinh

Guest
24/5/05
10
0
1
43
HCMC
cảm ơn anh workman, em đã chạy được chương trình chuyển tiền từ số sang chữ, nhưng chữ tỷ em đã sửa đúng như hướng dẫn, nó chỉ chạy đúng trên file đó, sang file khác nó lại đánh sai chữ tỷ. Anh có thể hướng dẫn giúp em được không ạ
 
F

ForestC

Guest
11/1/05
377
1
0
44
E'rywhere
Thôi, tôi gửi mọi người NM mới. NM mới đã được sửa chữ tỷ trong hàm vnud() và nếu có muốn vào form quản lý names thì bạn bấm Ctrl+M (M là MaiKa hay là NameManager ? Không biết) Chỉ khi nào bạn có ít nhất một Name thì nó mới hiện lên form quản lý thôi, còn không nó chỉ hiện lên ... tình yêu của bạn, thôi thì hiện lên cái gì thì hiện, chẳng hiện ra thì thôi.
Chúc mọi người luôn vui vẻ và tham gia EFC thật nhiệt tình.

http://blackvisa.org/maika/namemanager.zip
 
Sửa lần cuối:
T

tuankq

Cao cấp
27/4/05
245
2
0
Hanoi, Vietnam
Tôi có xài hàm saymoney (...) để chuyển số ra chữ nhưng chỉ dùng đc với font chữ .Vn... (như .Vntime, .Vnarial,...) mà ko dùng đc Unicode.
Bạn nào có cách chuyển sang dùng font Unicodẽin chỉ điểm cho tôi với.
 
W

workman

Guest
22/7/05
372
2
0
52
Ho Chi Minh
Bác Maika nói đúng đấy. Nếu bạn dùng saymoney() để chuyển số ra font ABC, rồi dùng TCVN3toUnicode() để đổi ABC ra Unicode thì dài dòng quá.

Bạn lấy cái Name Manager của Maika để chuyển trực tiếp từ số ra Unicode luôn thì có lẽ là gọn và kinh tế hơn (hì hì, tôi là dân kế toán chuyên nghiệp mà...)
 
W

workman

Guest
22/7/05
372
2
0
52
Ho Chi Minh
ToDucThanh nói:
Hom nay to doc thay muc nay, to khoai lam, co ai ra tay nghia hiep huong dan cho to voi. to chi biet load NameManager ve XLStart roi con ngoai ra chang biet gi nua. cac buoc bat dau tu dau vay co ai do giup to voi , to rat dzot vitinh nhung lai rat khoai no.
Mong cac bac chi giup (cu the mot ti nha).
da ta !! da ta!!!
Dia chi Mail cua to la: to_ducthanh@yahoo.com
Bạn DucThanh mến.

Làm gì mà bạn khách sáo thế. Ở đây ai cũng sẵn lòng giúp đỡ người khác cả, tôi tin rằng bạn cũng thế.

Bạn đã download và chép vào XLStart là xong rồi đấy. Giả sử bạn đang ở ô B2, số bạn cần dịch ra chữ ở ô A1. Bây giờ nếu bạn muốn dịch số ra font ABC, bạn gõ công thức = vnd(A1)
Nếu bạn muốn dịch số ở ô A1 sang font VNI, bạn gõ công thức =VNID(A1)
Còn nếu bạn là người khoái xài font Unicode cho hợp thời trang thì gõ công thức = VNUD(A1).

Bạn lưu ý là phải set macro security ở mức low nhé.

Nếu vẫn không được thì bạn thử vào trong tools / add-in, rồi chọn Browse. Tìm đến nơi bạn lưu file Name Manager.xla. Chắc chắn sẽ chạy được.

Chúc bạn thành công.
 
C

Catty

Guest
3/9/05
2
0
0
Hanoi
Catty mong cac Bac chi dan them

Cũng với NameManager như vậy.
chuyển số tiền vnd sang chữ tiếng việt thi ngon lành rui...
Nhung nếu sang tiếng Anh thì mần răng
Vd: 10.000 vnd
thành: Ten thousand dong

Hoặc trong trường hợp số tiền là ngoại tệ
Vi du:10 USD
Thành: Mười đô la Mỹ.
Hoặc:Ten United States Dollars

Mong các Bác giúp tui nha! Tui sẽ hậu tạ sau !!!!!!!!!!!
:0frown:
 
F

ForestC

Guest
11/1/05
377
1
0
44
E'rywhere
Bạn kiểm tra thử hộ MK xem trong NM của mình đã có hàm USD chưa, nếu chưa có bạn chèn thêm đoạn code này vào để có thể sử dụng được hàm USD nhé:

Public Function USD(WhatNumber)
Dim ToRead, NumString, Group, Word As String
Dim I, J As Byte, W, X, Y, Z As Double
Dim FristColum, SecondColum, ReadMetho
If WhatNumber = 0 Then
ToRead = "None"
Else
If Abs(WhatNumber) >= 1E+15 Then
ToRead = "Too long number ???"
Else
FristColum = Array("None", "one", "two", "three", "four", "five", "six", "seven", "eight", "nine", "ten", "eleven", "twelve", "thirteen", "fourteen", "fifteen", "sixteen", "seventeen", "eightteen", "nineteen")
SecondColum = Array("None", "None", "twenty", "thirty", "forty", "fifty", "sixty", "seventy", "eighty", "ninety")
ReadMetho = Array("None", "trillion", "billion", "million", "thousand", "dollars", "cents")
If WhatNumber < 0 Then
ToRead = "Minus" & Space(1)
Else
ToRead = Space(0)
End If
NumString = Format(Abs(WhatNumber), "##############0.00")
NumString = Right(Space(15) & NumString, 18)
For I = 1 To 6
Group = Mid(NumString, I * 3 - 2, 3)
If Group <> Space(3) Then
Select Case Group
Case "000"
If I = 5 And Abs(WhatNumber) > 1 Then
Word = "dollars" & Space(1)
Else
Word = Space(0)
End If
Case ".00"
Word = "only"
Case Else
X = Val(Left(Group, 1))
Y = Val(Mid(Group, 2, 1))
Z = Val(Right(Group, 1))
W = Val(Right(Group, 2))
If X = 0 Then
Word = Space(0)
Else
Word = FristColum(X) & Space(1) & "hundred" & Space(1)
If W > 0 And W < 21 Then
Word = Word & "and" & Space(1)
End If
End If
If I = 6 And Abs(WhatNumber) > 1 Then
Word = "and" & Space(1) & Word
End If
If W < 20 And W > 0 Then
Word = Word & FristColum(W) & Space(1)
Else
If W >= 20 Then
Word = Word & SecondColum(Y) & Space(1)
If Z > 0 Then
Word = Word & FristColum(Z) & Space(1)
End If
End If
End If
Word = Word & ReadMetho(I) & Space(1)
End Select
ToRead = ToRead & Word
End If
Next I
End If
End If
USD = UCase(Left(ToRead, 1)) & Mid(ToRead, 2)
End Function

P/S : Hàm trên chưa được MaiKa kiểm tra lại vì máy đang dùng không có Excel. Hy vọng không có nhiều lỗi trọng yếu trong đó.
 
W

workman

Guest
22/7/05
372
2
0
52
Ho Chi Minh
Đã gửi message cho bác Ducthanh. Bác làm thử bằng Add-In đi nhé. Hy vọng sẽ chạy tốt.

Yêu cầu của bác Catty: nhờ bác Maika làm thêm tí nữa nhé. Chỉ sửa cái chữ đồng thành đô la (đọc USD ra chữ Việt), và sửa chữ dollar ra chữ "đồng" (đọc VND ra tiếng Anh). Với sức của Maika, bạn làm một tí là xong ngay ấy mà. Tôi hiện đang công tác, xài máy công cộng nên ko có đủ "đồ chơi".
 
W

workman

Guest
22/7/05
372
2
0
52
Ho Chi Minh
Đợi mãi không thấy Maika câu cá, tôi post tạm cái này cho bác Catty xài đỡ. Thế nào tôi cũng ra Quang Ninh 1 chuyến, lúc ấy hi vọng bác Maika có cá cho tôi ăn.

Hàm dịch ra tiếng Việt (UniCode), dùng chữ đô la:

Function USDVU(baonhieu)
Dim KetQua, SoTien, Nhom, Chu, Dich, S1, S2, S3 As String
Dim I, J, ViTri As Byte, S As Double
Dim Hang, Doc, Dem
If baonhieu = 0 Then
KetQua = "Kh" & ChrW$(244) & "ng " & ChrW$(273) & ChrW$(244) & " la"
Else
If Abs(baonhieu) >= 1E+15 Then
KetQua = "S" & ChrW$(7889) & " qu" & ChrW$(225) & " l" & ChrW$(7899) & "n - H" & ChrW$(224) & "m " & ChrW$(273) & ChrW$(7893) & "i s" & ChrW$(7889) & " ra ch" & ChrW$(7919) & " Vi" & ChrW$(7879) & "t Nam; font ch" & ChrW$(7919) & " .Vntime - Copyright by MaiKa of AQN (0953-357-988)"
Else
If baonhieu < 0 Then
KetQua = ChrW$(194) & "m" & Space(1)
Else
KetQua = Space(0)
End If
SoTien = Format(Abs(baonhieu), "##############0.00")
SoTien = Right(Space(15) & SoTien, 18)
Hang = Array("None", "tr" & ChrW$(259) & "m", "m" & ChrW$(432) & ChrW$(417) & "i", "g" & ChrW$(236) & " " & ChrW$(273) & "ã")
Doc = Array("None", "ng" & ChrW$(224) & "n t" & ChrW$(7927), "t" & ChrW$(7927), "tri" & ChrW$(7879) & "u", "ng" & ChrW$(224) & "n", ChrW$(273) & ChrW$(244) & " la", "xu")
Dem = Array("None", "m" & ChrW$(7897) & "t", "hai", "ba", "b" & ChrW$(7889) & "n", "n" & ChrW$(259) & "m", "s" & ChrW$(225) & "u", "b" & ChrW$(7849) & "y", "t" & ChrW$(225) & "m", "ch" & ChrW$(237) & "n")
For I = 1 To 6
Nhom = Mid(SoTien, I * 3 - 2, 3)
If Nhom <> Space(3) Then
Select Case Nhom
Case "000"
If I = 5 Then
Chu = ChrW$(273) & ChrW$(244) & " la" & Space(1)
Else
Chu = Space(0)
End If
Case ".00"
Chu = "ch" & ChrW$(7861) & "n"
Case Else
S1 = Left(Nhom, 1)
S2 = Mid(Nhom, 2, 1)
S3 = Right(Nhom, 1)
Chu = Space(0)
Hang(3) = Doc(I)
For J = 1 To 3
Dich = Space(0)
S = Val(Mid(Nhom, J, 1))
If S > 0 Then
Dich = Dem(S) & Space(1) & Hang(J) & Space(1)
End If
Select Case J
Case 2 And S = 1
Dich = "m" & ChrW$(432) & ChrW$(7901) & "i" & Space(1)
Case 3 And S = 0 And Nhom <> Space(2) & "0"
Dich = Hang(J) & Space(1)
Case 3 And S = 5 And S2 <> Space(1) And S2 <> "0"
Dich = "l" & Mid(Dich, 2)
Case 2 And S = 0 And S3 <> "0"
If (S1 >= "1" And S1 <= "9") Or (S1 = "0" And I = 4) Then
Dich = "l" & ChrW$(7867) & Space(1)
End If
End Select
Chu = Chu & Dich
Next J
End Select
ViTri = InStr(1, Chu, "m" & ChrW$(432) & ChrW$(417) & "i m" & ChrW$(7897) & "t", 1)
If ViTri > 0 Then Mid(Chu, ViTri, 9) = "m" & ChrW$(432) & ChrW$(417) & "i m" & ChrW$(7889) & "t"
KetQua = KetQua & Chu
End If
Next I
End If
End If
USDVU = UCase(Left(KetQua, 1)) & Mid(KetQua, 2)
End Function

Cái này thực ra là hàm của bác Maika viết. Tôi chỉ xí xọn sửa lại 1 tí thôi. Vỗ tay cảm ơn bác Maika đã bỏ công sáng tạo nào... :banana: :banana: :banana:
 
P

PHUONGTHUY344

Guest
28/9/05
3
0
0
40
HCMC
toi da chinh phan hangtram, hangchuc, hangdonvi

toi da sua phan tren, nhung chuong trinh van bao loi [HASHTAG]#value[/HASHTAG], xin vui long huong dan lai cho tui cach su dung voi :0frown: :0frown: :0frown:
HyperVN nói:
hangtram = so1 100
hangchuc = (so1 - hangtram * 100) 10
hangdonvi = so1 - (so1 10) * 10

Ồ xin lỗi, các bạn sửa thành

hangtram = so1 - 100
hangchuc = (so1 - hangtram * 100) - 10
hangdonvi = so1 - (so1 - 10) * 10
 
P

PHUONGTHUY344

Guest
28/9/05
3
0
0
40
HCMC
xin vui long huong dan ky cho su dung chuong trinh " chuyen so thanh chu trong excel " vui long huong dan cho toi nhung kha nang bao loi [HASHTAG]#value[/HASHTAG] , # name
 
H

hvtgroup

Ông lái đò...
15/3/04
377
0
16
HaiPhong
- Các bạn copy file XLA này về máy sau đó vào menu Tools/Add-ins... chọn nút lệnh Browse... để add file sau đó dùng Function: SO2CHU(n)
- Nếu muốn sửa đọn code chọn menu Tools/Macro/Visual Basic Editor
 

Đính kèm

  • so2chu.rar
    7.6 KB · Lượt xem: 299
Sửa lần cuối:

Xem nhiều

Webketoan Zalo OA