اذهب الي المحتوي
أوفيسنا
بحث مخصص من جوجل فى أوفيسنا
Custom Search

text to columns


gamalin

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

الاخوة الافاضل اكرمكم الله

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

وحاولت ان اجد طريقة للتصدير من التكست للاكسل باستخدام text to columns لم اجد محدد ينفع لاستخدام delimited وايضا المسافات غير متساوية لاستخدام fixed width

وعند استخدام المسافة يتم تقسيم العبارات وايضا تظهر بعض الكلمات العربية مقلوبة

فهل من حل لذلك مرفق ملف تكست واخر اكسل تم تصديره

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

او

سؤال اخر هل يمكن عمل كد يمكن للاكسل معرفة اذا كان النص في الخلية بحروف عربية ام انجليزية

واذا كان بحروف عربية يجري عليه دالة mirror لقلب النص واذا كان بحروف اجنبية يتركه

مش عارف هل من حل لهذه المعضلة ؟ اعتقد دائما هناك حل باذن الله

test.rar

رابط هذا التعليق
شارك

السلام عليكم

سأحل لك الجزء الأول من سؤالك

حاولت ان اجد طريقة للتصدير من التكست للاكسل باستخدام text to columns لم اجد محدد ينفع لاستخدام delimited وايضا المسافات غير متساوية لاستخدام fixed width

وعند استخدام المسافة يتم تقسيم العبارات وايضا تظهر بعض الكلمات العربية مقلوبة

فهل من حل لذلك مرفق ملف تكست واخر اكسل تم تصديره

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

تستطيع عمل ذلك علي خطوتين

أولا إستبدال كل ماهو مسافتين إلي رمز غريب غير مستخدم في الورقة وليكن #

ثانيا إستبدال كل ## بــ # واحدة

وتكرار ذلك إلي ألا يكون بالورقة ## جنب بعض

ثم إستخدم delimited علي الرمز #

أنظر الفيديو المرفق

Text2Column.rar

رابط هذا التعليق
شارك

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

اخي الكريم

اضافة الى حل اخي طارق

جرب الملف المرفق , وهو بطريقة احضار بيانات خارجية (الاتصال بملف نصي) ومعالجة البيانات في معالج النصوص بطريقة (عرض ثابت) وليس (محدد) بالاضافة الى معادلة تصحيح النص المعكوس عن طريق ازالة المسافات .

تحياتي

استيراد ملف نصي.rar

رابط هذا التعليق
شارك

اولا وقبل اي شي تحية واجبة وشكر بالغ لاخوي الخالدي وطارق جزاكما الله خيرا للرد والبحث عن الحلول للمشكلات التي تقابلنا

ثانيا

جاري تجربة ا/ طارق واشكره كثيرا على الحل

اخي الكريم الخالدي هل لي ان اطمع في تفسير استخدام الدالة code مع الرقم 63 تحديدا

ومن اين جاءت المسافات الاضافية التي تضاف بين الاحرف العربي والتي تقوم انت بحذفها

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

فهلا هذا صحيح هل اطمع في توضيح اكثر من مجرد الحل واشكرك كثيرا

وتحياتي وشكري الكثير لاخي أ/ طارق بارك الله فيكما وزادكما علما ونفعكما بما تعلما وانتهزها فرصة بالدعاء لكل القائمين ويقتطعون من وقتهم وجهدهم لهذا المنتدى الكبير واتمنى ان يعاود الاخوة الافاضل الذين تغيبوا عنه او لم يعودوا كسابق العهد بهم متواجدين دوما الى مواقعهم

رابط هذا التعليق
شارك

السلام عليكم

سأحل لك الجزء الأول من سؤالك

حاولت ان اجد طريقة للتصدير من التكست للاكسل باستخدام text to columns لم اجد محدد ينفع لاستخدام delimited وايضا المسافات غير متساوية لاستخدام fixed width

وعند استخدام المسافة يتم تقسيم العبارات وايضا تظهر بعض الكلمات العربية مقلوبة

فهل من حل لذلك مرفق ملف تكست واخر اكسل تم تصديره

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

تستطيع عمل ذلك علي خطوتين

أولا إستبدال كل ماهو مسافتين إلي رمز غريب غير مستخدم في الورقة وليكن #

ثانيا إستبدال كل ## بــ # واحدة

وتكرار ذلك إلي ألا يكون بالورقة ## جنب بعض

ثم إستخدم delimited علي الرمز #

أنظر الفيديو المرفق

اشكرك كثيرا استاذنا بارك الله فيك

هل يمكن عمل تبديل في الخطوات بحيث يمكن عمل لصق للبيانات في الاكسل الاول لامكانية عمل ماكرو يقوم هو بعملية الاستبدال الى ان تظهر سالة تفيد بعدم وجود ## عندها يقوم الماكرو بعمل text to columns y delimited

تم تعديل بواسطه gamalin
رابط هذا التعليق
شارك

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

اخي الكريم

