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

ياسر خليل أبو البراء

المشرفين السابقين
  • Posts

    13,165
  • تاريخ الانضمام

  • تاريخ اخر زياره

  • Days Won

    412

كل منشورات العضو ياسر خليل أبو البراء

  1. أخي الكريم ارفق ملفك للإطلاع عليه ... أو قم باستبدال الجملة error my number إذا وجدت في الدالة المعرفة بعلامات تنصيص فراغ "" .. هذا السطر على ما أعتقد Kh_Date_Sex_Province = "Error_MyNumber" غير ليكون بهذا الشكل Kh_Date_Sex_Province = "" تقبل تحياتي
  2. والله لا تواضع ولا حاجة دي حقيقة أنا مجرد متعلم مجتهد لا أكثر ولا أقل .. وفي غالب الأحيان ناقل ولست مبدع أما أنتم فنبراس الإبداع والتميز على الدوام
  3. أخي ومعلمي الكبير رجب أنت وحدك لن أقول مدرسة بل جاااااااامعة فكيف تتعلم من تلميذ ضعيف مثلي ..أنا من أتعلم منكم على الدوام تقبل وافر تقديري واحترامي
  4. أخي الحبيب رجب جزيت خيراً على كلماتك الرقيقة وما أنا إلا قطرة في بحر علمكم الكبير أيا معلمي ... بارك الله فيك على الاختصار الرائع بالطبع يمكن اختصار الكود كما قدمته لنا في شكل أجمل .. ولكن لي رجاء ألا تنسى الإعلان عن المتغيرات ..لأنه في التعامل مع البيانات الكثيرة والأكواد الكبير يلزم الإعلان عنها للتخفيف على الذكراة أثناء التنفيذ ..نريد أن نعود أنفسنا الخطوات الصحيحة (والكلام موجه لي ولك ولجميع الأعضاء) أمر بسيط وهو تلافي الترحيل في حالة أن رقم الإيصال فارغ أو غير موجود .. من الأفضل احتواء جميع الاحتمالات في الكود تعمدت استخدام رسائل التنبيه التي يمكن الاستغناء عنها لتنبيه المستخدم إذا ما كان السجل تم ترحيله من قبل وهذا تعديل على السابق أو أنه سجل جديد أو أنه لم تتم عملية الترحيل ..ويمكن كما ذكرت الاستغناء عنها لتخفيف الكود أمر آخر بالنسبة للإعلان عن المتغيرات ..صراحة لا أحبذ استخدام اللغة العربية في أسماء المتغيرات أو تعيين قيم المتغيرات إذ أن اللغة العربية تكون مربكة في التعامل مع الكود فأفضل أن يتم الإعلان عن المتغيرات في بداية الكود ثم بدء التعامل معها .. وأفضل تسمية المتعيرات الخاصة بأوراق العمل بأسمائها البرمجية Sheet1 , Sheet2 إلا إذا كانت باللغة العربية ورقة1 و وورقة2 في هذه الحالة أتعامل مع أسماء أوراق العمل بشكل مباشر .. أمر آخر في الكود الأخير الخاص بك .. ماذا لو تم تنفيذ الكود وأنت في ورقة العمل "كشف" بالطبع سيحدث خطأ إذا أنك لم تشر إلى ورقة العمل التي سيتم جلب البيانات منها وهي ورقة "الإدخال" ولن تتم عملية الترحيل بشكل صحيح إلا إذا كنت محدد ورقة العمل "الإدخال" المناقشة ليست للتعديل عليكم لا سمح الله ، ولكن لتكون الأكواد بشكل أصح ويمكن استخدامها على نطاق أوسع في أي ورقة عمل بشكل مرن تقبل وافر تقديري واحترامي
  5. أخي الكريم خالد حاول أن تستخدم خاصية البحث في المنتدى إليك رابط الموضوع التالي لعلك تجد الإجابة بداخل الموضوع الملف القاتل (ملف يحوي كود لحذف أي ملف تحدده)
  6. خي الكريم سليم أعتقد أن الأمر لا يتعلق بالخلايا الملونة ..إذ أن صاحب الموضوع قال في مشاركته الأولى هذا يعني أن هناك احتمال كبير بوجود التنسيق الشرطي في الأوراق المذكورة .. لم ينبه أحد الأعضاء على صاحب السؤال أن يقوم بإرفاق ملف لتيسير الأمر ... حاولوا تساعدوني في هذا الأمر لأن إرشاد صاحب الموضوع يسهل الوصول للحل بشكل كبير بدلاً من الدخول في دائرة احتمالات وبدلاً من أن نركز في قضية واحدة ومسألة واحد يتشتت الجميع وتذهب الجهود سدى .. تقبلوا تحياتي
  7. أخي الكريم آل سراج أهلاً بك في المنتدى ونورت بين إخوانك لابد من إرفاق ملف للإطلاع عليه ..بشكل مبدئي السطر المحدد في الكود كلمة رقم الإيصال بين كلمة رقم وبين كلمة الإيصال مسافة والمسافات غير مسموح بها في أسماء المتغيرات كما أنني أفضل تسمية المتغيرات باللغة الإنجليزية لسهولة التعامل حيث أن تغيير اتجاه الكتابة مع اللغة العربية يكون مربك في غالب الأحيان تقبل تحياتي
  8. يمكن استخدام مفتاح الاختصار Ctrl + End للوصول آخر النطاق المستخدم
  9. أخي الفاضل أحمد يرجى تغيير اسم الظهور للغة العربية بالنسبة لسؤالك يمكن تنفيذ مجموعة من الماكرو عن طريق استدعاء كل ماكرو بالأمر Call يليه اسم الإجراء الفرعي المراد تنفيذه أي يمكن عمل إجراء فرعي واحد يستدعي كل الإجراءات الأخرى باستخدام هذه الكلمة إذا كان لديك استفسار يرجى طرح موضوع جديد لتمام الاستفادة للجميع تقبل تحياتي
  10. أخي الغالي إبراهيم حمداً لله على سلامتك ..فينك بعد الإشراف اختفيت فجأة بالنسبة للتعامل مع الأكواد من السهل تحويل النطاق ليكون ديناميكي بكل سهولة عن طريق تحديد بداية النطاق ونهايته عن طريق معرفة آخر سطر به بيانات .. الأخ الفاضل مهند يرجى وضع الأكواد بين أقواس الكود كما يرجى إرفاق ملف لأن كل ملف وكل حالة وليها الكود المناسب ليها ... وأفضل طرح موضوع جديد ليستفيد الجميع .. الأخ الحبيب والمعلم الكبير رجب .. أحب أن أرى نقدك بالنسبة للكود ، لا يهم إذا كانت هناك نقاط ضعف في الكود فعن طريق مناقشة الكود يمكن الوصول لأفضل الحلول معاً ..معاً نرتقي تقبلوا تحياتي
  11. أخي الكريم لما لا تقوم بتسجيل ماكرو لضبط التسطير بالشكل المطلوب ثم يمكنك معرفة ما يمكن تعديله في الكود ... حاول تعملها بنفسك الموضوع مش صعب محتاج بس شوية تركيز
  12. أي عمود تريد تطبيق التنسيق الشرطي عليه .. وجعل لون الخط باللون الأبيض ..؟
  13. أخي الكريم التنسيق الشرطي لن يقوم بمسح محتوى الخلية G14 ... يمكنك التعديل في المعادلة الموجودة بإضافة شرط بهذا الشكل (في الخلية K14 ضع المعادلة التالية) =IF(G14="","",IF(OR(M1="",AC10>Z10),"",AC10))
  14. أخي الكريم محمد إثراءً للموضوع ..إليك الكود بشكل آخر بعيداً عن نسخ ولصق البيانات وبعيداً عن الحلقات التكرارية للبحث عن رقم السند يمكنك إزالة رسائل التنبيه في الكود إذ أنني قمت بوضع تنبيه في حالة أ ن خلية رقم السند فارغة أو تساوي صفر ورسالة تنبيه في حالة إذا كانت البيانات جديدة وترحل لصف جديد ورسالة تنبيه في حالة إذا كانت البيانات موجودة بالفعل ..مع تحديد رقم الصف الذي توجد به البيانات القديمة مع تحياتي لمعلمي الكبير رجب جاويش Sub ReTransferData() Dim Ws As Worksheet, Sh As Worksheet Dim X, lRow As Integer, LR As Integer Set Ws = Sheets("ادخال"): Set Sh = Sheets("كشف") X = Val(Ws.Range("G13").Value) LR = Sh.Cells(Rows.Count, "B").End(xlUp).Row + 1 If X <> 0 Then If Application.IsNA(Application.Match(X, Sh.Columns("G:G"), 0)) Then Sh.Range("B" & LR).Resize(1, 10).Value = Ws.Range("B13").Resize(1, 10).Value MsgBox "New Record", 64 Else lRow = Application.Match(X, Sh.Columns("G:G"), 0) Sh.Range("B" & lRow).Resize(1, 10).Value = Ws.Range("B13").Resize(1, 10).Value MsgBox "Editing Exisitng Record At Row " & lRow, 64 End If Else MsgBox "Receipt Number Should Not Be Empty", vbExclamation: Exit Sub End If End Sub تقبلوا تحياتي
  15. أخي الحبيب سليم بارك الله فيك .. لاحظ الكود الخاص بك في حالة قمت بمسح مجموعة من الخلايا .. لن يتم مسح التسطير السابق لأنك حددت شرط Target.Count=1 ..يمكنك إزالة الشرط ليتحصل المطلوب بشكل أفضل
  16. أخي العزيز أيمن إبراهيم ضع الكود التالي في موديول Sub Borders() Dim Rng As Range, Cel As Range Set Rng = Range("B5:B20") Application.ScreenUpdating = False Rng.Borders.LineStyle = xlNone For Each Cel In Rng If Cel.Value <> "" Then With Cel.Resize(1, 6) .Borders.Weight = xlThin: .BorderAround Weight:=xlMedium End With Else Cel.Resize(1, 6).Borders.LineStyle = xlNone End If Next Cel Application.ScreenUpdating = True End Sub وقم بوضع الكود التالي في حدث الورقة الأولى Private Sub Worksheet_Change(ByVal Target As Range) If Target.Column = 2 And Target.Row > 4 Then Call Borders End If End Sub تقبل تحياتي
  17. أخي الكريم يوسف عطا .. لم أفهم النقطة الأخيرة هلا أرفقت مثال بشكل النتائج المتوقعة ليسهل فهم المطلوب ..
  18. يبقا غير الـ 88 دي مثلاً لأبو عمر ليصبح الاسم (أسامة أبو عمر) ..مش كدا أشيك
  19. مرورك بأي موضوع لي رد فيه شرف كبير لي أخي ومعلمي رجب جاويش فمكنم تعلمنا ومازلنا نتعلم .. جمعني الله وإياك في مستقر رحمته في الفردوس الأعلى من الجنان تقبل وافر حبي وتقديري وتحياتي
  20. ألف مبروك الترقية وإلى المزيد دائماً أخي العزيز ياسر البنا تقبل وافر تقديري واحترامي
  21. تمام التمام الله ينور عليك ..كدا إنت مية مية باقي نقطة صغيرة جداً وهي تعريف المتغير ..أكتر شيء يضايقني هو عدم تعريف المتغيرات ... رغم إن فيه كتير بيتغاضوا عنه لكنه مهم جداً خصوصاً لو هتتعامل مع أكواد كبيرة وفيها شغل كتير عشان تخفف عمل الكود لأنه إذا لم يتم الإعلان عن المتغيرات تأخذ مساحة أكبر في الذاكرة فالسطر المطلوب في أول الكود هو Dim يليها اسم المتغير ثم استخدم كلمة As يليها نوع المتغير والنوع كما ذكرت سيكون Worksheet حاجة تانية ممكن أسأل عنها ايه فايدة السطرين دول!! .PrintTitleRows = "" .PrintTitleColumns = "" أعتقد ملهومش فايدة بالنسبة للكود
  22. أرى أنه من الأفضل طرح موضوع جديد ليطلع عليه جل الأعضاء ويدلي كل من له خبرة بدلوه ... تقبل تحياتي
  23. جميل ورائع أيها المعلم العبقري والأجمل الاختصار الجميل في الكود للوصول للمطلوب ..فكرة في منتهى الجمال أن تحمل القيمة True و False في متغيرات يتم استخدامها بشكل أبسط خصوصاً لو كان التعامل سيكون مع عدد أكبر من صناديق الاختيار أيوا كدا رجعنا لأيام زمااااااااااااااااان تقبل تحياتي
  24. أخي الحبيب ياسر العربي الفكرة مش ف الفك أنا عندي بدل الطريقة الواحدة عشر طرق ...بس نحب نستفيد من الجديد وبصراحة ملفك عجبني وإن شاء الله يظبط معاك أما بالنسبة لـ 32 بت ..فيبدو أنني قد هجرته تماماً ولم أعد أعمل عليه .. اللي خد ع الشغل العالي صعب يرجع تاني للشغل الضعيف أنا بالفعل مرتاح جداً في نسخة الـ 64 بت ويندوز 10 وأوفيس 2013 نسخة 64 بت وتعمل بكفاءة عالية تقبل تحياتي يا كبير
  25. أخي الفاضل أحمد بارك الله فيك أيوا كدا الماكنة بدأت تطلع قماااااااااااااااااش السطر ده مش صحيح ws = Application.PrintCommunication = False وداخل الحلقة التكرارية لأنك بتتعامل مع كل أوراق العمل فبكدا انسى الورقة النشطة Acivesheet واتعامل مع المتغير Ws .. ليصبح السطر بهذا الشكل With Ws.PageSetup أرجو أن تكون الفكرة قد وضحت
×
×
  • اضف...

Important Information