لعلك تتسأل عزيزي القارئ عن ما معني كلمة الـ تفقيط وما هيتها وكيف تتم ، وكيف يتم تفقيط الارقام ؟ وتحويل اي رقم او عدد الي نص مكتوب ( تفقيط ارقام – تحويل الأرقام إلى حروف )، وما هي دالة التفقيط؟ وهل يمكن تفقيط الارقام بالحروف العربية؟
ما هي عملية الـ تفقيط ؟
التفقيط هو كتابة الاعداد والأرقام باللغة بصورة لفظية بدون كتابتها رقميا (ارقام واعداد)، أي عملية تحويل الارقام إلي حروف وذلك تجنباً وخوفاً من التلاعب وتزوير الأرقام المكتوب رقمياً (عددياً) عند كتابة المستندات الرسمية مثل الشيكات البنكية والمصرفية او التقارير الهامة ، فيكون من السهل تزوير الأرقام المكتوبة بهذه الصورة” 123456 ” بينما من الصعب تزوير الارقام المكتوبة رمزياً هكذا “مائة وثلاثة وعشرون ألفًا وأربعمائة وستة وخمسون” وهو مايسمي بـ تفقيط الارقام
أذن كتابة الأعداد أو الأرقام بالحروف العربية هي عبارة عن عملية تفقيط عربي. وبذلك يظهر بالحروف العربية بدلا من الأرقام.
لماذا يتم كتابة عبارة ( فقط لأ غير ) بعد تفقيط ارقام اي عبارة
عند محاولة اجراء تفقيط ارقام اي مبلغ او عدد او قيمة وتحويل الارقام لحروف اياً كان اعتبارها لفظياُ، نري انه يصاحبها او يلحقها عبارة ( فقط لأ غير ) وذلك للحد من عملية التزوير والتلاعب العدد (التلاعب بالأرقام). فعند وجود هذه العبار في نهاية الـ تفقيط يعني انه انتهت القيمة هنا ولا مجال لكتابة اي رقم بعدها.
ما هي استخدامات الـتفقيط ؟
يكثر استعمال عملية التفقيط “عملية تحويل الأرقام إلى كلمات نصية” عند كتابة الصكوك النقدية “الشيكات” والسندات المالية وعقود التجارية ومعظم التعاملات المالية .
- يستخدم في المعاملات المالية مثل الفواتير، الإيصالات، سندات القبض والصرف.
- يستخدم في العقود التجارية
- يستخدم كتابة الأعداد بالحروف العربية في الصكوك “الشيك” او المعاملات المصرفية والبنكية بشكل عام
عملية التفقيط (تحويل الأرقام إلى حروف) عبارة عن مهارة رائعة من المهارات الحياتية التي يحتاج اليها الفرد دائما في اتمام اعماله الحياتية على مدار اليوم . وخاصة اذا كان يعمل محاسباً او تاجراً او بائعاً منعاً التلاعب بالأرقام.
برنامج سيلز اب يقوم بتفقيط الأرقام والمبالغ المالية تلقائياً في الفواتير
برنامج محاسبة ومبيعات
كيف يتم تفقيط الأرقام ؟
يتم تفقيط الأرقام بعدة طرق ، منها كتابة الأعداد اليدوي ومنها كتابة الأعداد التلقائي بإستخدام البرامج الجاهزة والأدوات لتظهر بالحروف العربية مكتوبة بدلا من الأرقام
اولاً استخدام احد البرنامج المحاسبية
يوجد عشرات البرامج المحاسبية ، التي يستخدمه التجار لإصدار فواتير مبيعاتهم وادارة مخازنهم وحساباتهم والتي تحتوي علي ميزة تفقيط الأرقام تلقائياً عند اصدار اي فاتورة ومن امثلة هذه البرامج برنامج سيلز اب المحاسبي الرائع، والذي يدعم ميزة تفقيط الأرقام واصدار الفاتورة الإلكترونية المناسبة.
معرفة المزيد عن برنامج سيلز اب المحاسبي
ثانياً استخدام دالة التفقيط
دالة التفقيط هي دالة لا غني عنها لدي مستخدمين الأكسيل، فمن خلالها يستطيعون تلقائياً اجراء عملية تحويل الارقام الي نص مكتوب (التفقيط) للحماية من التلاعب بالأرقام.
دالة تفقيط الاعداد على برنامج اكسل – تحويل الأرقام إلى حروف
كيفية تفقيط الارقام باللغة الانجليزية في الاكسيل Excel
- Excelافتح ملف Excel جديد ثم اذهب إلى التبويب Developer واضغط على Visual Basic او الضغط علي ALT +F11
- سيتم فتح نافذة Microsoft Visual Basic قم بالضغط بزر الماوس الأيمن (كليك يمين) على اسم المشروع , ستظهر قائمة قم بالوقوف على الاختيار Insert ومن القائمة الفرعية قم بالضغط علي ادراج Module لاضافة وحدة برمجية جديدة .
- سيتم اضافة وحدة برمجية جديدة باسم Module1
- فى نافذة كود 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
لـ تفقيط الارقام باللغة العربية وتحويل الارقام العربية الى حروف يرجي اتباع الخطوات التالية
- Excelافتح ملف Excel جديد ثم اذهب إلى التبويب Developer واضغط على Visual Basic او الضغط علي ALT +F11
- سيتم فتح نافذة Microsoft Visual Basic قم بالضغط بزر الماوس الأيمن (كليك يمين) على اسم المشروع , ستظهر قائمة قم بالوقوف على الاختيار Insert ومن القائمة الفرعية قم بالضغط علي ادراج Module لاضافة وحدة برمجية جديدة .
- سيتم اضافة وحدة برمجية جديدة باسم Module1
- فى نافذة كود 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