ما هي عملية الـ تفقيط ؟ كيفية تفقيط الارقام باللغة العربية؟”تفقيط ارقام”

بيع وشراء, تقنية, محاسبة

لعلك تتسأل عزيزي القارئ عن ما معني كلمة الـ تفقيط وما هيتها وكيف تتم ، وكيف يتم تفقيط الارقام ؟ وتحويل اي رقم او عدد الي نص مكتوب ( تفقيط ارقام – تحويل الأرقام إلى حروف )، وما هي دالة التفقيط؟ وهل يمكن تفقيط الارقام بالحروف العربية؟

ما هي عملية الـ تفقيط ؟

التفقيط هو كتابة الاعداد والأرقام باللغة بصورة لفظية بدون كتابتها رقميا (ارقام واعداد)، أي عملية تحويل الارقام إلي حروف وذلك تجنباً وخوفاً من التلاعب وتزوير الأرقام المكتوب رقمياً (عددياً) عند كتابة المستندات الرسمية مثل الشيكات البنكية والمصرفية او التقارير الهامة ، فيكون من السهل تزوير الأرقام  المكتوبة بهذه الصورة” 123456 ” بينما من الصعب تزوير الارقام المكتوبة رمزياً هكذا  “مائة وثلاثة وعشرون ألفًا وأربعمائة وستة وخمسون” وهو مايسمي بـ تفقيط الارقام

أذن كتابة الأعداد أو الأرقام بالحروف العربية هي عبارة عن عملية تفقيط عربي. وبذلك يظهر بالحروف العربية بدلا من الأرقام.

تفقيط، تفقيط الارقام، تفقيط ارقام، تفقيط الأرقام، تفقيط الارقام باللغة العربية، دالة التفقيط، تفقيط, تفقيط الارقام, تفقيط ارقام, تفقيط الأرقام, تفقيط الارقام باللغة العربية, دالة التفقيط,

لماذا يتم كتابة عبارة ( فقط لأ غير )  بعد تفقيط ارقام اي عبارة

عند محاولة اجراء تفقيط ارقام اي مبلغ او عدد او قيمة وتحويل الارقام لحروف اياً كان اعتبارها لفظياُ، نري انه يصاحبها او يلحقها عبارة ( فقط لأ غير ) وذلك للحد من عملية التزوير والتلاعب العدد (التلاعب بالأرقام). فعند وجود هذه العبار في نهاية الـ تفقيط يعني انه انتهت القيمة هنا ولا مجال لكتابة اي رقم بعدها.

ما هي استخدامات الـتفقيط ؟

يكثر استعمال عملية التفقيط “عملية تحويل الأرقام إلى كلمات نصية” عند كتابة الصكوك النقدية “الشيكات” والسندات المالية وعقود التجارية ومعظم التعاملات المالية .

  • يستخدم في المعاملات المالية مثل الفواتير، الإيصالات، سندات القبض والصرف.
  • يستخدم في العقود التجارية
  • يستخدم كتابة الأعداد بالحروف العربية في الصكوك “الشيك” او المعاملات المصرفية والبنكية بشكل عام

عملية التفقيط (تحويل الأرقام إلى حروف) عبارة عن مهارة رائعة من المهارات الحياتية التي يحتاج اليها الفرد دائما في اتمام اعماله الحياتية على مدار اليوم . وخاصة اذا كان يعمل محاسباً او تاجراً او بائعاً منعاً التلاعب بالأرقام.

برنامج سيلز اب يقوم بتفقيط الأرقام والمبالغ المالية تلقائياً في الفواتير

برنامج محاسبة، برنامج سطح المكتب، اوفلاين

برنامج محاسبة ومبيعات

كيف يتم تفقيط الأرقام ؟

يتم تفقيط الأرقام بعدة طرق ، منها كتابة الأعداد اليدوي ومنها كتابة الأعداد التلقائي بإستخدام البرامج الجاهزة والأدوات لتظهر بالحروف العربية مكتوبة بدلا من الأرقام

اولاً استخدام احد البرنامج المحاسبية

يوجد عشرات البرامج المحاسبية ، التي يستخدمه التجار لإصدار فواتير مبيعاتهم وادارة مخازنهم وحساباتهم والتي تحتوي علي ميزة تفقيط الأرقام تلقائياً عند اصدار اي فاتورة ومن امثلة هذه البرامج برنامج سيلز اب المحاسبي الرائع، والذي يدعم ميزة تفقيط الأرقام واصدار الفاتورة الإلكترونية المناسبة.

معرفة المزيد عن برنامج سيلز اب المحاسبي

تحميل برنامج سيلز اب المحاسبي

ثانياً استخدام دالة التفقيط

دالة التفقيط هي دالة لا غني عنها لدي مستخدمين الأكسيل، فمن خلالها يستطيعون تلقائياً اجراء عملية تحويل الارقام الي نص مكتوب (التفقيط) للحماية من التلاعب بالأرقام.

دالة تفقيط الاعداد على برنامج اكسل – تحويل الأرقام إلى حروف

