HaThuy đã viết:Nhờ các bạn chỉ cho mình công thức tự động đổi từ số tiền bằng số sang bằng chữ với. Cảm ơn trước nhé!![]()

littlegirl đã viết:Help
Mình tải về rồi nhưng sao chữ k hiện là tiếng Việt , dù mình đã chỉnh font , bên mình sử dụng Unicode
Em là dân mới tiếp cận với excel chua lâu nên em chưa biết cách làm sao để giải nén.Liệu các bác có thể hướng dẫn em không ạSecret_grasses đã viết:
Bạn down add-in sau về,giải nén.Copy file vừa giải nén,sau đó vào tool/add-ins chọn browse===>paste===>click double vào add-ins đó===>click ok.
Vd: ở ô A1: 12.500.000đ
Ở ô A2 bạn gõ: =vnd(A1)
Kết quả: Mười hai triệu năm trăm ngàn đồng chẵn.
workman đã viết:Các bạn vào thư viện của WKT mà download phần addin của bạn Maika ấy. Cái đấy có đủ tool để đọc số ra chữ dưới các dạng font/bộ mã tiếng việt thông dụng, bao gồm ABC/TCVN, VNI, Unicode. Không nhất thiết phải convert sang TCNV rồi mới convert sang unicode đâu.

Secret_grasses đã viết:
Bạn down add-in sau về,giải nén.Copy file vừa giải nén,sau đó vào tool/add-ins chọn browse===>paste===>click double vào add-ins đó===>click ok.
Vd: ở ô A1: 12.500.000đ
Ở ô A2 bạn gõ: =vnd(A1)
Kết quả: Mười hai triệu năm trăm ngàn đồng chẵn.


thì bạn nối thêm cái đuôi là "đồng chẵn" vào nữa là được chứ có sao đâu nhờ?nhờ các bạn chỉ cho mình với mình làm đúng như vậy mà mình muốn thêm có chữ đồng nữa vì xếp mình nói phải có chữ đồng mới được ví dụ như chín triệu đồng chẵn còn mình làm theo công thức chỉ có chín triệu thoi

nhờ bạn cho mình đường link được không?Các bạn vào thư viện của WKT mà download phần addin của bạn Maika ấy. Cái đấy có đủ tool để đọc số ra chữ dưới các dạng font/bộ mã tiếng việt thông dụng, bao gồm ABC/TCVN, VNI, Unicode. Không nhất thiết phải convert sang TCNV rồi mới convert sang unicode đâu.

Mình đã dùng thử add-in của bạn nhưng khi thử kết quả:Tôi up AddIns “Đổi số ra chữ” này lên để ai có mục đích sử dụng như tôi thì down về dùng.
Xin nói trước là AddIns này tôi down trên diễn đàn và đã chỉnh sửa lại. Xin lỗi tác giả AddIns này. Lý do tôi chỉnh sửa là:
Khi đổi: 12,345.65 = Mười hai ngàn, ba trăm bốn nhăm đồng sáu nhăm
Tôi sửa AddIns này để khi đổi:
12,345.65 => =vnd(…)=Mười hai ngàn, ba trăm bốn sáu đồng chẵn
Cách sử dụng:
Copy AddIn theo đường dẫn: C:\Documents and Settings\Administrator\Application Data\Microsoft\AddIns
Khởi động Ecxel, vào Tool\Add-Ins\Browse… Chỉ theo đường dẫn trên đến AddIns “vnd”\OK.
Khởi động lại Ecxel.
AddIns này sử dụng font Unicode
Hy vọng có ích cho mọi người.

