ahrambakr قام بنشر مارس 5 قام بنشر مارس 5 عند تشغيل الدالي لتحويل الأرقام إلي كلمات تظهر علامات استفهام أو حروف غير مفهومة حسب المرفق ارجو المساعدة
mahmoud nasr alhasany قام بنشر مارس 5 قام بنشر مارس 5 (معدل) المشكلة التي تواجهك في VBA Excel عند تحويل الأرقام إلى كلمات وظهور علامات استفهام أو حروف غير مفهومة، هي مشكلة شائعة تتعلق بترميز الأحرف (Encoding) في VBA. إليك شرح للمشكلة وحلولها: سبب المشكلة: ترميز الأحرف: VBA يستخدم ترميزًا معينًا للأحرف، وأحيانًا لا يتوافق هذا الترميز مع الترميز المستخدم في النص الذي تحاول تحويله. عندما يكون هناك عدم توافق في الترميز، تظهر الأحرف بشكل غير صحيح، مثل علامات الاستفهام أو الرموز الغريبة. إعدادات اللغة: إعدادات اللغة في نظام التشغيل وفي Excel يمكن أن تؤثر على كيفية عرض الأحرف. إذا كانت إعدادات اللغة غير متوافقة، فقد تظهر الأحرف بشكل غير صحيح. حلول المشكلة: استخدام ترميز UTF-8: UTF-8 هو ترميز عالمي يدعم معظم اللغات، بما في ذلك اللغة العربية. يمكنك محاولة تحويل النص إلى ترميز UTF-8 قبل عرضه في Excel. هذا الحل يحتاج الي تعديل الكود المسئول عن تحويل الارقام الي نص. تغيير إعدادات اللغة في Excel: تأكد من أن إعدادات اللغة في Excel متوافقة مع اللغة العربية. يمكنك التحقق من ذلك من خلال: ملف > خيارات > اللغة. تأكد من أن اللغة العربية هي اللغة الافتراضية. تغيير إعدادات اللغة في نظام التشغيل: تأكد من أن إعدادات اللغة في نظام التشغيل متوافقة مع اللغة العربية. يمكنك التحقق من ذلك من خلال: لوحة التحكم > المنطقة واللغة. استخدام دوال تحويل الأرقام إلى كلمات جاهزة: هناك بعض الدوال الجاهزة التي يمكن استخدامها لتحويل الأرقام إلى كلمات باللغة العربية. قد تكون هذه الدوال أكثر موثوقية من الدوال المخصصة التي قد تواجه مشاكل في الترميز. يوجد الكثير من الاكواد الجاهزة علي الانترنت التي تقوم بنفس الغرض. التأكد من خطوط الكتابة: بعض الخطوط لا تدعم اللغة العربية بشكل كامل, لذلك يجب التأكد من الخط المستخدم داخل ملف الاكسل يدعم اللغة العربية. نصائح إضافية: إذا كنت تستخدم دالة مخصصة لتحويل الأرقام إلى كلمات، فحاول البحث عن تحديثات أو إصلاحات لهذه الدالة. إذا كنت تستخدم دالة خارجية، فتأكد من أنها متوافقة مع إصدار Excel الذي تستخدمه. تاكد من حفظ ملف الاكسل بصيغة تدعم اللغة العربية بشكل كامل. آمل أن تساعدك هذه الحلول في حل المشكلة الرجاء ان ترفق الملف اذا لم تنجح معك الحلول السابقة للمساعدتك تم تعديل مارس 5 بواسطه mahmoud nasr alhasany
mahmoud nasr alhasany قام بنشر مارس 5 قام بنشر مارس 5 هذا الكود لتحويل الأرقام إلى كلمات في العمود B عند إدخال قيمة في العمود A، مع مراعاة اللغة العربية والعملة (الجنيه المصري). شرح الكود: Worksheet_Change: هذا الإجراء يتم تشغيله تلقائيًا عند تغيير أي خلية في ورقة العمل. Tafqit: هذه الدالة الرئيسية تقوم بتحويل الرقم إلى نص، مع مراعاة الجزء الصحيح والجزء العشري. TafqitInteger: هذه الدالة تقوم بتحويل الجزء الصحيح من الرقم إلى نص. TafqitGroup: هذه الدالة تقوم بتحويل مجموعة من ثلاثة أرقام إلى نص (مئات، آلاف، ملايين). ملاحظات هامة: هذا الكود يدعم الأرقام الصحيحة والأرقام العشرية. تمت إضافة دعم للغة العربية والعملة (الجنيه المصري). يمكنك تعديل الكود لتغيير العملة أو لإضافة دعم لعملات أخرى. الكود يعمل علي القيم الموجبة فقط. يمكن إضافة بعض التعديلات علي الكود لتحسينه. آمل أن يكون هذا الكود مفيدًا! Private Sub Worksheet_Change(ByVal Target As Range) Dim cell As Range 'تحديد العمود الذي سيتم مراقبته (العمود A) If Not Intersect(Target, Columns("A")) Is Nothing Then 'المرور على الخلايا التي تم تغييرها For Each cell In Target 'التحقق من أن الخلية تحتوي على قيمة رقمية If IsNumeric(cell.Value) Then 'استدعاء دالة التفقيط ووضع النتيجة في العمود B cell.Offset(0, 1).Value = Tafqit(cell.Value) End If Next cell End If End Sub Function Tafqit(ByVal num As Double) As String Dim strNum As String Dim parts As Variant Dim intPart As Long Dim decPart As Long Dim result As String 'فصل الجزء الصحيح والجزء العشري strNum = Format(num, "0.00") parts = Split(strNum, ".") intPart = CLng(parts(0)) decPart = CLng(parts(1)) 'تفقيط الجزء الصحيح result = TafqitInteger(intPart) 'إضافة كلمة "جنيه" If intPart > 0 Then result = result & " جنيه" End If 'تفقيط الجزء العشري If decPart > 0 Then result = result & " و " & TafqitInteger(decPart) & " قرش" End If Tafqit = result End Function Function TafqitInteger(ByVal num As Long) As String Dim units As Variant, tens As Variant, hundreds As Variant Dim groups(2) As Long Dim result As String Dim i As Integer units = Array("", "واحد", "اثنان", "ثلاثة", "أربعة", "خمسة", "ستة", "سبعة", "ثمانية", "تسعة") tens = Array("", "عشرة", "عشرون", "ثلاثون", "أربعون", "خمسون", "ستون", "سبعون", "ثمانون", "تسعون") hundreds = Array("", "مائة", "مائتان", "ثلاثمائة", "أربعمائة", "خمسمائة", "ستمائة", "سبعمائة", "ثمانمائة", "تسعمائة") groups(0) = num Mod 1000 groups(1) = (num \ 1000) Mod 1000 groups(2) = num \ 1000000 For i = 2 To 0 Step -1 If groups(i) > 0 Then result = result & " " & TafqitGroup(groups(i), i) End If Next i TafqitInteger = Trim(result) End Function Function TafqitGroup(ByVal num As Long, ByVal groupIndex As Integer) As String Dim units As Variant, tens As Variant, hundreds As Variant Dim result As String units = Array("", "واحد", "اثنان", "ثلاثة", "أربعة", "خمسة", "ستة", "سبعة", "ثمانية", "تسعة", "عشرة", "أحد عشر", "اثنا عشر", "ثلاثة عشر", "أربعة عشر", "خمسة عشر", "ستة عشر", "سبعة عشر", "ثمانية عشر", "تسعة عشر") tens = Array("", "عشرة", "عشرون", "ثلاثون", "أربعون", "خمسون", "ستون", "سبعون", "ثمانون", "تسعون") hundreds = Array("", "مائة", "مائتان", "ثلاثمائة", "أربعمائة", "خمسمائة", "ستمائة", "سبعمائة", "ثمانمائة", "تسعمائة") If num >= 100 Then result = result & hundreds(num \ 100) & " " num = num Mod 100 End If If num >= 20 Then result = result & tens(num \ 10) & " " & units(num Mod 10) ElseIf num >= 10 Then result = result & units(num) Else result = result & units(num) End If Select Case groupIndex Case 1 If num > 0 Then result = result & " ألف" Case 2 If num > 0 Then result = result & " مليون" End Select TafqitGroup = Trim(result) End Function صيغة تفقيط.xlsm
ahrambakr قام بنشر مارس 5 الكاتب قام بنشر مارس 5 السلام عليكم ... ارك الله في حضرتك تمت المحاولة ولكن بدون نتيجة مرفق حسب الرد الأول
ahrambakr قام بنشر مارس 6 الكاتب قام بنشر مارس 6 3 ساعات مضت, mahmoud nasr alhasany said: اريد ان ترفق الملف لحل طلبك من الواضح ان المشكله ليست في الملف .. قد تكون اعدادات الويندوز او الاكسيل لان الملف المرسل منكم عندما تم فتحه كان الرقم بالحروف صحيح ومع تغيير الرقم تغيرت الحروف الي كلمات غير مفهومه تحياتي
mahmoud nasr alhasany قام بنشر مارس 6 قام بنشر مارس 6 نعم، أنت محق .ahrambakr بما أن الملف معى يعمل بشكل صحيح ، فالمشكلة بالتأكيد تتعلق بإعدادات نظام التشغيل أو Excel لديك. إليك بعض الخطوات التي يمكنك اتخاذها لحل المشكلة: 1. التحقق من إعدادات اللغة في نظام التشغيل: منطقة اللغة: تأكد من أن "المنطقة" في إعدادات Windows مضبوطة على بلد يستخدم اللغة العربية كلغة أساسية. اذهب إلى "إعدادات" -> "الوقت واللغة" -> "المنطقة". اللغات: تأكد من إضافة اللغة العربية إلى قائمة اللغات المفضلة. اذهب إلى "إعدادات" -> "الوقت واللغة" -> "اللغة". 2. التحقق من إعدادات اللغة في Excel: خيارات اللغة: افتح Excel واذهب إلى "ملف" -> "خيارات" -> "اللغة". تأكد من أن اللغة العربية هي اللغة الافتراضية للعرض والتحرير. خيارات متقدمة: في "خيارات" -> "متقدم"، تحقق من إعدادات "عرض" و"تحرير" المتعلقة باللغات. 3. التحقق من خطوط الكتابة: تنسيق الخلايا: حدد الخلايا التي تحتوي على النص الذي يظهر بشكل غير صحيح. انقر بزر الماوس الأيمن واختر "تنسيق الخلايا". في علامة التبويب "خط"، تأكد من اختيار خط يدعم اللغة العربية بشكل كامل (مثل Arial أو Times New Roman). 4. إعادة تشغيل الجهاز: في بعض الأحيان، قد تتطلب تغييرات إعدادات اللغة إعادة تشغيل الجهاز لتطبيقها بشكل كامل. 5. تحديث Excel: تأكد من أن لديك أحدث إصدار من Excel مثبتًا. قد تحتوي التحديثات على إصلاحات لمشاكل توافق اللغة. 6. تجربة على جهاز آخر: إذا استمرت المشكلة، حاول فتح الملف على جهاز آخر بإعدادات لغة مختلفة لمعرفة ما إذا كانت المشكلة خاصة بجهازك. ملاحظات إضافية: قد يكون هناك تعارض بين بعض إعدادات اللغة في Windows و Excel. قد تكون هناك بعض الملفات المؤقتة التالفة التي تسبب هذه المشكلة. إذا كنت تستخدم إصدارًا قديمًا جدًا من Excel، فقد تواجه مشاكل في توافق اللغة. آمل أن تساعدك هذه الخطوات في حل المشكلة.ahrambakr 1
حسونة حسين قام بنشر السبت at 14:04 قام بنشر السبت at 14:04 السلام عليكم ورحمة الله وبركاته لحل مشكله اللغه العربيه قم بإزالة علام الصح واضغط ok ثم قم بعمل اعاده تشغيل الجهاز 1
الردود الموصى بها
Join the conversation
You can post now and register later. If you have an account, sign in now to post with your account.