كيفية تفقيط الارقام باللغة الانجليزية في الاكسيل Excel

  1. Excelافتح ملف Excel جديد ثم اذهب إلى التبويب Developer واضغط على Visual Basic او الضغط علي ALT +F11
  2. سيتم فتح نافذة Microsoft Visual Basic قم بالضغط بزر الماوس الأيمن (كليك يمين) على اسم المشروع , ستظهر قائمة قم بالوقوف على الاختيار Insert ومن القائمة الفرعية قم بالضغط علي ادراج Module لاضافة وحدة برمجية جديدة .
  3. سيتم اضافة وحدة برمجية جديدة باسم Module1
  4. فى نافذة كود Module1 ثم احفظ الملف بصيغة  Excel Macro-Enabled Workbook الموجودة فى الجانب الأيمن ثم قم بنسخ ولصق الكود التالى :
Attribute VB_Name = "wesame"
Option Explicit
'Main Function
Function SpellNumber(ByVal MyNumber)
    Dim Dollars, cents, Temp
    Dim DecimalPlace, Count
    ReDim Place(9) As String
    Place(2) = " Thousand "
    Place(3) = " Million "
    Place(4) = " Billion "
    Place(5) = " Trillion "
    ' 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 & " Dollars"
    End Select
    Select Case cents
        Case ""
            cents = " and No Cents"
        Case "One"
            cents = " and One Cent"
              Case Else
            cents = " and " & cents & " Cents"
    End Select
    SpellNumber = Dollars & cents
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)) & " Hundred "
    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 = "Ten"
            Case 11: Result = "Eleven"
            Case 12: Result = "Twelve"
            Case 13: Result = "Thirteen"
            Case 14: Result = "Fourteen"
            Case 15: Result = "Fifteen"
            Case 16: Result = "Sixteen"
            Case 17: Result = "Seventeen"
            Case 18: Result = "Eighteen"
            Case 19: Result = "Nineteen"
            Case Else
        End Select
    Else                                 ' If value between 20-99...
        Select Case Val(Left(TensText, 1))
            Case 2: Result = "Twenty "
            Case 3: Result = "Thirty "
            Case 4: Result = "Forty "
            Case 5: Result = "Fifty "
            Case 6: Result = "Sixty "
            Case 7: Result = "Seventy "
            Case 8: Result = "Eighty "
            Case 9: Result = "Ninety "
            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 = "One"
        Case 2: GetDigit = "Two"
        Case 3: GetDigit = "Three"
        Case 4: GetDigit = "Four"
        Case 5: GetDigit = "Five"
        Case 6: GetDigit = "Six"
        Case 7: GetDigit = "Seven"
        Case 8: GetDigit = "Eight"
        Case 9: GetDigit = "Nine"
        Case Else: GetDigit = ""
    End Select
End Function

كيفية تفقيط الارقام باللغة العربية في الاكسيل Excel

لـ تفقيط الارقام باللغة العربية وتحويل الارقام العربية الى حروف يرجي اتباع الخطوات التالية

  1. Excelافتح ملف Excel جديد ثم اذهب إلى التبويب Developer واضغط على Visual Basic او الضغط علي ALT +F11
  2. سيتم فتح نافذة Microsoft Visual Basic قم بالضغط بزر الماوس الأيمن (كليك يمين) على اسم المشروع , ستظهر قائمة قم بالوقوف على الاختيار Insert ومن القائمة الفرعية قم بالضغط علي ادراج Module لاضافة وحدة برمجية جديدة .
  3. سيتم اضافة وحدة برمجية جديدة باسم Module1
  4. فى نافذة كود Module1 ثم احفظ الملف بصيغة  Excel Macro-Enabled Workbook الموجودة فى الجانب الأيمن ثم قم بنسخ ولصق الكود التالى :
Attribute VB_Name = "wesam"

Function NoToTxt(TheNo As Double, MyCur As String, MySubCur As String) As String
Dim MyArry1(0 To 9) As String
Dim MyArry2(0 To 9) As String
Dim MyArry3(0 To 9) As String
Dim Myno As String
Dim GetNo As String
Dim RdNo As String
Dim My100 As String
Dim My10 As String
Dim My1 As String
Dim My11 As String
Dim My12 As String
Dim GetTxt As String
Dim Mybillion As String
Dim MyMillion As String
Dim MyThou As String
Dim MyHun As String
Dim MyFraction As String
Dim MyAnd As String
Dim I As Integer
Dim ReMark As String


If TheNo > 999999999999.99 Then Exit Function

If TheNo < 0 Then
TheNo = TheNo * -1
ReMark = "يتبقى لكم "
Else
ReMark = "فقط "
End If

If TheNo = 0 Then
NoToTxt = "صفر"
Exit Function
End If

MyAnd = " و"
MyArry1(0) = ""
MyArry1(1) = "مائة"
MyArry1(2) = "مائتان"
MyArry1(3) = "ثلاثمائة"
MyArry1(4) = "أربعمائة"
MyArry1(5) = "خمسمائة"
MyArry1(6) = "ستمائة"
MyArry1(7) = "سبعمائة"
MyArry1(8) = "ثمانمائة"
MyArry1(9) = "تسعمائة"

