Məbləğlərin yazı ilə avtomatik əvəzlənməsi

Bir çox peşəkarla müzakirə zamanı, rəqəmlərlə yazılan yazının avtomatik yazı ilə əvəzlənməsi metodunun bilinmədiyini müşahidə edirəm. Bu səbəblə, bu günkü yazıda məhz o mövzuya toxunmaq istərdim. Yəni, məsələn, 150 olaraq daxil etdiyimiz ədədin avtomatik olaraq “Yüz Əlli” olaraq yazılması.

Əvvəlcədən deyim ki, bunun formul və funksiyalarla asan bir yolu yoxdur. Tam əksinə, həlli çox çətin olan bir məsələdir. Visual Basic-də xüsusi kod vasitəsilə həll ediləcək bir problemdir. Bu kodu, Microsoft-un rəsmi səhifəsindən əldə edə bilərik.

https://support.microsoft.com/en-us/kb/213360

Bu keçiddə, lazımi kod ilə tanış oluruq. Kodu hara yazacağımız, hansı addımları atmalı olduğumuz ingilis dilində aydın şəkildə göstərilib, o səbəblə təkrar etməkdə lüzum görmürəm. Lakin məsələ bununla da bitmir. Bu kodla 150 ədədi “One Hundred Fifty Dollars” nəticəsini verəcəkdir. Biz bunu öz dilimizdə yazmaq istəsək, kodun daxilindəki müvafiq məlumatları tərcümə etməli olacağıq.

Yəni, kod olan sahədə, “Eleven, Twelve, Thirteen, …, Nineteen” əvəzinə “On Bir, On İki, On Üç və s.” yazaraq. Eyni şəkildə digər bütün lazımi məlumatlar da tərcümə edilib Save edilməlidir.

Qarşımıza çıxacaq bir digər problem isə, kod daxilində Azərbaycan hərflərindən “ə, ş, ğ” hərflərinin yazılma imkanının olmamasıdır. Maraqlıdır ki, “ç, ö” hərflərində bu problem yaşanmır.

Kodu öz dilimizə uyğun yeniləyib Save etdikdən sonra, =SpellNumber funksiyası ilə istənilən rəqəmi müvafiq yazı ilə əvəz edə biləcəyik.

Məsələn,

=SpellNumber(135,45) yazıb Enter düyməsinə bassaq, eyni xanada “Yüz Otuz Beş manat, Qırx Beş qəpik” nəticəsini əldə edəcəyik.

Uğurlar!

Advertisements