جرب استخدام الدالة code مع النصوص المستوردة من الملف النصي ستجد ان الاكود الرقمية للاحرف الانجليزية كما هي مستخدمة في الاكسل , اما الحروف العربية ستجدها بالكامل رقم(63) فقط وليس كما هي مستخدمة في الاكسل .

وهذا سبب للنصوص باللغة العربية عيوب:

ـ انها معكوس وعند ازالة المسافات منها تظهر بشكل طبيعي لكنها في الحقيقة لا تزال معكوسة.

ـ صعوبة التعامل مع النصوص العربية بشكل طبيعي مثلا لايمكن البحث فيها الا باستخدام نفس احرف تلك النصوص.

لحل هذا الاشكال اعتقد انك تحتاج الى كود يقوم:

ـ عكس النصوص العربية

ـ استبدال الاحرف الى احرف طبيعية (سوف تجد نوع الاحرف العربية المستوردة من الملف النصي في –الاكسل- ادراج رمز)

هذا حسب علمي ويمكن ان تجد في المنتدى خبراء يوضح هذا الموضوع.

تحياتي...

رابط هذا التعليق
شارك

  • 4 weeks later...

السلام عليكم

سأحل لك الجزء الأول من سؤالك

حاولت ان اجد طريقة للتصدير من التكست للاكسل باستخدام text to columns لم اجد محدد ينفع لاستخدام delimited وايضا المسافات غير متساوية لاستخدام fixed width

وعند استخدام المسافة يتم تقسيم العبارات وايضا تظهر بعض الكلمات العربية مقلوبة

فهل من حل لذلك مرفق ملف تكست واخر اكسل تم تصديره

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

تستطيع عمل ذلك علي خطوتين

أولا إستبدال كل ماهو مسافتين إلي رمز غريب غير مستخدم في الورقة وليكن #

ثانيا إستبدال كل ## بــ # واحدة

وتكرار ذلك إلي ألا يكون بالورقة ## جنب بعض

ثم إستخدم delimited علي الرمز #

أنظر الفيديو المرفق

اخي الكريم طارق جزاك الله خيرا

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

لكن

1-- هل يمكن عد ## الموجودة او عد # الناتجة عن الاستبدال اول مرة اي بعد استبدال المسافات بالرمز لمعرفة عدد مرات التكرارلعمل حلقة بالكود

يتم تكرار عملية الاستبدال بناء على ضغط مني على زر استبدال فهل يمكن عمل حلقة لذلك ؟

وتتكررالى ان لا يجد ## فيعطي الاكسل رسالة ويتوقف فهل يمكن وضع امر بالكود يفيد انه اذا بحثت عن شي لاستبداله ولم تجده تخرج من الكود وتتوقف الحلقة جزاك الله خيرا

تم تعديل بواسطه gamalin
رابط هذا التعليق
شارك

السلام عليكم

أخي الحبيب

ليس مهما أن تتعب نفسك لمعرفة ذلك

فقط يمكنك طلب تكرار عملية الإستبدال في الكود 10 مرات مثلا فلن يكون هناك أكثر من ذلك لو دائما الملف الصيغة التي أرسلتها

لاحظ أن 10 تعني أنها ستغطي حتي إحتمال أن يكون هناك 512 مسافة فاضية في مكان واحد

1 1

2 2

3 4

4 8

5 16

6 32

7 64

8 128

9 256

10 512

ولن يعطي الماكرو رسائل خطا إذا لم يجد مايستبدله

فقط سيقوم بالبحث عنها ولن يجد فلن يغير

الكود


Sub Macro1()


	Selection.Replace What:=" ", Replacement:="#", LookAt:=xlPart

	For i = 1 To 10

 	Selection.Replace What:="##", Replacement:="#", LookAt:=xlPart

	Next i

End Sub

تم تعديل بواسطه TareQ M
رابط هذا التعليق
شارك

السلام عليكم

أخي الحبيب

ليس مهما أن تتعب نفسك لمعرفة ذلك

فقط يمكنك طلب تكرار عملية الإستبدال في الكود 10 مرات مثلا فلن يكون هناك أكثر من ذلك لو دائما الملف الصيغة التي أرسلتها

لاحظ أن 10 تعني أنها ستغطي حتي إحتمال أن يكون هناك 512 مسافة فاضية في مكان واحد

1 1

2 2

3 4

4 8

5 16

6 32

7 64

8 128

9 256

10 512

ولن يعطي الماكرو رسائل خطا إذا لم يجد مايستبدله

فقط سيقوم بالبحث عنها ولن يجد فلن يغير

الكود


Sub Macro1()


	Selection.Replace What:=" ", Replacement:="#", LookAt:=xlPart

	For i = 1 To 10

 	Selection.Replace What:="##", Replacement:="#", LookAt:=xlPart

	Next i

End Sub

اشكرك اخي الكريم يااااااااااااااااااه قد ايه العملية سهلة وبسيطة على من علمه الله زادك الله علما

تحياتي

رابط هذا التعليق
شارك

من فضلك سجل دخول لتتمكن من التعليق

ستتمكن من اضافه تعليقات بعد التسجيل



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

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

Important Information