اذهب الي المحتوي
أوفيسنا

الردود الموصى بها

قام بنشر

السلام عليكم اخوانى 

لدى داتا كبيرة بها ارقام مثال 

 

894.48

٢٦١٥٫٣٥

الرقم الاول

 رفم اما الثانى فهو نص اقوم بنسخ الفواصل من الرقمين واستبدل الفاصلة الثانية بالاولى لتحويل الارقم ل ارقم بدل من نص حاولت تسجيل ماكرو وفشل مش عارف ليه احتاج لكود تحويل الكل

على فرض ان الارقام تكمن فى العمود D من D2:D50000

مع خالص الشكر والتقدير

الارقام والنصوص.xlsx

قام بنشر
في 8‏/6‏/2024 at 22:27, abouelhassan said:

السلام عليكم اخوانى 

لدى داتا كبيرة بها ارقام مثال 

 

894.48

٢٦١٥٫٣٥

الرقم الاول

 رفم اما الثانى فهو نص اقوم بنسخ الفواصل من الرقمين واستبدل الفاصلة الثانية بالاولى لتحويل الارقم ل ارقم بدل من نص حاولت تسجيل ماكرو وفشل مش عارف ليه احتاج لكود تحويل الكل

على فرض ان الارقام تكمن فى العمود D من D2:D50000

مع خالص الشكر والتقدير

الارقام والنصوص.xlsx 8.67 kB · 1 download

وعليكم السلام ورحمة الله وبركاته

يمكنك استخدام الكود التالي في VBA لتحويل الأرقام من النص إلى أرقام:
 

Sub ConvertTextToNumber()
    Dim cell As Range

    For Each cell In Range("D2:D50000")
        If IsNumeric(cell.Value) Then
            cell.Value = CDbl(cell.Value)
        Else
            cell.Value = CDbl(Replace(cell.Value, ",", ""))
        End If
    Next cell
End Sub

 

يقوم هذا الكود بالتحويل التالي:
1. يتحقق مما إذا كانت القيمة رقمية، إذا كانت رقمية فإنه لا يقوم بتغييرها.
2. إذا لم تكن القيمة رقمية، يقوم بإزالة الفواصل الزائدة وتحويل النص إلى رقم.

  • Like 2
قام بنشر

اولا اشكرك اخي 

الكود. يعطى خطأ 

والله اخى جربت اكواد كثيرة جدااااا ولم تعمل

لذا كتبت الموضوع عسى يمدنا اخونا بكود يعمل

بارك الله فى الجميع 

قام بنشر
7 دقائق مضت, abouelhassan said:

اولا اشكرك اخي 

الكود. يعطى خطأ 

والله اخى جربت اكواد كثيرة جدااااا ولم تعمل

لذا كتبت الموضوع عسى يمدنا اخونا بكود يعمل

بارك الله فى الجميع 

إليك مثال بسيط لاستخدام الكود:

1. افتح برنامج الإكسل وانشئ ورقة عمل جديدة.
2. قم بنسخ ولصق البيانات التالية في الخلايا من D2 إلى D4:

```
123
456.78
1,234.56
```

3. انسخ والصق الكود التالي في المحرر النصي لـ VBA:

Sub ConvertTextToNumber()
    Dim cell As Range
    For Each cell In Range("D2:D4")
        If IsNumeric(cell.Value) Then
            cell.Value = Val(cell.Value)
        Else
            cell.Value = Val(Replace(cell.Value, ",", ""))
        End If
    Next cell
End Sub

 

4. اضغط على زر التشغيل أو اختر "Run" من القائمة لتشغيل الكود.
5. ستلاحظ أن الأرقام في الخلايا D2 و D3 تم تحويلها من النص إلى أرقام، في حين تمت معالجة الفاصلة في الرقم D4 وتحويله إلى رقم أيضًا.

هذا المثال يوضح كيف يمكنك استخدام الكود لتحويل الأرقام من النص إلى أرقام في Excel. 

قام بنشر

وعليكم السلام ورحمة الله وبركاته 

اخى عمليه الاستبدال بسيطه لا تحتاج لاكواد

قم بالاتي

١ - حدد العامود الذي به الارقام

٢ - قم بالضغط على الزر ctrl + h

 ٣ - قم بوضع هذه العلامه 

٫

واستبدلها بهذه

.

وستحل المشكله ان شاء الله وستجد انا الارقام اصبحت سليمه

مع التركيز علي نفس الفاصله قم باخذها copy 

 

  • Like 1
قام بنشر
منذ ساعه, حسونة حسين said:

وعليكم السلام ورحمة الله وبركاته 

اخى عمليه الاستبدال بسيطه لا تحتاج لاكواد

قم بالاتي

١ - حدد العامود الذي به الارقام

٢ - قم بالضغط على الزر ctrl + h

 ٣ - قم بوضع هذه العلامه 

٫

واستبدلها بهذه

.

وستحل المشكله ان شاء الله وستجد انا الارقام اصبحت سليمه

مع التركيز علي نفس الفاصله قم باخذها copy 

 

انا بعمل كده اخى في الله وكمان بحول النص الى نمبر احتاج الكود لا ستدعيه من كود أخر فى برنامج وبالتالى يكون عمود الأرقام بعد استدعاؤه جاهز

مشكور اخي 

قام بنشر (معدل)

اخى فى الله حسونة حسين

بارك الله فيك اخى الكود حول الارقام التى تحوى فاصلة الى 0 لم ينجح فى تحويلها الى رقم صحيح القرأة كرقم

ده انا سجلت ماكرو بالاستبدال وبردو لم تنجح مش عارف السبب

مشكووور

تم تعديل بواسطه abouelhassan
قام بنشر

احتاج تعديل بلكود اخى يعمل من d2 وينفذ التعديل فى نفس العمود لا ينقل المعدل فf كل عام وانتم بخير وصحه وسلامه اشكرك اخي الكريم الحبيب 

قام بنشر (معدل)

الف شكر اخى الكريم وكل عام وانتم بخير وصحة

عندما اضفت الكود للبرنامج لدى توقف الكود هنا

    lRow = ActiveCell.SpecialCells(xlLastCell).Row
 

تم تعديل بواسطه abouelhassan
قام بنشر

كل عام وأنتم بخير
احرص تضيف الكود في موديول الصفحة نفسها أفضل من إضافته في موديول عام، أو أن تختار الصفحة الهدف أولا قبل تشغيل الكود.
عدل في السطر بأن تضغ بعد علامة = رقم آخر سطر في الصفحة بدلا من الأمر مثلا: lRow = 300

 

  • Thanks 1

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.

زائر
اضف رد علي هذا الموضوع....

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

  • تصفح هذا الموضوع مؤخراً   0 اعضاء متواجدين الان

    • لايوجد اعضاء مسجلون يتصفحون هذه الصفحه
×
×
  • اضف...

Important Information