MyArry2(0) = ""
MyArry2(1) = " عشر"
MyArry2(2) = "عشرون"
MyArry2(3) = "ثلاثون"
MyArry2(4) = "أربعون"
MyArry2(5) = "خمسون"
MyArry2(6) = "ستون"
MyArry2(7) = "سبعون"
MyArry2(8) = "ثمانون"
MyArry2(9) = "تسعون"

MyArry3(0) = ""
MyArry3(1) = "واحد"
MyArry3(2) = "اثنان"
MyArry3(3) = "ثلاثة"
MyArry3(4) = "أربعة"
MyArry3(5) = "خمسة"
MyArry3(6) = "ستة"
MyArry3(7) = "سبعة"
MyArry3(8) = "ثمانية"
MyArry3(9) = "تسعة"
'======================

GetNo = Format(TheNo, "000000000000.00")

I = 0
Do While I < 15

If I < 12 Then
Myno = Mid$(GetNo, I + 1, 3)
Else
Myno = "0" + Mid$(GetNo, I + 2, 2)
End If

If (Mid$(Myno, 1, 3)) > 0 Then

RdNo = Mid$(Myno, 1, 1)
My100 = MyArry1(RdNo)
RdNo = Mid$(Myno, 3, 1)
My1 = MyArry3(RdNo)
RdNo = Mid$(Myno, 2, 1)
My10 = MyArry2(RdNo)

If Mid$(Myno, 2, 2) = 11 Then My11 = "إحدى عشر"
If Mid$(Myno, 2, 2) = 12 Then My12 = "إثنى عشر"
If Mid$(Myno, 2, 2) = 10 Then My10 = "عشرة"

If ((Mid$(Myno, 1, 1)) > 0) And ((Mid$(Myno, 2, 2)) > 0) Then My100 = My100 + MyAnd
If ((Mid$(Myno, 3, 1)) > 0) And ((Mid$(Myno, 2, 1)) > 1) Then My1 = My1 + MyAnd

GetTxt = My100 + My1 + My10

If ((Mid$(Myno, 3, 1)) = 1) And ((Mid$(Myno, 2, 1)) = 1) Then
GetTxt = My100 + My11
If ((Mid$(Myno, 1, 1)) = 0) Then GetTxt = My11
End If

If ((Mid$(Myno, 3, 1)) = 2) And ((Mid$(Myno, 2, 1)) = 1) Then
GetTxt = My100 + My12
If ((Mid$(Myno, 1, 1)) = 0) Then GetTxt = My12
End If

If (I = 0) And (GetTxt <> "") Then
If ((Mid$(Myno, 1, 3)) > 10) Then
Mybillion = GetTxt + " مليار"
Else
Mybillion = GetTxt + " مليارات"
If ((Mid$(Myno, 1, 3)) = 2) Then Mybillion = " مليار"
If ((Mid$(Myno, 1, 3)) = 2) Then Mybillion = " ملياران"
End If
End If

If (I = 3) And (GetTxt <> "") Then

If ((Mid$(Myno, 1, 3)) > 10) Then
MyMillion = GetTxt + " مليون"
Else
MyMillion = GetTxt + " ملايين"
If ((Mid$(Myno, 1, 3)) = 1) Then MyMillion = " مليون"
If ((Mid$(Myno, 1, 3)) = 2) Then MyMillion = " مليونان"
End If
End If

If (I = 6) And (GetTxt <> "") Then
If ((Mid$(Myno, 1, 3)) > 10) Then
MyThou = GetTxt + " ألف"
Else
MyThou = GetTxt + " آلاف"
If ((Mid$(Myno, 3, 1)) = 1) Then MyThou = " ألف"
If ((Mid$(Myno, 3, 1)) = 2) Then MyThou = " ألفان"
End If
End If

If (I = 9) And (GetTxt <> "") Then MyHun = GetTxt
If (I = 12) And (GetTxt <> "") Then MyFraction = GetTxt
End If

I = I + 3
Loop

If (Mybillion <> "") Then
If (MyMillion <> "") Or (MyThou <> "") Or (MyHun <> "") Then Mybillion = Mybillion + MyAnd
End If

If (MyMillion <> "") Then
If (MyThou <> "") Or (MyHun <> "") Then MyMillion = MyMillion + MyAnd
End If

If (MyThou <> "") Then
If (MyHun <> "") Then MyThou = MyThou + MyAnd
End If

If MyFraction <> "" Then
If (Mybillion <> "") Or (MyMillion <> "") Or (MyThou <> "") Or (MyHun <> "") Then
NoToTxt = ReMark + Mybillion + MyMillion + MyThou + MyHun + " " + MyCur + MyAnd + MyFraction + " " + MySubCur
Else
NoToTxt = ReMark + MyFraction + " " + MySubCur
End If
Else
NoToTxt = ReMark + Mybillion + MyMillion + MyThou + MyHun + " " + MyCur
End If

End Function
×