علي بطيخ سالم قام بنشر سبتمبر 26, 2019 قام بنشر سبتمبر 26, 2019 السلام عليكم : قمت بتسجيل ماكرو من أجل ضبط الأسماء دفعة واحدة وهناك اسطر كثيرة داخل الكود اعتقد يوجد حل لتقليلها أو اختصارها (كما أريد أن أضيف اسماء أخرى داخل الكود بدون التسجيل كل مرة يعني هناك اسماء قد تطرأ على الملف تحتاج إلى تصحيح أريد أن أضيفها ضمن الكود بدون الرجوع مرة أخرى للتسجيل أو لنسخ الأسطر وتعديل الأسماء بداخلها) أتمنى أجد حل لذلك وبارك الله فيكم تعديل الأسماء دفعة واحدة.xlsm
سليم حاصبيا قام بنشر سبتمبر 26, 2019 قام بنشر سبتمبر 26, 2019 الملف غير مفهومه الغاية منه لماذا تريد استبدال علي بـــ علي ومصطفى بــ مصطفى طالما الاسمين موجودين 1
علي بطيخ سالم قام بنشر سبتمبر 26, 2019 الكاتب قام بنشر سبتمبر 26, 2019 (معدل) استاذنا الأستاذ سليم حاصبيا أنا أعمل بمدرسة وللأسف يتم تسجيل الطلاب على موقع الوزارة بواسطة أولياء الأمور وكثيراً ما أجد أخطاء لغوية في الأسماء فحينما أقوم بعمل قوائم فصول واريد ترتيب الأسماء مثلاً أجد (أسم مصطفي) بياء وليس ألف مقصورة والصحيح هو (مصطفى) فأنا أريد أن اجعل من هذا الماكرو قاعدة بيانات للأسماء الصحيحة بما فيها الأسماء التي بها أخطاء وذلك لتطبيقها فيما بعد على أي ملف به أسماء تحوي أخطاء أرجوا أن تكون الفكرة قد وصلت تم تعديل سبتمبر 26, 2019 بواسطه علي بطيخ سالم
علي بطيخ سالم قام بنشر سبتمبر 26, 2019 الكاتب قام بنشر سبتمبر 26, 2019 مهمة الكود يقوم بالبحث عن الأسماء التي بها خطأ وتصحيحها دفعة واحدة وذلك لاستخدامها في نطاق 3000 اسم بالمدرسة (بها أسماء مكررة مثل علي - مصطفى - ...... إلى آخره من الأسماء)
سليم حاصبيا قام بنشر سبتمبر 26, 2019 قام بنشر سبتمبر 26, 2019 الامر ليس بهذه البساطة مثلاً اذا اردت ان تستبدل كل شيء يبدأ بـــ حس و اخذت في الماكرو ( "حس* ":= what ) فان البرنامج يستبدل حسن و حسني و حسام باسم حسين اذا كان المستبدل في الماكرو هو حسين
علي بطيخ سالم قام بنشر سبتمبر 26, 2019 الكاتب قام بنشر سبتمبر 26, 2019 استاذ سليم حاصبيا اشكرك على التجاوب معي سوف أقوم باستبدال الاسم داخل الكود وما أريده هو اختصار الأسطر الموجودة في هذا الكود بحيث تتوافق مع ما اريد استبداله من الأسماء فقط يعني كالتالي: Cells.Replace What:="حسنى", Replacement:="حسني", LookAt:=xlPart, _ SearchOrder:=xlByRows, MatchCase:=False, SearchFormat:=False, _ ReplaceFormat:=False Cells.Replace What:="على", Replacement:="علي", LookAt:=xlPart, _ SearchOrder:=xlByRows, MatchCase:=False, SearchFormat:=False, _ ReplaceFormat:=False Cells.Replace What:="مصطفي", Replacement:="مصطفى", LookAt:=xlPart, _ SearchOrder:=xlByRows, MatchCase:=False, SearchFormat:=False, _ ReplaceFormat:=False Cells.Replace What:="سالى", Replacement:="سالي", LookAt:=xlPart, _ SearchOrder:=xlByRows, MatchCase:=False, SearchFormat:=False, _ ReplaceFormat:=False وهكذا الكود يعمل معي بطريقة جيدة لكن ما أريده اختصار اسطر الكود نفسه بحيث اصحح الأسماء بدلالة الأسماء الخاطئة بدلاً من نسخ الكود ولصقه في كل مرة اريد تصحيح اسم
علي بطيخ سالم قام بنشر سبتمبر 26, 2019 الكاتب قام بنشر سبتمبر 26, 2019 وهناك بعض الأسماء المختلفة عند تطبيق الكود عليها قام بتعديلها جميعاً مرة واحدة مثل (اسم عبد ا...) من الملاحظ أن هناك مسافة بين (حرف الدال وحرف الألف) وبحذف هذه المسافة داخل الكود قام بتصحيح الكثير من الأسماء المركبة دفعة واحدة (مثل عبدالله - عبدالرحمن - عبدالعليم ....وهكذا ) وتعلم استاذنا أن مثل هذه الأشياء البسيطة تصيب الترتيب بالخلل في الاكسل مما يتسبب في كثير من المشاكل مثل ترتيب الطلاب داخل قاعات الامتحان وغيرها فقد أجد اسم عبدالله بعد مجموعة من الأسماء المختلفة بعيداً عن نفس الاسم وذلك لوجود مسافة بين الحرفين
سليم حاصبيا قام بنشر سبتمبر 26, 2019 قام بنشر سبتمبر 26, 2019 في هذا الملف نموذج عما تريد فقط اكمل المصفوفة بما تشاء من اختصارات و ما يقابلها من اسماء ونفذ الماكرو Option Explicit Sub replace_Please() Dim my_rg As Range Dim arr(1 To 3) Dim st$ Dim i% arr(1) = "مصط" & "*": arr(2) = "حس" & "*": arr(3) = "عيد" & "*" Set my_rg = Range("f1").CurrentRegion For i = LBound(arr) To UBound(arr) Select Case arr(i) Case "مصط" & "*": st = "مصطفى" Case "حس" & "*": st = "حسين" Case "عيد" & "*": st = "عبد" End Select my_rg.Replace What:=arr(i), Replacement:=st, LookAt:=xlPart Next End Sub الملف مرفق Replacement.xlsm 2
علي بطيخ سالم قام بنشر سبتمبر 26, 2019 الكاتب قام بنشر سبتمبر 26, 2019 (معدل) استاذنا هل لابد من هذا السطر arr(1) = "مصط" & "*": arr(2) = "حس" & "*": arr(3) = "عد" & "*": arr(4) = "هدي" & "*" بحيث اضيف اليه في كل مرة أم يمكن الاستغناء عنه بحيث اضيف الأسماء المطلوبة بعد Case مباشرة تم تعديل سبتمبر 26, 2019 بواسطه علي بطيخ سالم
سليم حاصبيا قام بنشر سبتمبر 26, 2019 قام بنشر سبتمبر 26, 2019 46 دقائق مضت, علي بطيخ سالم said: استاذنا هل لابد من هذا السطر arr(1) = "مصط" & "*": arr(2) = "حس" & "*": arr(3) = "عد" & "*": arr(4) = "هدي" & "*" بحيث اضيف اليه في كل مرة أم يمكن الاستغناء عنه بحيث اضيف الأسماء المطلوبة بعد Case مباشرة يمكن ان تضيف الاسماء دون array لكن باستعمال array يكون الماكرو اسرع و كما قلت لك يمكنك تكبير array قدر ما تشاء ولو كان هنا 100000 احتمال 1
علي بطيخ سالم قام بنشر سبتمبر 26, 2019 الكاتب قام بنشر سبتمبر 26, 2019 أحسنت استاذنا الجليل الأستاذ سليم جزاك الله خيراً وجعله الله في ميزان حسناتك اللهم آمين
الردود الموصى بها
Join the conversation
You can post now and register later. If you have an account, sign in now to post with your account.