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

الشهابي

الخبراء
  • Posts

    1,160
  • تاريخ الانضمام

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

  • Days Won

    1

كل منشورات العضو الشهابي

  1. تفضل أخي العزيز تم توسيع المدى إلى (1000) البحث وترحيل الاسماء المكررة حسب الاسم الثلاثي.rar
  2. أخي العزيز / أبو نبأ ما شاء الله تبارك الله أخينا الأستاذ القدير / أبو عيد عمل لك المطلوب جزاه الله خير هذه محاولة مني للحل عملتها من يوم أمس بواسطة دالة معرفة لأستاذنا القدير عبد الله باقشير وكود آخر لفرز القيم هجائيا فأحبت أن أشارك لإثراء الموضوع وإلا في حل الأستاذ أبو عيد الكفاية بارك الله فيه ورفع قدره تقبلوا تقديري واحترامي البحث وترحيل الاسماء المكررة حسب الاسم الثلاثي.rar
  3. إستاذي العزيز / ياسر خليل تم اكتشاف الخطأ ويتمثل في اختلاف تسمية الأوراق حيث تم تغير ( Sheet1 ) بـ ( ورقة1 ) فتمت الإضافة والتسمية بالاسم المطلوب حيث أصبح الكود هكذا Sub CreateNewWB() Dim NewBook As Workbook Set NewBook = Workbooks.Add On Error Resume Next Application.DisplayAlerts = False NewBook.SaveAs Filename:=ThisWorkbook.Path & "\" & ThisWorkbook.Sheets("æÑÞÉ1").Range("A1").Value, FileFormat:=xlOpenXMLWorkbookMacroEnabled Application.DisplayAlerts = True End Sub أويمكن الاستغناء عن تسمية الورقة والإشارة إلى رقمها فيصبح الكود هكذا Sub CreateNewWB() Dim NewBook As Workbook Set NewBook = Workbooks.Add On Error Resume Next Application.DisplayAlerts = False NewBook.SaveAs Filename:=ThisWorkbook.Path & "\" & ThisWorkbook.Sheets(1).Range("A1").Value, FileFormat:=xlOpenXMLWorkbookMacroEnabled Application.DisplayAlerts = True End Sub المهم أستاذي العزيز لك مني كل التقدير والإحترام وجزاكم الله خير ورفع الله قدركم وزادكم علما ورفعة ووفقكم الله دائما لخدمة إخوانكم كما لا أنس أخينا العزيز الأستاذ عبد الله بلنوار على تقديم يد العون والمساعدة حزاه الله خير وكل من شارك معنا ولو بالمشاهدة حزاهم الله خير تقبلوا تحياتي
  4. إستاذي العزيز / ياسر خليل لم يفلح الأمر استاذنا القدير تم إنشاء مستند جديد ولكن لم يتم تسميته بالاسم الموجود في الخلية (a1) هل جربت الكود أنت جزاكم الله خير أستاذنا
  5. إستاذي العزيز / ياسر خليل هذا الكود هو لتغير اسم الملف وليس لإنشاء مجلد جديد كما أشرت في المشاركة الثامنة أرجو التعديل وجزاكم الله خير
  6. أستاذي العزيز / ياسر خليل شرف كبير لي وسعيد جداً بمروركم الكريم على موضوعي وإضافة في محلها جزاكم الله خير وأتمنى منكم أو من أحد الإخوان التعديل على الكود لإنشاء مستند جديد يحفظ باسم مأخوذ من الخلية نفسها (a1) مثل ما تم في الفتح
  7. أخي العزيز الأستاذ / عبد الله بولنوار الوندوز عندي ( 8) والملف عندي يعمل مضبوط من ملاحظتي للصورة التي أرسلتها أن اسم الملف في الخلية (a1) ليس الصفوف فبالتالي جاءت رسالة الخطأ هذا الكود هو لفتح ملف موجود في نفس المجلد وليس لإنشاء مجلد جديد والعفو
  8. أخي العزيز الأستاذ / عبد الله بولنوار جزاك الله خير على سرعة الرد والمساعدة وقبل أن أطلع على ملفك كنت ابحث في أحد المواقع الأجنبية فوجدت الحل وحلك كذلك يفي بالغرض أيضا بعد أن أطلعت عليه رفع الله قدرك وزاد علمك تقبل احترامي وتقديري والحل بسيط وليس كما اعتقد أنه معقد وهو باستخدام ( Range ) حيث يكون الكود بهذا الشكل Workbooks.Open Filename:=ActiveWorkbook.Path & "\" & Range("a1").Text & ".xlsm" لاحظوا الملف المرفق فيه مستندين أرفعه للفائدة وجزاكم الله خير فتح ملف اسمه مأخوذ منخلية ما.rar
  9. الأخوة الأعضاء الكرام السلام عليكم ورحمة الله وبركاته ممكن المساعدة في معرفة كيفية أخذ اسم مستند ما من خلية لفتحه أو إنشاء جديد يأخذ اسمه من خلية معينة مثلا: Workbooks.Open Filename:=ActiveWorkbook.Path & "\" & "الصفوف" & ".xlsm" كيف استبدل اسم الصفوف بدالة تشير إليه في نطاق ممسى مثلاً ( الصف ) مثل دالة ( INDIRECT ) للإشارة إلى مدى معين مثلاً أو دالة ( CStr ) للإشارة إلى ورقة معينة حاولت استعمال دالة ( CStr ) ولكن دون فائدة أفيدونا أفادكم الله ولكم منا جزيل الشكر والتقدير وجزاكم الله خير
  10. أخي العزيز / ياسر عفوا لم أفهم ما تقصده بالنسبة لاستثناء يوم الجمعة هذا ما تقوم به المعادلة إذا تكن تقصد أن يكون بداية التاريخ ليس جمعة فهذا أنت تتحكم فيه لأنه لابد من وضع بداية للتاريخ يدويا فإذا وضعت تاريخ وكان يوم جمعة قم باستبداله والله أعلم قمت بتطبيق المعادلة على ملفك في المشاركة الأخيرة وقمت بتغير تنسيق الخلايا حتى تعطي اليوم في الخلية العليا والتاريخ في الخلية الأسفل منها ما عليك فقط هو تغير أول تاريخ لتلاحظ تغير التاريخ في بقية خلايا التاريخ عفواً تم حذف الملف ومن ثم رفعه مرة أخرى لأنه لم تحفظ التعديلات المطلوب_2.rar
  11. أخي العزيز / rofa97 بالنسبة للطباعة حدد في الخلية الصفراء التي فوق زر الطباعة المطلوب طباعته ( الكل ) أو رقم الكشف (1) أو (2) أو ( 3) حسب ما تختار أما بالنسبة لمعادلة عدد الصفحات هي عبارة عن قسمة العدد الذي حصلنا عليه من عملية الفرز على 20 وهو العدد الذي يأخذه الجدول ومن ثم تم استعمال الدالة (ROUNDUP) لتقريب الناتج إلى أعلى والتخلص من الكسر
  12. أخي العزيز / ياسر لاحظ المرفق لعله المطلوب إن شاء الله لكن انتبه لتنسيق الخلايا يكون تاريخ تسلسل تاريخ عند وضع بداية التاريخ فى خانه معينه.rar
  13. أخي العزيز / rofa97 في الملف قم بإخفاء الورقة ( FORM3 ) حيث يتم التعامل مع الورقة المسماة( FORM3 (2) ) فعندما يتم التغير في معايير البحث في أعلى الصفحة يتم تغير البيانات في الجدول حيث يتم جلبها من ورقة ( FORM3 ) المخفية ( يمكنك إظهارها أذا أردت ) كما عملت لك كود للطباعة تحدد الكشف المطلوب طباعته سوى الكل أو كشف بعينه حيث يحتوي كل كشف على ( 20) معلم يمكنك ملاحظة الملف المرفق وإن شاء الله تستوعبه من خلال ملاحظتك له وإذا في استفسار ضعه وإن شاء الله سوف تجد الجواب سوى منا أول من أي أحد من الأخوة والعفو DATA.rar
  14. خي العزيز / rofa97 هذا طريقة لجلب البيانات بطريقة الكود وقد قمت بتسجيل كودين للتصفية المتقدمة كود لعمل قوائم بالقيم الفريدة وكود آخر لجلب البيانات وقد قمت بتصوير خطوات العمل وسأرفق ملفين فديو يوضح ذلك حيث الفديو الأول لعمل القيم الفريدة والفديو الثاني لجلب البينات حسب المعايير في أعلى الصفحة ففي التسجيل الأول لعمل قائمة فريدة باسم اللجنة ينتج الكود التالي Sheets("DATA").Range("D8:D500").AdvancedFilter Action:=xlFilterCopy, _ CriteriaRange:=Sheets("DATA").Range("D8:D500"), CopyToRange:=Range( _ "FORM3!AA8"), Unique:=True ومن ثم تم نسخ الكود ولصقه في الأسفل والتعديل عليه في النطاقات لعمل قوائم فريدة لكل من الوظيفة والعمل المكلف به ومقر العمل ليصبح الكود بهذا الشكل Sheets("DATA").Range("D8:D500").AdvancedFilter Action:=xlFilterCopy, _ CriteriaRange:=Sheets("DATA").Range("D8:D500"), CopyToRange:=Range( _ "FORM3!AA8"), Unique:=True Sheets("DATA").Range("F8:F500").AdvancedFilter Action:=xlFilterCopy, _ CriteriaRange:=Sheets("DATA").Range("F8:F500"), CopyToRange:=Range( _ "FORM3!AB8"), Unique:=True Sheets("DATA").Range("H8:H500").AdvancedFilter Action:=xlFilterCopy, _ CriteriaRange:=Sheets("DATA").Range("H8:H500"), CopyToRange:=Range( _ "FORM3!AD8"), Unique:=True Sheets("DATA").Range("I8:I500").AdvancedFilter Action:=xlFilterCopy, _ CriteriaRange:=Sheets("DATA").Range("I8:I500"), CopyToRange:=Range( _ "FORM3!AC8"), Unique:=True والكود الثاني لجلب البيانات وهو مسجل أيضا وهو Sheets("DATA").Range("C8:Z500").AdvancedFilter Action:=xlFilterCopy, _ CriteriaRange:=Range("B2:G3"), CopyToRange:=Range("B7:H7"), Unique:=False وإذا أردت الاستزادة في تسجيل كود للتصفية هناك شروحات للأستاذ الكبير كيماس في هذا المجال صوت وصورة بطريقة قمة في التوضيح وإيصال المعلومة وهو أفضل من الشرح الصامت وبالنسبة للطباعة يفضل عمل ورقة جديدة منسقة ومنظمة يتم طباعتها بحيث يتم جلب بياناتها من ورقة ( FORM3 ) عمل قائمة بالسجلات الفريدة.rar جلب البيانات.rar DATA.rar
  15. أخي العزيز / rofa97 هذا حل بواسطة أعمدة مساعدة في الورقتين معاً وهو العمود (AA) كما قمت بتعديل عناوين الرؤوس في الورقة الثانية لتطابق عناوين رؤوس الأعمدة في الورقة الأولى لأن جلب البيانات يعتمد على العناوين أيضاً وأي اختلاف في العناوين في الورقتين لن يتم جلب بيانات العمود هذا الحل بالمعادلات حسب طلبك كما غيرت القائمة المنسدلة باسم المدارس وليس رقمها وجعلتها قائمةمرنة بحيث لا يظهر في القائمةالفراغات قم باختيار المدرسة ليتم جلب بياناته كما يمكن عمله بالأكواد واظنه أفضل عن طريق التصفية المتقدمة إذا كنت ترغب في ذلك يمكن عمله والله الموفق والعفو DATA.rar
  16. أخي العزيز / مختار حسين محمود أفضل طريقة لتحويل معادلة إلى كود وهي عن طريق تسجيل ماكروا للمعادلة الأولى عن طريق تحرير المعادلة والنقر على انتر ليتم تسجيلها كما فعل الأستاذ القدير الجموعي ومن ثم استعمل هذه الجزئية التي تعلمتها من أستاذنا الكبير عبد الله باقشير وهي تصلح لأي معادلة تريد تحويلها كود أو على الأصح وضع قيمة المعادلة بدلا منها من أجل تخفيف حجم الملف والجزئية هي .Value = .Value حيث يتم تعديل الكود ليتم تبطيق المعادلة على كافة الصفوف التي تحتوي على بيانات هنا قمت بافتراص أن البيانات المعتمدة لتنفيد المعادلة هي في العمود (B) فيتم تطبيقها على بيانات هذا النطاق فلو وجدت خلية في العمود (B) فارغة لن يتم تطبيق الكود في الخلية المقابلة لها في العمود (U) هذا الكود طبقه في ملفك Sub Macro1()لا lr = Range("B10000").End(xlUp).Row With Range("U3:U" & lr) .FormulaR1C1 = _ "=IF(AND(RC[-18]=""غـ"",RC[-16]=""غـ"",RC[-14]=""غـ"",RC[-12]=""غـ"",RC[-10]=""غـ"",RC[-8]=""غـ"",RC[-6]=""غـ"",RC[-4]=""غـ"",RC[-2]=""غـ""),""غـ"",SUM(RC[-18],RC[-16],RC[-14],RC[-12],RC[-10],RC[-8],RC[-6],RC[-4],RC[-2]))" .Value = .Value End With End Sub وإذا أردنا أن ينفذ الكود بصورة أسرع يمكن إضافة هذه الأسطر للكود ليصبح هكذا Sub Macro1() Application.ScreenUpdating = False Application.Calculation = xlManual lr = Range("B10000").End(xlUp).Row With Range("U3:U" & lr) .FormulaR1C1 = _ "=IF(AND(RC[-18]=""غـ"",RC[-16]=""غـ"",RC[-14]=""غـ"",RC[-12]=""غـ"",RC[-10]=""غـ"",RC[-8]=""غـ"",RC[-6]=""غـ"",RC[-4]=""غـ"",RC[-2]=""غـ""),""غـ"",SUM(RC[-18],RC[-16],RC[-14],RC[-12],RC[-10],RC[-8],RC[-6],RC[-4],RC[-2]))" .Value = .Value End With Application.Calculation = xlAutomatic Application.ScreenUpdating = True End Sub تقبل تحياتي
  17. أخي العزيز / ابن صحراء الليبو لو أرفقت ملفاً كان أفضل ولكن على سبيل المثال لو افترضنا أن تواريخ الميلاد موجودة في العمود (c) بس لابد أن يكون تنسيق الخلايا تاريخ ومدخلة باليوم والشهر والسنة كما أشرت في سؤالك استعمل هذه المعادلة للمواليد الذين يقع سنهم من 1956 إلى 1970 بحيث يدخل معهم أصحاب 1965 و1970 =SUMPRODUCT((YEAR(C3:C626)>=1965)*(YEAR(C3:C626)<=1970)) أما إذا أردت استثناء مواليد 1965 و 1970 احذف إشارة يساوي لتصبح المعادلة بهذا الشكل =SUMPRODUCT((YEAR(C3:C626)>1965)*(YEAR(C3:C626)<1970)) ونفس الطريقة طبقها لمواليد 1970 أو 1971 إلى 1975 فقط قم بتغير الأعوام =SUMPRODUCT((YEAR(C3:C626)>=1971)*(YEAR(C3:C626)<=1975)) إن شاء الله واضح الشرح
  18. يتم وضعها في التنسيق الشرطي وذلك من خلال علامة التبويب الصفحة الرئيسية ثم التنسيق الشرطي ثم تختار إدارة القواعد ومن ثم تختار تحرير القاعدة وسوف تلاحظ وجود المعادلة الخاصة بالتنسيق الشرطي هذا بالنسبة للنسخة العربية إن شاء الله الفكرة وصلت والعفو
  19. أخي العزيز / مهند الزيدي هذا حل ليس عن طريق الفورم والكود ولكن بالمعادلات حيث تم إضافة معادلة خاصة في الخلية (D5) من أجل ذلك قم بتغير اسم الوصل واذهب إلى صفحة الطباعة وسوف تلاحظ تغير البيانات حسب الجدول المحدد لاحظ المرفق إن شا الله يحقق مطلوبك والعفو Book1.rar
  20. أخي العزيز / مهند الزيدي هذه طريقة عن طريق فورم الأستاذ الكبير / عبد الله باقشير قم بتغير اسم الوصل واضغط على زر فورم إضاففة وبحث وتعديل وسيقوم الفورم بإدخال البيانات في الجدول المحدد لقد أصف ورقة ثانية وضعت فيها المعادلة حتى لا تقع في موضع فيه جدول حيث أنك أشرت إلى أن عدد الجداول كثيرة وإذا أردتها في نفس الصفحة يمكن ذلك الخيار لك تقبل تحياتي والعفو Book1.rar
  21. الأستاذ / محمد الشريف تقول أنك لست أستاذ بل أستاذ الأساتذة وليس إمكانيات الأكسل الرائعة فقط بل أنت الأروع أنت تتقدم بصورة سريعة ومتمكنة جداً في مجال الأكسل والبرمجة لو تسطيع أن تشرح لنا عمل الرسم البياني وحركة الساعة فيه وجزاك الله كل خير وعلى فكرة لا نستطيع أن نرد لكم الهدية فلسنا أهلا لذلك فقد لاحظت أستاذنا ياسر خليل يطلب رد الهدية في أحدى هدياه ولا نستطيع ذلك أين نحن وأين أنتم العفو
  22. أخي العزيز / حسام عيسى كنت مطلع على أحد ردودك في أحد المواضيع فوجدت تغير الرتبة إلى عضو مميز تصدق أنا منتظرها ومتوقعها بكل تأكيد حسب ما رأيت من ردودكم الرائعة وأتشرف بأن أكون أول من يهنئك والشكر موصول لأستاذنا وعلامتنا القدير / عبد الله باقشير على متابعته الدائمة لمواضيع المنتدى وردود الأعضاء
  23. الأخ العزيز / جمال أبو بسنت هذه محاولة للحل حيث قمت بإضافة سطر وهو الصف 11 وذلك من أجل أن تتم التصفية بشكل صحيح إن شاء الله أكون وفقت في الحل الثالث.rar
  24. لأستاذ القدير / محمود الشريف أولا لي الشرف أن أكون أول من يرد على موضوعك ما شاء الله أستاذ محمود تقدم كبير في مجال الأكواد ملف بالفعل يستحق الإشادة الله يزيدك علماً ومعرفة جزاكم الله خير
  25. الأستاذ القدير / ياسر خليل ملف رائع وتنسيق أروع هدية مقبولة إن شاء الله وجزاك الله كل خير الله لا يحرمنا منك ولا من هذا المنتدى الرائع
×
×
  • اضف...

Important Information