Function bac(A) As String
Dim s, cdv, ctr, cng, cty As String
Dim sdv, strieu, sng, sty As String
chuoi = ""
s = Trim(Str(A))
While Len(s) < 12
s = "0" + s
Wend
sdv = Right(s, 3)
sng = Mid(s, 7, 3)
strieu = Mid(s, 4, 3)
sty = Left(s, 3)
chuoi = IIf(doi(sty) <> " ", doi(sty) & " t?", "") & IIf(doi(strieu) <> " ", doi(strieu) & " triÖu", "") & IIf(doi(sng) <> " ", doi(sng) & " ngµn", "") & IIf(doi(sdv) <> " ", doi(sdv), "") & " ®ång ch½n"
bac = UCase(Left(Trim(chuoi), 1)) & Right(Trim(chuoi), Len(Trim(chuoi)) - 1) & "."
End Function
Function doi(c) As String
Dim dv, ch, tr, st1 As String
While Len(c) < 3
c = "0" & Trim(c)
Wend
dv = Right(c, 1)
ch = Mid(c, 2, 1)
tr = Left(c, 1)
st1 = ""
If tr = "0" Then
If ch = "0" Then
If dv = "0" Then
st1 = st1 & " "
Else
st1 = st1 & so(dv)
End If
Else
If dv = "0" Then
st1 = st1 & IIf(ch = "1", " mêi", so(ch) & " m¬i")
Else
st1 = st1 & IIf(ch = "1", " mêi", so(ch) & " m¬i") & IIf(dv = "1", " mèt", IIf(dv = "5", " n¨m", so(dv)))
End If
End If
Else
If ch = "0" Then
If dv = "0" Then
st1 = st1 & so(tr) & " tr¨m"
Else
st1 = st1 & so(tr) & " tr¨m linh" & so(dv)
End If
Else
If dv = "0" Then
st1 = st1 & so(tr) & " tr¨m" & IIf(ch = "1", " mêi", so(ch) & " m¬i")
Else
st1 = st1 & so(tr) & " tr¨m" & IIf(ch = "1", " mêi", so(ch) & " m¬i") & IIf(dv = "1", IIf(ch = "1", " mèt", " mèt"), IIf(dv = "5", " n¨m", so(dv)))
End If
End If
End If
doi = st1
End Function
Function so(c) As String
s = ""
Select Case c
Case "0"
s = s + " kh«ng"
Case "1"
s = s + " mét"
Case "2"
s = s + " hai"
Case "3"
s = s + " ba"
Case "4"
s = s + " bèn"
Case "5"
s = s + " n¨m"
Case "6"
s = s + " s¸u"
Case "7"
s = s + " b¶y"
Case "8"
s = s + " t¸m"
Case "9"
s = s + " chÝn"
End Select
so = s
End Function
Tốt nhất bạn mở VBA =Alt+f11 tạo modun và dán vào đoạn code sau:"mình sử dụng Vntime nha VD: muốn đọc số ô A1 bạn chỉ cần gõ =bac(A1)
PHP:Function bac(A) As String Dim s, cdv, ctr, cng, cty As String Dim sdv, strieu, sng, sty As String chuoi = "" s = Trim(Str(A)) While Len(s) < 12 s = "0" + s Wend sdv = Right(s, 3) sng = Mid(s, 7, 3) strieu = Mid(s, 4, 3) sty = Left(s, 3) chuoi = IIf(doi(sty) <> " ", doi(sty) & " t?", "") & IIf(doi(strieu) <> " ", doi(strieu) & " triÖu", "") & IIf(doi(sng) <> " ", doi(sng) & " ngµn", "") & IIf(doi(sdv) <> " ", doi(sdv), "") & " ®ång ch½n" bac = UCase(Left(Trim(chuoi), 1)) & Right(Trim(chuoi), Len(Trim(chuoi)) - 1) & "." End Function Function doi(c) As String Dim dv, ch, tr, st1 As String While Len(c) < 3 c = "0" & Trim(c) Wend dv = Right(c, 1) ch = Mid(c, 2, 1) tr = Left(c, 1) st1 = "" If tr = "0" Then If ch = "0" Then If dv = "0" Then st1 = st1 & " " Else st1 = st1 & so(dv) End If Else If dv = "0" Then st1 = st1 & IIf(ch = "1", " mêi", so(ch) & " m¬i") Else st1 = st1 & IIf(ch = "1", " mêi", so(ch) & " m¬i") & IIf(dv = "1", " mèt", IIf(dv = "5", " n¨m", so(dv))) End If End If Else If ch = "0" Then If dv = "0" Then st1 = st1 & so(tr) & " tr¨m" Else st1 = st1 & so(tr) & " tr¨m linh" & so(dv) End If Else If dv = "0" Then st1 = st1 & so(tr) & " tr¨m" & IIf(ch = "1", " mêi", so(ch) & " m¬i") Else st1 = st1 & so(tr) & " tr¨m" & IIf(ch = "1", " mêi", so(ch) & " m¬i") & IIf(dv = "1", IIf(ch = "1", " mèt", " mèt"), IIf(dv = "5", " n¨m", so(dv))) End If End If End If doi = st1 End Function Function so(c) As String s = "" Select Case c Case "0" s = s + " kh«ng" Case "1" s = s + " mét" Case "2" s = s + " hai" Case "3" s = s + " ba" Case "4" s = s + " bèn" Case "5" s = s + " n¨m" Case "6" s = s + " s¸u" Case "7" s = s + " b¶y" Case "8" s = s + " t¸m" Case "9" s = s + " chÝn" End Select so = s End Function
Minh đã làm theo code của bạn hoàn toàn hiệu nghiệm. Nhưng cho mình hỏi mình muốn có dấu phẩy ở hàng ngàn, triệu... thì viết lại code này thế nào nhỉ? vd: 1.234 = một ngàn, hai trăm ba mươi bốn ngàn đồng. Tại khi viết hóa đơn, chứng từ mình sd dấu phẩy quen rồi.
Cảm ơn bạn nhiều!
đây là code trên diễn đàn sử dụng font vni nèBạn kiểm tra lại nha. Mình đã test code thửa của bạn và vẫn thấy lỗi.
![]()
Public Function VND(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 = "Khoâng ñoàng"
Else
If Abs(BaoNhieu) >= 1E+15 Then '1E+15 töùc 1.000.000.000.000.000 1 trieäu tyû
KetQua = "Soá quaù lôùn"
Else
If BaoNhieu < 0 Then
KetQua = "Tröø" & Space(1)
Else
KetQua = Space(0)
End If
SoTien = Format(Abs(BaoNhieu), "##############0.00") '18 digits with 2 decimal
SoTien = Right(Space(15) & SoTien, 18)
Hang = Array("None", "traêm", "möôi", "gì ñoù")
Doc = Array("None", "ngaøn tyû", "tyû", "trieäu", "ngaøn", "ñoàng", "xu")
Dem = Array("None", "moät", "hai", "ba", "boán", "naêm", "saùu", "baûy", "taùm", "chí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 = "ñoàng" & Space(1)
Else
Chu = Space(0)
End If
Case ".00", ",00"
Chu = "chaü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öôø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 = "leû" & Space(1)
End If
End Select
Chu = Chu & Dich
Next j
End Select
ViTri = InStr(1, Chu, "möôi moät", 1)
If ViTri > 0 Then Mid(Chu, ViTri, 9) = "möôi moát"
KetQua = KetQua & Chu
End If
Next i
End If
End If
VND = UCase(Left(KetQua, 1)) & Mid(KetQua, 2)
End Function






Public Function DocsoUNI(tienvao)
Dim ketqua, sotien, nhom, chu, dich, s1, s2, s3 As String
Dim i, j, vitri As Byte, s As Double
Dim hang, doc, dem
tienvao = Int(tienvao)
If tienvao = 0 Then
ketqua = "Kh" & ChrW(244) & "ng " & ChrW(273) & ChrW(7891) & "ng."
Else
If Abs(tienvao) >= 1E+15 Then
ketqua = "S" & ChrW(7889) & " qu" & ChrW(225) & " l" & ChrW(7899) & "n."
Else
If tienvao <= 0 Then
ketqua = "Tr" & ChrW(7915) & Space(1)
Else
ketqua = Space(0)
End If
sotien = Abs(tienvao)
sotien = Right(Space(15) & sotien, 15)
hang = Array("none", "tr" & ChrW(259) & "m", "m" _
& ChrW(432) & ChrW(417) & "i", "kh" & ChrW(225) & "c")
doc = Array("none", "ng" & ChrW(224) & "n t" & ChrW(7927), "t" & ChrW(7927), _
"tri" & ChrW(7879) & "u", "ng" & ChrW(224) & "n", ChrW(273) & ChrW(7891) & "ng.")
dem = Array("none", "m" & ChrW(7897) & "t", "hai", "ba", "b" & ChrW(7889) & "n", _
"n" & ChrW(259) & "m", "s" & ChrW(225) & "u", "b" & ChrW(7843) _
& "y", "t" & ChrW(225) & "m", "ch" & ChrW(237) & "n")
For i = 1 To 5
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(7891) & "ng ch" & ChrW(7861) & "n" & Space(1)
Else
chu = Space(0)
End If
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(417) & "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
DocsoUNI = UCase(Left(ketqua, 1)) & Mid(ketqua, 2)
End Function
Bạn down add-in sau về,giải nén.Copy file vừa giải nén,sau đó vào tool/add-ins chọn browse===>paste===>click double vào add-ins đó===>click ok.
Vd: ở ô A1: 12.500.000đ
Ở ô A2 bạn gõ: =vnd(A1)
Kết quả: Mười hai triệu năm trăm ngàn đồng chẵn.



thì bạn nối thêm cái đuôi là "đồng chẵn" vào nữa là được chứ có sao đâu nhờ?
các tiện ích đều chung quy lại là tạo ra một hàm mới trong excel
do đó cũng có chức năng như các hàm bình thường.
VD : một hàm tự tạo để đọc số thành chữ có tên VNUD không có chữ đồng ở sau thì bạn làm nó có như sau:
= VNUD(a1) &" Đồng Chẵn "
bạn có thể tham khảo file này .








Bạn dùng Add in ở đây http://www.giaiphapexcel.com/forum/showthread.php?1047-XLL-Add-In-%C4%90%E1%BB%95i-s%E1%BB%91-th%C3%A0nh-ch%E1%BB%AF-T%E1%BB%91c-%C4%91%E1%BB%99-nhanh-t%E1%BB%91i-%C4%91a-nhanh-h%C6%A1n-80-c%C3%A1c-Addins-kh%C3%A1cmình muốn đọc số USD thì làm thế nào hả các bác