Đăng ký học Excel và VBA cùng GPE tháng 10 - TPHCM

Đăng ký học Excel và VBA cùng GPE tháng 11 - TPHCM

Add-in: Đổi số sang chữ trong Excel sử dụng font Unicode

Thảo luận trong 'Các Add-ins cho excel' bắt đầu bởi infes, 7 Tháng mười hai 2006.

  1. infes

    infes Thành viên mới

    Gởi các bạn Add-in: Đổi số sang chữ trong Excel sử dụng font Unicode.
    Cách sử dụng:
    1. Chép file Doiso.XLA vào thư mục Add-in
    Đối với Excel XP trên Windows XP:
    C:\Documents and Settings\UserName\Application Data\Microsoft\AddIns
    Đối với Excel 2000 trên Windows 98:
    C:\Windows\Application Data\Microsoft\AddIns
    Đối với Excel 97 trên Windows 98:
    C:\Program Files\Microsoft Office\Office\Library
    2. Khởi động lại Excel, cài đặt add-in vừa tạo cho Excel bằng cách chọn trình đơn Tools\ Add-Ins để mở hộp thoại Add-Ins, chọn tên add-in " Doiso" trong danh sách Add-Ins available, rồi bấm OK.
    3. Hàm sử dụng: vnd(số cần đổi")

    Hy vong Add-in này có thể giúp ích cho các bạn.
     

    Các file đính kèm:

    • DoiSo.zip
      Kích thước:
      15.8 KB
      Đọc:
      68,714
    Lần chỉnh sửa cuối: 7 Tháng mười hai 2006
    eeninay thích bài này.
  2. infes

    infes Thành viên mới

    Sorry các bạn, post nhầm file đổi số cho VNI
    Đây là bản đổi file cho font Unicode
     

    Các file đính kèm:

    • Doiso.zip
      Kích thước:
      8.8 KB
      Đọc:
      37,179
  3. Pansy_flower

    Pansy_flower ...nợ người, nợ đời...

    Trả lời:

    SG nói thêm ở bước 3. Giả sử bạn cần đọc ô A1=12345 .

    -Nếu bạn muốn đọc số bằng tiếng việt thì bạn gõ:

    =vnd(A1)
    --> kết quả: Mười hai ngàn ba trăm bốn mươi lăm đồng chẵn.

    -Nếu bạn muốn đọc số tiền USD bằng tiếng việt thì bạn gõ:

    =usvn(A1)
    --> kết quả:Mười hai ngàn ba trăm bốn mươi lăm đôla chẵn.

    -Nếu bạn muốn đọc số tiền USD bằng tiếng anh thì bạn gõ:

    =usd(A1)
    --> kết quả:Twelve thousand three hundred forty five dollars only.


    Chú ý:
    Các bạn nhớ gõ bài có dấu nha!.
     
  4. phamduylong

    phamduylong Thành viên danh dự

    Đây là hàm đổi số ra chữ cho 3 bảng mã :
    Unicode: hàm DocSoUni
    Vni Window: hàm DocSoVni
    TCVN3 ABC: hàm DocSoAbc
    Các bạn có thể tải tập tin DocsoVn.zip có sẳn 3 hàm trên.

    Mã:
    '=====================
    Function DocSoVni(conso) As String
    s09 = Array("", " moät", " hai", " ba", " boán", " naêm", " saùu", " baûy", " taùm", " chín")
    lop3 = Array("", " trieäu", " nghìn", " tyû")
    If Trim(conso) = "" Then
      DocSoVni = ""
    ElseIf IsNumeric(conso) = True Then
      If conso < 0 Then dau = "aâm " Else dau = ""
      conso = Application.WorksheetFunction.Round(Abs(conso), 0)
      conso = " " & conso
      conso = Replace(conso, ",", "", 1)
      vt = InStr(1, conso, "E")
      If vt > 0 Then
        sonhan = Val(Mid(conso, vt + 1))
        conso = Trim(Mid(conso, 2, vt - 2))
        conso = conso & String(sonhan - Len(conso) + 1, "0")
      End If
      conso = Trim(conso)
      sochuso = Len(conso) Mod 9
      If sochuso > 0 Then conso = String(9 - (sochuso Mod 12), "0") & conso
      docso = ""
      i = 1
      lop = 1
      Do
        n1 = Mid(conso, i, 1)
        n2 = Mid(conso, i + 1, 1)
        n3 = Mid(conso, i + 2, 1)
        baso = Mid(conso, i, 3)
        i = i + 3
        If n1 & n2 & n3 = "000" Then
          If docso <> "" And lop = 3 And Len(conso) - i > 2 Then s123 = " tyû" Else s123 = ""
        Else
          If n1 = 0 Then
            If docso = "" Then s1 = "" Else s1 = " khoâng traêm"
          Else
            s1 = s09(n1) & " traêm"
          End If
          If n2 = 0 Then
            If s1 = "" Or n3 = 0 Then
              s2 = ""
            Else
              s2 = " linh"
            End If
          Else
            If n2 = 1 Then s2 = " möôøi" Else s2 = s09(n2) & " möôi"
          End If
          If n3 = 1 Then
            If n2 = 1 Or n2 = 0 Then s3 = " moät" Else s3 = " moát"
          ElseIf n3 = 5 And n2 <> 0 Then
            s3 = " laêm"
          Else
            s3 = s09(n3)
          End If
          If i > Len(conso) Then
            s123 = s1 & s2 & s3
          Else
            s123 = s1 & s2 & s3 & lop3(lop)
          End If
        End If
        lop = lop + 1
        If lop > 3 Then lop = 1
        docso = docso & s123
        If i > Len(conso) Then Exit Do
      Loop
      If docso = "" Then DocSoVni = "khoâng" Else DocSoVni = dau & Trim(docso)
    Else
      DocSoVni = conso
    End If
    End Function
    '==================================
    Function DocSoAbc(conso) As String
    s09 = Array("", " mét", " hai", " ba", " bèn", " n¨m", " s¸u", " b¶y", " t¸m", " chÝn")
    lop3 = Array("", " triÖu", " ngh×n", " tû", " triÖu", " ngh×n", "")
    If Trim(conso) = "" Then
      DocSoAbc = ""
    ElseIf IsNumeric(conso) = True Then
      If conso < 0 Then dau = "©m " Else dau = ""
      conso = Application.WorksheetFunction.Round(Abs(conso), 0)
      conso = " " & conso
      conso = Replace(conso, ",", "", 1)
      vt = InStr(1, conso, "E")
      If vt > 0 Then
        sonhan = Val(Mid(conso, vt + 1))
        conso = Trim(Mid(conso, 2, vt - 2))
        conso = conso & String(sonhan - Len(conso) + 1, "0")
      End If
      conso = Trim(conso)
      sochuso = Len(conso) Mod 9
      If sochuso > 0 Then conso = String(9 - (sochuso Mod 12), "0") & conso
      docso = ""
      i = 1
      lop = 1
      Do
        n1 = Mid(conso, i, 1)
        n2 = Mid(conso, i + 1, 1)
        n3 = Mid(conso, i + 2, 1)
        baso = Mid(conso, i, 3)
        i = i + 3
        If n1 & n2 & n3 = "000" Then
          If docso <> "" And lop = 3 And Len(conso) - i > 2 Then s123 = " tû" Else s123 = ""
        Else
          If n1 = 0 Then
            If docso = "" Then s1 = "" Else s1 = " kh«ng tr¨m"
          Else
            s1 = s09(n1) & " tr¨m"
          End If
          If n2 = 0 Then
            If s1 = "" Or n3 = 0 Then
              s2 = ""
            Else
              s2 = " linh"
            End If
          Else
            If n2 = 1 Then s2 = " m­êi" Else s2 = s09(n2) & " m­¬i"
          End If
          If n3 = 1 Then
            If n2 = 1 Or n2 = 0 Then s3 = " mét" Else s3 = " mèt"
          ElseIf n3 = 5 And n2 <> 0 Then
            s3 = " l¨m"
          Else
            s3 = s09(n3)
          End If
          If i > Len(conso) Then
            s123 = s1 & s2 & s3
          Else
            s123 = s1 & s2 & s3 & lop3(lop)
          End If
        End If
        lop = lop + 1
        If lop > 3 Then lop = 1
        docso = docso & s123
        If i > Len(conso) Then Exit Do
      Loop
      If docso = "" Then DocSoAbc = "kh«ng" Else DocSoAbc = dau & Trim(docso)
    Else
      DocSoAbc = conso
    End If
    End Function
    '===============================
    Function DocSoUni(conso) As String
    s09 = Array("", " 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")
    lop3 = Array("", " tri" & ChrW(7879) & "u", " ngh" & ChrW(236) & "n", " t" & ChrW(7927))
    'Stop
    If Trim(conso) = "" Then
      DocSoUni = ""
    ElseIf IsNumeric(conso) = True Then
      If conso < 0 Then dau = ChrW(226) & "m " Else dau = ""
      conso = Application.WorksheetFunction.Round(Abs(conso), 0)
      conso = " " & conso
      conso = Replace(conso, ",", "", 1)
      vt = InStr(1, conso, "E")
      If vt > 0 Then
        sonhan = Val(Mid(conso, vt + 1))
        conso = Trim(Mid(conso, 2, vt - 2))
        conso = conso & String(sonhan - Len(conso) + 1, "0")
      End If
      conso = Trim(conso)
      sochuso = Len(conso) Mod 9
      If sochuso > 0 Then conso = String(9 - (sochuso Mod 12), "0") & conso
      docso = ""
      i = 1
      lop = 1
      Do
        n1 = Mid(conso, i, 1)
        n2 = Mid(conso, i + 1, 1)
        n3 = Mid(conso, i + 2, 1)
        baso = Mid(conso, i, 3)
        i = i + 3
        If n1 & n2 & n3 = "000" Then
          If docso <> "" And lop = 3 And Len(conso) - i > 2 Then s123 = " t" & ChrW(7927) Else s123 = ""
        Else
          If n1 = 0 Then
            If docso = "" Then s1 = "" Else s1 = " kh" & ChrW(244) & "ng tr" & ChrW(259) & "m"
          Else
            s1 = s09(n1) & " tr" & ChrW(259) & "m"
          End If
          If n2 = 0 Then
            If s1 = "" Or n3 = 0 Then
              s2 = ""
            Else
              s2 = " linh"
            End If
          Else
            If n2 = 1 Then s2 = " m" & ChrW(432) & ChrW(7901) &  "i" Else s2 = s09(n2) & " m" & ChrW(432) & ChrW(417) &  "i"
          End If
          If n3 = 1 Then
            If n2 = 1 Or n2 = 0 Then s3 = " m" & ChrW(7897) & "t" Else s3 = " m" & ChrW(7889) & "t"
          ElseIf n3 = 5 And n2 <> 0 Then
            s3 = " l" & ChrW(259) & "m"
          Else
            s3 = s09(n3)
          End If
          If i > Len(conso) Then
            s123 = s1 & s2 & s3
          Else
            s123 = s1 & s2 & s3 & lop3(lop)
          End If
        End If
        lop = lop + 1
        If lop > 3 Then lop = 1
        docso = docso & s123
        If i > Len(conso) Then Exit Do
      Loop
      If docso = "" Then DocSoUni = "kh" & ChrW(244) & "ng" Else DocSoUni = dau & Trim(docso)
    Else
      DocSoUni = conso
    End If
    End Function
     

    Các file đính kèm:

    Chỉnh sửa lần cuối bởi điều hành viên: 30 Tháng ba 2011
    ketoan100 thích bài này.
  5. phamduylong

    phamduylong Thành viên danh dự

    Xin lỗi bạn ngocduyen và các bạn. Do không cẩn thận tôi đã gởi tập tin docsovn có lỗi. Tôi đã gởi lại docsovn.zip ngày 8/5/2007
     
  6. duc207kt

    duc207kt Thành viên mới

    Tôi cũng có một cái addin dùng để chuyển từ số sang chữ( Tôi không nhớ tên tác giả). Có thể chuyển số sang chữ tiếng bằng Việt và Tiếng Anh.

    Cú pháp:
    =VND(giá trị,true) : để chuyển đổi đơn vị tiền tệ
    =VND(giá trị) : để chuyển đổi số thông thường
    =USD(giá trị,true) : để chuyển đổi đơn vị tiền tệ
    =USD(giá trị) : để chuyển đổi số thông thường
    ------------------------------------------------------------
    De vnTools hoat dong, may tinh cua ban can Windows XP va MS Excel XP tro len.

    Cai dat vnTools Add-In, ban thao tac nhu sau :
    1/ Chay file vnTools.exe va chi dinh den mot thu muc nao do tren o dia cung may tinh cua ban. Mac dinh, duong dan se la ..\Program Files\vnTools
    2/ Khoi dong Excel voi mot Workbook bat ky nao do.
    3/ Goi menu : Tools - Add-Ins va nhap chuot len nut Browser. Duyet tim den thu muc chua Add-in ma ban vua cai vao may tinh. Chon no (tap tin: Ufunctions.xla), sau do nhan nut OK.
    4/ Chac chan rang tren hop thoai Add-Ins cua Excel, da co xuat hien ten NTD's Tools va dau kiem (checkBox) lua chon.
    5/ Nhap nut OK. Bay gio Add-in da duoc cai dat
    --------------------------------------------
    Lưu ý nếu bạn dùng BKAV thì bỏ chế độ " diệt không cần hỏi đi nhé"
     

    Các file đính kèm:

  7. PhanTuHuong

    PhanTuHuong Excel & AutoCad & VBA

    Cám ơn các bạn đã cung cấp.
    Xin phép sử dụng một số hàm của bác Long để em viết giáo trình nhé! Hàm này rất hiện đại và ngắn gọn vì bác đã sử dụng cả WorkSheetFunctions.
     
  8. Pansy_flower

    Pansy_flower ...nợ người, nợ đời...

    Bạn down load file của anh Phamduylong ở bài #10, sau đó sử dụng công thức như sau:

    -Nếu bạn muốn đọc số tiền USD bằng tiếng việt:

    +Font Unicode thì bạn gõ: =DocSoUni(A1)​

    +Font Vni Window thì bạn gõ: =DocSoVni(A1)​

    +Font Vni Window thì bạn gõ: =DocSoAbc(A1)​
     
  9. piggy_1102

    piggy_1102 Thành viên mới

    Bạn down load file của anh Phamduylong ở bài #10, sau đó sử dụng công thức như sau:

    -Nếu bạn muốn đọc số tiền USD bằng tiếng việt:
    +Font Unicode thì bạn gõ: =DocSoUni(A1)​
    +Font Vni Window thì bạn gõ: =DocSoVni(A1)​
    +Font Vni Window thì bạn gõ: =DocSoAbc(A1)​

    __________________
    Thanks bạn secret !
    Nhưng mình đã tải file cua anh Long rồi, nhưng mình vẫn không chạy được, hay la fải sử dụng cả phần VBA mà mình chưa biết về VBA nhiều.
    Bạn có thể hướng dẫn mình chi tiết không.
    Hàng ngày mình phải lập thông báo về tiền $ rất nhiều, nên rất vất vả.
    Bạn giúp mình nhé.
     
  10. phamduylong

    phamduylong Thành viên danh dự

    Bạn có sử dụng BKAV không? Nó xóa mất macro rồi !
     
  11. Pansy_flower

    Pansy_flower ...nợ người, nợ đời...

    Dĩ nhiên đây là file Excel !.

    Bạn làm theo cách này nha.
     
  12. phamduylong

    phamduylong Thành viên danh dự

    BKAV xem macro của Excel là virus nên xóa tất cả các lệnh đã viết. Phải add-in lại lừ bản chưa bị BKAV để mắt tới.
     
  13. tuankq

    tuankq Thành viên mới


    SG có thể xem lại đc ko?
    Tôi đã download docso.zip về nhưng chỉ chạy được hàm =vnd(so) ra tiếng Việt. Các hàm như =usvn(so) hay usd(so) đều cho kết quả là #NAME?
    Ngoài ra, trong kết quả của hàm =vnd(so) có các dấu phẩy (,) ngăn cách bạn có thể bỏ giúp các dấu phảy đó đc ko? Ham -usd(so) nên cho kết quả là ... US dollars thay vì chỉ là dollars để phân biệt đô Mỹ với đô khác.
    Cảm ơn bạn nhiều.
     
  14. tinhtinhtang123

    tinhtinhtang123 Thành viên mới

    Giờ mình muốn đọc số tiền VND bằng Tiếng Anh thì ntn các cậu? Liệu có phải ngồi sửa lại không ạ?

    Cảm ơn cả nhà!
     
  15. tedaynui

    tedaynui (*_*)

    Bạn vào đây có file tham khảo đấy
    http://www.giaiphapexcel.com/forum/showthread.php?t=2720

    TDN
     
  16. lamductn1991

    lamductn1991 Thành viên mới

    lỗi phông quá mình dùng uncode mà vẫn lỗi không đọc được chữ nào
     
  17. siwtom

    siwtom Thành viên bị đình chỉ hoạt động

    Bạn nên trả lời có trích dẫn hoặc hỏi rõ ràng hơn để mọi người biết bạn đang nói đến "khía cạnh" nào.
    Nếu bạn định nói về tiện ích của bạn Phạm Duy Long thì nếu tôi không lầm thì vd. hàm đổi số thành chữ, sắp xếp, chuyển đổi bảng mã cần phải chỉnh sửa. Mà có nhiều phiên bản quá nên cũng chả biết phiên bản mới nhất là bản nào, và bạn đang dùng bản nào.
     
  18. phamduylong

    phamduylong Thành viên danh dự

  19. kimanh_gha

    kimanh_gha Thành viên mới

    Tôi mới gia nhập làm thành viên của GPE, có xem bài đổi số thành chữ và làm thử theo đúng hướng dẫn nhưng vẫn không ra kết quả. Đã vào add-in chạy "doiso" nhưng vẫn không ra kết quả. Mong cả nhà GPE chỉ giúp. Cám ơn rất nhiều.
     
  20. kimanh_gha

    kimanh_gha Thành viên mới

    Bác Long làm ơn cho em hỏi, file đổi số thành chữ của bác ý, em đã làm đúng theo hướng dẫn, đã copy và chạy được add-in, đã bật unicode rồi nhưng khi viết hàm =vnd(số tiền) thì lại không ra kết quả. Mong bác chỉ giúp. Cảm ơn bác rất nhiều.
     

Chia sẻ trang này