6 thoughts on “Məbləğlərin yazı ilə avtomatik əvəzlənməsi

  1. =IF(LEFT(RIGHT(D3,2),1)=G5,IF(D3<1,"0 manat "&RIGHT(D3,1)&"0 qəpik",TRIM(IF(LEN(D3)=8,VLOOKUP(ROUND(LEFT(D3,1),0),I53:L62,4,0)&" "&VLOOKUP(ROUND(RIGHT(LEFT(D3,2),1),0),I43:L52,4,0)&" "&VLOOKUP(ROUND(RIGHT(LEFT(D3,3),1),0),I33:L42,4,0)&" "&VLOOKUP(ROUND(RIGHT(LEFT(D3,4),1),0),I23:L32,4,0)&" "&VLOOKUP(ROUND(RIGHT(LEFT(D3,5),1),0),I13:L22,4,0)&" "&VLOOKUP(ROUND(RIGHT(LEFT(D3,6),1),0),I3:L12,4,0)&" "&"manat"&" "&RIGHT(D3,1)&"0 qəpik",IF(LEN(D3)=7,VLOOKUP(ROUND(RIGHT(LEFT(D3,1),1),0),I43:L52,4,0)&" "&VLOOKUP(ROUND(RIGHT(LEFT(D3,2),1),0),I33:L42,4,0)&" "&VLOOKUP(ROUND(RIGHT(LEFT(D3,3),1),0),I23:L32,4,0)&" "&VLOOKUP(ROUND(RIGHT(LEFT(D3,4),1),0),I13:L22,4,0)&" "&VLOOKUP(ROUND(RIGHT(LEFT(D3,5),1),0),I3:L12,4,0)&" "&"manat"&" "&RIGHT(D3,1)&"0 qəpik",IF(LEN(D3)=6,VLOOKUP(ROUND(RIGHT(LEFT(D3,1),1),0),I33:L42,4,0)&" "&VLOOKUP(ROUND(RIGHT(LEFT(D3,2),1),0),I23:L32,4,0)&" "&VLOOKUP(ROUND(RIGHT(LEFT(D3,3),1),0),I13:L22,4,0)&" "&VLOOKUP(ROUND(RIGHT(LEFT(D3,4),1),0),I3:L12,4,0)&" "&"manat"&" "&RIGHT(D3,1)&"0 qəpik",IF(LEN(D3)=5,VLOOKUP(ROUND(RIGHT(LEFT(D3,1),1),0),I23:L32,4,0)&" "&VLOOKUP(ROUND(RIGHT(LEFT(D3,2),1),0),I13:L22,4,0)&" "&VLOOKUP(ROUND(RIGHT(LEFT(D3,3),1),0),I3:L12,4,0)&" "&"manat"&" "&RIGHT(D3,1)&"0 qəpik",IF(LEN(D3)=4,VLOOKUP(ROUND(RIGHT(LEFT(D3,1),1),0),I13:L22,4,0)&" "&VLOOKUP(ROUND(RIGHT(LEFT(D3,2),1),0),I3:L12,4,0)&" "&"manat"&" "&RIGHT(D3,1)&"0 qəpik",IF(LEN(D3)=3,VLOOKUP(ROUND(RIGHT(LEFT(D3,1),1),0),I3:L12,4,0)&" "&"manat"&" "&RIGHT(D3,1)&"0 qəpik","")))))))),IF(LEFT(RIGHT(D3,3),1)=G5,IF(D3<1,"0 manat "&RIGHT(D3,2)&" qəpik",TRIM(IF(LEN(D3)=9,VLOOKUP(ROUND(LEFT(D3,1),0),I53:L62,4,0)&" "&VLOOKUP(ROUND(RIGHT(LEFT(D3,2),1),0),I43:L52,4,0)&" "&VLOOKUP(ROUND(RIGHT(LEFT(D3,3),1),0),I33:L42,4,0)&" "&VLOOKUP(ROUND(RIGHT(LEFT(D3,4),1),0),I23:L32,4,0)&" "&VLOOKUP(ROUND(RIGHT(LEFT(D3,5),1),0),I13:L22,4,0)&" "&VLOOKUP(ROUND(RIGHT(LEFT(D3,6),1),0),I3:L12,4,0)&" "&"manat"&" "&RIGHT(D3,2)&" qəpik",IF(LEN(D3)=8,VLOOKUP(ROUND(RIGHT(LEFT(D3,1),1),0),I43:L52,4,0)&" "&VLOOKUP(ROUND(RIGHT(LEFT(D3,2),1),0),I33:L42,4,0)&" "&VLOOKUP(ROUND(RIGHT(LEFT(D3,3),1),0),I23:L32,4,0)&" "&VLOOKUP(ROUND(RIGHT(LEFT(D3,4),1),0),I13:L22,4,0)&" "&VLOOKUP(ROUND(RIGHT(LEFT(D3,5),1),0),I3:L12,4,0)&" "&"manat"&" "&RIGHT(D3,2)&" qəpik",IF(LEN(D3)=7,VLOOKUP(ROUND(RIGHT(LEFT(D3,1),1),0),I33:L42,4,0)&" "&VLOOKUP(ROUND(RIGHT(LEFT(D3,2),1),0),I23:L32,4,0)&" "&VLOOKUP(ROUND(RIGHT(LEFT(D3,3),1),0),I13:L22,4,0)&" "&VLOOKUP(ROUND(RIGHT(LEFT(D3,4),1),0),I3:L12,4,0)&" "&"manat"&" "&RIGHT(D3,2)&" qəpik",IF(LEN(D3)=6,VLOOKUP(ROUND(RIGHT(LEFT(D3,1),1),0),I23:L32,4,0)&" "&VLOOKUP(ROUND(RIGHT(LEFT(D3,2),1),0),I13:L22,4,0)&" "&VLOOKUP(ROUND(RIGHT(LEFT(D3,3),1),0),I3:L12,4,0)&" "&"manat"&" "&RIGHT(D3,2)&" qəpik",IF(LEN(D3)=5,VLOOKUP(ROUND(RIGHT(LEFT(D3,1),1),0),I13:L22,4,0)&" "&VLOOKUP(ROUND(RIGHT(LEFT(D3,2),1),0),I3:L12,4,0)&" "&"manat"&" "&RIGHT(D3,2)&" qəpik",IF(LEN(D3)=4,VLOOKUP(ROUND(RIGHT(LEFT(D3,1),1),0),I3:L12,4,0)&" "&"manat"&" "&RIGHT(D3,2)&" qəpik","")))))))),TRIM(IF(LEN(D3)=6,VLOOKUP(ROUND(LEFT(D3,1),0),I53:L62,4,0)&" "&VLOOKUP(ROUND(RIGHT(LEFT(D3,2),1),0),I43:L52,4,0)&" "&VLOOKUP(ROUND(RIGHT(LEFT(D3,3),1),0),I33:L42,4,0)&" "&VLOOKUP(ROUND(RIGHT(LEFT(D3,4),1),0),I23:L32,4,0)&" "&VLOOKUP(ROUND(RIGHT(LEFT(D3,5),1),0),I13:L22,4,0)&" "&VLOOKUP(ROUND(RIGHT(LEFT(D3,6),1),0),I3:L12,4,0)&" "&"manat"&" 00 qəpik",IF(LEN(D3)=5,VLOOKUP(ROUND(RIGHT(LEFT(D3,1),1),0),I43:L52,4,0)&" "&VLOOKUP(ROUND(RIGHT(LEFT(D3,2),1),0),I33:L42,4,0)&" "&VLOOKUP(ROUND(RIGHT(LEFT(D3,3),1),0),I23:L32,4,0)&" "&VLOOKUP(ROUND(RIGHT(LEFT(D3,4),1),0),I13:L22,4,0)&" "&VLOOKUP(ROUND(RIGHT(LEFT(D3,5),1),0),I3:L12,4,0)&" "&"manat"&" 00 qəpik",IF(LEN(D3)=4,VLOOKUP(ROUND(RIGHT(LEFT(D3,1),1),0),I33:L42,4,0)&" "&VLOOKUP(ROUND(RIGHT(LEFT(D3,2),1),0),I23:L32,4,0)&" "&VLOOKUP(ROUND(RIGHT(LEFT(D3,3),1),0),I13:L22,4,0)&" "&VLOOKUP(ROUND(RIGHT(LEFT(D3,4),1),0),I3:L12,4,0)&" "&"manat"&" 00 qəpik",IF(LEN(D3)=3,VLOOKUP(ROUND(RIGHT(LEFT(D3,1),1),0),I23:L32,4,0)&" "&VLOOKUP(ROUND(RIGHT(LEFT(D3,2),1),0),I13:L22,4,0)&" "&VLOOKUP(ROUND(RIGHT(LEFT(D3,3),1),0),I3:L12,4,0)&" "&"manat"&" 00 qəpik",IF(LEN(D3)=2,VLOOKUP(ROUND(RIGHT(LEFT(D3,1),1),0),I13:L22,4,0)&" "&VLOOKUP(ROUND(RIGHT(LEFT(D3,2),1),0),I3:L12,4,0)&" "&"manat"&" 00 qəpik",IF(LEN(D3)=1,VLOOKUP(ROUND(RIGHT(LEFT(D3,1),1),0),I3:L12,4,0)&" "&"manat"&" 00 qəpik","")))))))))

    I sütunu J sütunu K sütunu L sütunu
    1 1 1 bir
    2 1 2 iki
    3 1 3 üç
    4 1 4 dörd
    5 1 5 beş
    6 1 6 altı
    7 1 7 yeddi
    8 1 8 səkkiz
    9 1 9 doqquz
    0 1 0
    1 2 10 on
    2 2 20 iyirmi
    3 2 30 otuz
    4 2 40 qırx
    5 2 50 əlli
    6 2 60 altmış
    7 2 70 yetmiş
    8 2 80 səksən
    9 2 90 doqsan
    0 2 0
    1 3 100 yüz
    2 3 200 iki yüz
    3 3 300 üç yüz
    4 3 400 dörd yüz
    5 3 500 beş yüz
    6 3 600 altı yüz
    7 3 700 yeddi yüz
    8 3 800 səkkiz yüz
    9 3 900 doqquz yüz
    0 3 0
    1 4 1,000 bir min
    2 4 2,000 iki min
    3 4 3,000 üç min
    4 4 4,000 dörd min
    5 4 5,000 beş min
    6 4 6,000 altı min
    7 4 7,000 yeddi min
    8 4 8,000 səkkiz min
    9 4 9,000 doqquz min
    0 4 0 min
    1 5 10,000 on
    2 5 20,000 iyirmi
    3 5 30,000 otuz
    4 5 40,000 qırx
    5 5 50,000 əlli
    6 5 60,000 altmış
    7 5 70,000 yetmiş
    8 5 80,000 səksən
    9 5 90,000 doqsan
    0 5 0
    1 6 100,000 yüz
    2 6 200,000 iki yüz
    3 6 300,000 üç yüz
    4 6 400,000 dörd yüz
    5 6 500,000 beş yüz
    6 6 600,000 altı yüz
    7 6 700,000 yeddi yüz
    8 6 800,000 səkkiz yüz
    9 6 900,000 doqquz yüz
    0 6 0

    Excelin xanaya yazılan karakter sayına olan limitlə əalqədar, ilk hərfin böyük yazılmasına ehtiyac varsa əlavə olaraq formula yazılan xanaya (D5) bu formula istinad etməlidir.

    =REPLACE(D5,1,1,UPPER(LEFT(D5,1)))

    Buyurun
    Sual; olan müraciət edə bilər
    Araz Nəsirov

    055 224 43 33
    mololon@gmail.com

    Like

  2. Mən bunun formulasını yazmışam. Sadə if, trim, iferror, vlookup vəs istifadə edərək hazırlamışam. 999.999,99-ə qədər istənilən ədədi yazıya çevirir. maraqlananlar müraciət edə bilər. mololon@

    Like

  3. Bu da istinad olunan kodun Azərbaycan variantına uyöunlaşdırılmış forması :
    Qüsuru : Böyük “i” hərfini nöqtəsiz yazması . Kodun mürəkkləbləşməməsi naminə onu düzəltmədim
    Option Explicit
    ‘Main Function

    Function SpellNumber(ByVal MyNumber)
    Dim Dollars, Cents, Temp
    Dim DecimalPlace, Count
    ReDim Place(9) As String
    Place(2) = ” min ”
    Place(3) = ” milyon ”
    Place(4) = ” milyard ”
    Place(5) = ” trilyon ”

    Dim CoinName As String
    CoinName = “q” + ChrW$(601) + “pik”
    Dim CurrencyName As String
    CurrencyName = “manat”

    ‘ String representation of amount.
    MyNumber = Trim(Str(MyNumber))
    ‘ Position of decimal place 0 if none.
    DecimalPlace = InStr(MyNumber, “.”)
    ‘ Convert cents and set MyNumber to dollar amount.
    If DecimalPlace > 0 Then
    Cents = GetTens(Left(Mid(MyNumber, DecimalPlace + 1) & _
    “00”, 2))
    MyNumber = Trim(Left(MyNumber, DecimalPlace – 1))
    End If
    Count = 1
    Do While MyNumber “”
    Temp = GetHundreds(Right(MyNumber, 3))
    If Temp “” Then Dollars = Temp & Place(Count) & Dollars
    If Len(MyNumber) > 3 Then
    MyNumber = Left(MyNumber, Len(MyNumber) – 3)
    Else
    MyNumber = “”
    End If
    Count = Count + 1
    Loop
    Select Case Dollars
    Case “”
    Dollars = “” ‘ “No Dollars”
    ” Case “One”
    ” Dollars = “One Dollar”
    Case Else
    Dollars = Dollars & ” ” & CurrencyName
    End Select
    Select Case Cents
    Case “”
    Cents = “” ‘ ” and No Cents”
    ” Case “One”
    ” Cents = ” and One Cent”
    Case Else
    Cents = Cents & ” ” & CoinName
    End Select

    If Trim(Dollars) “” And Trim(Cents) “” Then Cents = ” ” & Cents

    Dim RetStr As String
    RetStr = Trim(Dollars & Cents)
    ‘ Dim Poz1, Poz2
    ‘ Poz1 = InStr(1, Cifers, Trim(Str$(Cifer – 1)), vbTextCompare)
    ‘ Poz2 = InStr(1, Cifers, Trim(Str$(Cifer)), vbTextCompare)
    ‘ RetStr = Mid$(Cifers, Poz1 + 1, Poz2 – Poz1 – 1)
    RetStr = UCase(Left$(RetStr, 1)) + Right$(RetStr, Len(RetStr) – 1)
    SpellNumber = RetStr
    End Function

    ‘ Converts a number from 100-999 into text
    Function GetHundreds(ByVal MyNumber)
    Dim Result As String
    If Val(MyNumber) = 0 Then Exit Function
    MyNumber = Right(“000” & MyNumber, 3)
    ‘ Convert the hundreds place.
    If Mid(MyNumber, 1, 1) “0” Then
    Result = GetDigit(Mid(MyNumber, 1, 1)) & ” y” + ChrW(252) + “z ”
    Result = Replace(Result, “bir y” + ChrW(252) + “z “, ” y” + ChrW(252) + “z “)
    End If
    ‘ Convert the tens and ones place.
    If Mid(MyNumber, 2, 1) “0” Then
    Result = Result & GetTens(Mid(MyNumber, 2))
    Else
    Result = Result & GetDigit(Mid(MyNumber, 3))
    End If

    GetHundreds = Result
    End Function

    ‘ Converts a number from 10 to 99 into text.
    Function GetTens(TensText)
    Dim Result As String
    Result = “” ‘ Null out the temporary function value.
    ‘ If Val(Left(TensText, 1)) = 1 Then ‘ If value between 10-19…
    ‘ Select Case Val(TensText)
    ‘ Case 10: Result = “on”
    ‘ Case 11: Result = “ob bir”
    ‘ Case 12: Result = “on iki”
    ‘ Case 13: Result = “on ” + ChrW(252) + ChrW(231)
    ‘ Case 14: Result = “on d” + ChrW(246) + “rd”
    ‘ Case 15: Result = “on be” + ChrW(351)
    ‘ Case 16: Result = “on alt” + ChrW(305)
    ‘ Case 17: Result = “on yeddi”
    ‘ Case 18: Result = “on s” + ChrW(601) + “kkiz”
    ‘ Case 19: Result = “on doqquz”
    ‘ Case Else
    ‘ End Select
    ‘Else ‘ If value between 20-99…
    Select Case Val(Left(TensText, 1))
    Case 1: Result = “on”
    Case 2: Result = “iyirmi ”
    Case 3: Result = “otuz ”
    Case 4: Result = “q” + ChrW(305) + “rx ”
    Case 5: Result = ChrW(601) + “lli ”
    Case 6: Result = “alt” + ChrW(305) + “m” + ChrW(305) + ChrW(351) + ” ”
    Case 7: Result = “yetmi” + ChrW(351) + ” ”
    Case 8: Result = “s” + ChrW(601) + “ks” + ChrW(601) + “n ”
    Case 9: Result = “doxsan ”
    Case Else
    End Select
    Result = Result & GetDigit _
    (Right(TensText, 1)) ‘ Retrieve ones place.
    ‘ End If
    GetTens = Result
    End Function

    ‘ Converts a number from 1 to 9 into text.
    Function GetDigit(Digit)
    Select Case Val(Digit)
    Case 1: GetDigit = “bir”
    Case 2: GetDigit = “iki”
    Case 3: GetDigit = ChrW(252) + ChrW(231)
    Case 4: GetDigit = “d” + ChrW(246) + “rd”
    Case 5: GetDigit = “be” + ChrW(351)
    Case 6: GetDigit = “alt” + ChrW(305)
    Case 7: GetDigit = “yeddi”
    Case 8: GetDigit = “s” + ChrW(601) + “kkiz”
    Case 9: GetDigit = “doqquz”
    Case Else: GetDigit = “”
    End Select
    End Function

    Like

  4. Bəzən belə şeylərə ehtiyac yaranış. Xeyli vaxt bundan qabaq bu problemlə üzləşmişdim. Hansısa hesabatlar üçün ədədlə yazılan məbləği sözə keçirmək lazım idi. O vaxt (5-6 il qabaq) bunun üçün DLL yazmalı olduq. (VB6 da yazılmışdı) Həmin kodlar təsadüfən salamat qalıb. Mən o kodun üstünlüyünü iddia edə bilmərəm, ancaq VBA -ya “tərcümə” elədim ki, istəyənlər faydalansın.
    Müəllifin bəzi hərflərin yazılmasında yaranan problemləri vurğulaması diqqətimi çəkdi. Bu Məsələnin həlli VBA-da vardır . ChrW funksiyası unikod koduna görə simvolu qaytarır
    məsələn ChrW$(601) kiçik “ə” hərfini qaytarır. VB6 -da mən bir az mürəkkəb olmasına baxmayaraq öhtəsindən gələ bilmişdik. Məhz ona görə aşağıdakə kodlarda bəzi qəribə əvəzləmələri görəcəksiniz.(Məsələn C` ilə Ç hərfinin əvəzlənməsi). Hər nə isə , kodu optimallaşdırmaq olar. Yeganə xoşagəlməyən məsələ kodların makros mexanizmini aşa bilməməsidir.
    Nəticəyə buradan baxa bilərsiniz : http://postimg.org/image/8vff2dn45/

    Kod :
    ‘AUTHOR Zohrab Emi
    Const teklikler = “0bir1iki2u`c`3do`rd4bes`5alti`6yeddi7se`kkiz8doqquz9”
    Const onluqlar = “0on1iyirmi2otuz3qi`rx4e`lli5alti`mi`s`6yetmis`7se`kse`n8doxsan9”
    ‘Public menbee As String ‘ = “O29”
    ‘Const Yazilmayeri = “K30”
    Const XettChekme = “- – – -x- – – – – -x- – – – -x- – – – – -”
    ‘***********************************************************
    Public Function MeblegSozle(xanaadresi)
    menbee = xanaadresi
    MeblegSozle = Yerine_yetir(menbee)
    End Function
    Public Function CiferToString(Cifer, Cifers) As String
    Dim optCifer As String
    Dim RetStr As String
    Dim Poz1 As Byte
    Dim Poz2 As Byte
    optCifer = Cifer
    If Cifer = 0 Then
    RetStr = “”
    Else
    Poz1 = InStr(1, Cifers, Trim(Str$(Cifer – 1)), vbTextCompare)
    Poz2 = InStr(1, Cifers, Trim(Str$(Cifer)), vbTextCompare)
    RetStr = Mid$(Cifers, Poz1 + 1, Poz2 – Poz1 – 1)
    End If

    CiferToString = RetStr & ” ”
    End Function
    Public Function EdedSozleUnicod(eded) As String
    EdedSozleUnicod = AzerbHerfleri(EdediSoze(eded))
    End Function
    Function EdediSoze(eded) As String
    localeded = eded
    setireded = Trim(Str$(localeded))
    uzunluqsetireded = Len(setireded)
    Select Case uzunluqsetireded
    Case 1
    EdediSoze = CiferToString(localeded, teklikler)
    Case 2
    EdediSoze = CiferToString(Val(Left$(setireded, 1)), onluqlar) _
    + CiferToString(Val(Right$(setireded, uzunluqsetireded – 1)), teklikler)
    Case 3
    Birinciregem = Left$(setireded, 1)
    Yerdeqalan = Val(Right$(setireded, Len(setireded) – 1))
    EdediSoze = CiferToString(Val(Birinciregem), teklikler) + “yu`z ” _
    + EdediSoze(Yerdeqalan)
    Case 4
    Birinciregem = Left$(setireded, 1)
    Yerdeqalan = Val(Right$(setireded, Len(setireded) – 1))
    EdediSoze = CiferToString(Val(Birinciregem), teklikler) + “min ” _
    + EdediSoze(Yerdeqalan)
    Case 5
    Birinciikisi = Val(Left$(setireded, 2))
    Yerdeqalan = Val(Right$(setireded, Len(setireded) – 2))
    EdediSoze = EdediSoze(Birinciikisi) + “min ” _
    + EdediSoze(Yerdeqalan)
    Case 6
    birinciUcu = Val(Left$(setireded, 3))
    Yerdeqalan = Val(Right$(setireded, Len(setireded) – 3))
    EdediSoze = EdediSoze(birinciUcu) + “min ” _
    + EdediSoze(Yerdeqalan)
    Case 7
    Birinciregem = (Left$(setireded, 1))
    Yerdeqalan = Val(Right$(setireded, Len(setireded) – 1))
    EdediSoze = CiferToString(Val(Birinciregem), teklikler) + “milyon ” _
    + EdediSoze(Yerdeqalan)
    Case 8
    Birinciikisi = Val(Left$(setireded, 2))
    Yerdeqalan = Val(Right$(setireded, Len(setireded) – 2))
    EdediSoze = EdediSoze(Birinciikisi) + “milyon ” _
    + EdediSoze(Yerdeqalan)
    Case 9
    birinciUcu = Val(Left$(setireded, 3))
    Yerdeqalan = Val(Right$(setireded, Len(setireded) – 3))
    EdediSoze = EdediSoze(birinciUcu) + “milyon ” _
    + EdediSoze(Yerdeqalan)
    Case 10
    Birinciregem = (Left$(setireded, 1))
    Yerdeqalan = Val(Right$(setireded, Len(setireded) – 1))
    EdediSoze = CiferToString(Val(Birinciregem), teklikler) + “milyard ” _
    + EdediSoze(Yerdeqalan)
    Case 11
    Birinciregem = (Left$(setireded, 1))
    Yerdeqalan = Val(Right$(setireded, Len(setireded) – 1))
    EdediSoze = CiferToString(Val(Birinciregem), onluqlar) + “milyard ” _
    + EdediSoze(Yerdeqalan)
    ‘case 12 ve s

    Case Else

    EdediSoze = (eded)
    End Select
    End Function

    Function AzerbHerfleri(ByVal arg) As String
    X = arg
    ‘***************
    X = Replace(X, “c`”, ChrW(231))
    X = Replace(X, “o`”, ChrW(246))
    X = Replace(X, “u`”, ChrW(252))
    X = Replace(X, “g`”, ChrW(287))
    X = Replace(X, “i`”, ChrW(305))
    X = Replace(X, “s`”, ChrW(351))
    X = Replace(X, “e`”, ChrW(601))
    ‘**************** BOYUK HERFLER
    X = Replace(X, “C`”, ChrW(199))
    X = Replace(X, “O`”, ChrW(214))
    X = Replace(X, “U`”, ChrW(220))
    X = Replace(X, “G`”, ChrW(286))
    X = Replace(X, “I`”, “I”)
    X = Replace(X, “S`”, ChrW(350))
    X = Replace(X, “E`”, ChrW(399))
    AzerbHerfleri = X
    End Function

    Function Yerine_yetir(menbee) As String
    On Error Resume Next
    qepik = 0: menfi$ = “”
    mezmun = menbee ‘Range(menbee).Text
    ‘mezmun = “-10.92″
    mezmun = Replace(mezmun, ” “, “”)

    If Val(mezmun) < 0 Then
    mezmun = Str$(-(Val(mezmun)))
    menfi$ = "me`nfi "
    End If

    eded = Val(mezmun)

    If eded = 0 Then
    netice = XettChekme
    Yerine_yetir = netice
    Range(Yazilmayeri).Value = netice
    'ActiveCell.Value = netice
    Exit Function
    End If

    manat = Int(eded)
    pozcomma = InStr(1, mezmun, ",", vbTextCompare)
    pozdot = InStr(1, mezmun, ".", vbTextCompare)

    If (pozdot 0) And (pozcomma 0) Then
    MsgBox “Sehv: Duzgun olmayan regem formati” + vbNewLine + _
    “Kesr hisseni gostermek ucun ya vergulden,” + vbNewLine + _
    “yada noqteden istifade edin”
    ‘ Range(Yazilmayeri).Select
    ActiveCell.Value = netice
    Exit Function
    Else
    poz = pozdot + pozcomma
    If pozdot + pozcomma 0 Then
    qepiksetir = Mid$(mezmun, poz + 1, 2)
    If Len(qepiksetir) = 1 Then
    qepiksetir = qepiksetir + “0”
    End If
    qepik = Val(qepiksetir)
    End If
    End If

    manatlar = EdediSoze(manat)
    qepikler = EdediSoze(qepik):
    If manat = 0 Then neticeman = “” Else neticeman = manatlar & ” manat ”
    If qepik = 0 Then neticeqep = “” Else neticeqep = qepikler & ” qe`pik ”

    neticeman = Replace(neticeman, ” “, ” “)
    neticeman = Replace(neticeman, “bir yu`z”, “yu`z”)
    neticeman = Replace(neticeman, ” “, ” “)
    neticeqep = Replace(neticeqep, ” “, ” “)
    netice = neticeman + ” ” + neticeqep
    netice = Replace(netice, ” “, ” “)
    netice = Trim(menfi$ + netice)
    netice = UCase(Left$(netice, 1)) + Right$(netice, Len(netice) – 1)
    netice = Trim(AzerbHerfleri(netice))
    ‘ Range(Yazilmayeri).Value = netice
    Yerine_yetir = netice
    End Function

    Like

    • Əgər siz asan yolunu bilirsinizsə, paylaşın, hamımız öyrənmiş və sizə minnətdar olmuş olarıq. Amma hal-hazırda yuxarıdakı koddan daha asan bir yolu ilə qarşılaşmamışam.

      Like

Leave a Reply

Fill in your details below or click an icon to log in:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out / Change )

Twitter picture

You are commenting using your Twitter account. Log Out / Change )

Facebook photo

You are commenting using your Facebook account. Log Out / Change )

Google+ photo

You are commenting using your Google+ account. Log Out / Change )

Connecting to %s