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

محمد حجازي

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

    771
  • تاريخ الانضمام

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

  • Days Won

    2

كل منشورات العضو محمد حجازي

  1. السلام عليكم ... قسم التحميل المؤقت لا يستخدم لطرح الأسئلة و إنما لتحميل الملفات فقط . الملف موجود على الرابط التالي : http://www.officena.net/ib/index.php?showtopic=8873 بالنسبة للملف ، أرغب بمزيد من الشرح ، لأني لم أفهم ما تريد بالضبط .
  2. السلام عليكم ... أخي مشكلتك لا تحتاج لكود ، فقط قف على العامود المحدد و اضغط Ctrl+سهم للأسفل .
  3. السلام عليكم ... و لكن ماذا إذا تجاوز حجم البيانات الـمجال السابق ، ماذا تريد أن يفعل الاكسل حينها .
  4. السلام عليكم ... جرب التنسيق التالي : @"/05" بالتوفيق
  5. السلام عليكم ... يمكنك حل المشكلة عن طريق إضافة صف إضافي ( الصف 11 المخفي) و الاستعانة بالدالة LARGE . جرب المرفق التالي : ABCD.rar
  6. السلام عليكم ... جرب الصيغة التالية : =SUM(Sheet1:Sheet2!A5:A9)
  7. السلام عليكم ... هذا ممكن طبعاً ، ولكن أخبرنا بالوسيلة التي تستخدمها لترحيل البيانات (الصيغ أو كود الـ VBA) ، و الرجاء إرفاق ملف لحالتك في قسم التحميل المؤقت للأعضاء .
  8. السلام عليكم ... عن طريق بعض البرامج . ابحث في النت و ستجد الكثير منها .
  9. السلام عليكم ... الأخوة almared_6 و eng_alwer2005 تم إرسال الدعوات
  10. السلام عليكم ... ضع الكود التالي في الـ ThisWorkbook : Private Sub Workbook_Open() If ActiveSheet.Name = "Sheet1" Then Sheets("Sheet1").Range("A1").Value = Sheets("Sheet1").Range("A1").Value + 1 End Sub
  11. السلام عليكم ... ضع الكود التالي في الـ ThisWorkbook : Private Sub Workbook_BeforePrint(Cancel As Boolean) Dim MyRange As Range Set MyRange = Sheets("Sheet1").Range("A3").CurrentRegion With Me.Sheets("Sheet1").Shapes("Rectangle 1") .IncrementTop MyRange.Height + MyRange.Top - .Top + 5 End With End Sub الكود السابق ينفذ عند النقر على أمر الطباعة . يوجد ملاحظتين على الكود السابق : - يجب أن تكون البيانات الموجودة في الجدول متصلة . - يمكنك زيادة المسافة التي تفصل بين مربع النص و الحافة السفلى من الجدول عن طريق تغيير الرقم 5 الموجود في الكود إلى رقم أكبر . MJID.rar
  12. السلام عليكم ... وضح طلبك بالضبط . هل تريد سرد القيم تحت بعضها البض (كل يوم بجانبه قيمته). أم تريد سرد قيمة اليوم السابق فقط .
  13. السلام عليكم ... أعذرني إذا كان هذا المرفق لا يفي بالغرض ، لأنني لم أفهم المقصود من طلبك بالضبط (أعتقد أن هذا ليس طلبك) . إذا لم يكن هذا طلبك فقم بمعاودة الشرح مرة أخرى . AverageOfConsuming1.rar
  14. السلام عليكم ... طريقتك يا أخ فسطيني صحيحة ، ولكن لماذا لا نقوم بحذف المتغير MyRange نهائياً من الكود السابق و ذلك بسبب انتفاء السبب الذي أدى لإدراجه ، و بهذا فإننا نوفر المساحة التي كان يشغلها هذا المتغير في الذاكرة . الاقتراح الثاني : Sub MyNumbers() Dim i As Integer m = 1 For Each MyCell In Worksheets("Sheet1").Range("C1:C5000").Cells i = i + m MyCell.Value = i If i = 1500 Then m = -1 If i = 0 Then m = 1 Next MyCell End Sub
  15. السلام عليكم ... اضغط على Alt+F11 ليظهر لك محرر الفيجوال . أدرج مودل و الصق الكود السابق فيه . الآن اذهب لورقة العمل و ضع الدالة التالية في الخلية التي تريد ظهور التاريخ فيها . =ash(A1:D8) المجال A1:D8 هو المجال الذي تريد تعديل التاريخ بمجرد تحرير أي خلية موجودة فيه . بالتوفيق
  16. السلام عليكم ... سوف أعرض هنا إن شاء الله بعض الخطوات البسيطة التي تمكنكم من إنشاء مخطط بياني فعال وبخطوات بسيطة . لا أخفيكم سراً أنني عانيت في الماضي من بعض المشاكل عندما كنت أتعامل مع المخططات البيانية ، وهذه المشاكل كان مردها الجهل بالمصطلحات التالية (متسلسلات البيانات Data Chains ، فئات البيانات Data Categories ، نقاط البيانات Data Points) ، و من وجهة نظري فإنك إذا فهمت و استوعبت هذه المصطلحات فإنك ستكون قد قطعت نصف الطريق لفهم و إنشاء المخططات المختلفة . ملاحظة : الكلام الآتي لا ينطبق على جميع المخططات البيانية الموجودة على الاكسل ، وذلك لأن بعض المخططات لها طبيعتها الخاصة بها. أمعن النظر بالصورة التالية و جاوبني عن هذه الأسئلة : 1- ما الهدف من المخطط البياني السابق . 2- ماذا ندرس في هذا المخطط . 3- ما الذي نرصد تغيره و بالنسبة لماذا . على ما يبدوا أن للأسئلة السابقة نفس الجواب ! ، وهو أننا نقوم بدراسة التقييم الذي حصل عليه الطلاب (أحمد ، محمد ، سعيد) وذلك بالنسبة (خلال) للأشهر (حزيران ، تموز ، آب ، أيلول) . لاحظ أخي أن الصندوق الموجود على أقصى اليسار (و الذي ندعوه بوسيلة الإيضاح) يحتوي على أسماء الطلاب و بجانبها نموذج للخط الخاص بكل طالب . ندعو كل من الخط الكحلي (الخاص بالطالب أحمد) و الخط الوردي (الخاص بالطالب محمد) و الخط الأخضر (الخاص بالطالب سعيد) بسلاسل البيانات Data Chains ، وهذه السلاسل هي التي نهدف لداستها . أي أننا نهدف من المخطط البياني السابق دراسة تقييم الطلاب (المتسلسلات البيانية) و ذلك عبر الأشهر المختلفة ، وبهذا فإننا يجب أن نحدد أولاً وقبل البدء بإنشاء أي تخطيط ما نريد دراسته وذلك لنعينه كمتسلسلات بيانات . نقاط البيانات Data Points هي عبارة عن القيم الموجودة على متسلسلات البيانات (و التي تشكل هذه المتسلسلات) ، وكل نقطة بيانات تقابل قيمة لخلية موجودة على الجدول الذي تم إنشاء التخطيط انطلاقا منه . فئات البيانات Data Categories هي عبارة عن مجموعة النقاط التي تنتمي لمجال أفقي معين ، فمثلاً النقاط التي تمثل القيم 7 ، 6 ، 4 تشكل بمجموعها فئة البيانات الخاصة بشهر آب. بعد تلك المقدمة ، هل تستطيع أن تخبرني ما هو التغيير الذي أجريته على المخطط السابق في الصورة التالية : ببساطة لقد جعلت مجموعة القيم الموجودة في كل شهر تشكل متسلسلة بيانات وجعلت مجموعة القيم الخاصة بكل طالب تشكل فئة بيانات (أي أنني جعلت المتسلسلات فئات و الفئات متسلسلات) لاحظ أخي أن المحور العامودي Y لا يمكن أن يكون سوى محور قيم ، و هذا المحور مهمته قياس قيم نقاط البيانات المختلفة . الآن و بعد أن استوعبنا المصطلحات السابقة ، هيا بنا لنقوم بإنشاء مخطط بياني (معتمدين بذلك على ما تعلمناه سابقاً) : لنقم أولاً برسم الجدول التالي : الجدول السابق يبين أرباح عدد من الشركات (المجد ، راما ، العالمي ، آفاق ، الكوثر) خلال أربعة أشهر (حزيران ، تموز ، آب ، أيلول) . بنظرة بسيطة على الجدول السابق نستنتج أن الذي نريد دراسته هو أرباح الشركات الخمس السابقة على مدى الأشهر الأربع . أي أن كل متسلسلة يجب أن تضم قيم الأرباح الخاصة بشركة معينة (واحدة فقط) ، و أن كل فئة يجب أن تضم قيم الأرباح المتحققة في شهر معين (واحد فقط) . لاحظ أخي أننا وضعنا أسماء فئات البيانات Data Categories في رؤوس أعمدة الجدول السابق ، و وضعنا أسماء متسلسلات البيانات Data Chains في رؤوس صفوف الجدول السابق ، بينما وضعنا قيم نقاط البيانات Data Points في الخلايا الموجودة داخل الجدول . لإدراج تخطيط بياني للبيانات الموجودة في الجدول السابق ما عليك سوى تحديد هذا الجدول و الضغط على F11 ليتم إدراج التخطيط في ورقة تخطيط مستقلة : قد تفاجئ عندما ترى أن الأكسل قد اعتبر (على خلاف ما تتوقع) أن القيم التابعة لكل شركة تشكل فئة بيانات و ليس متسلسلة بيانات ! ، و لكن لا تقلق يا أخي لأنه يمكننا حل هذه الإشكالية بسهولة فائقة . الاكسل يعتمد عند قيامه بعملية تحديد متسلسلات و فئات البيانات المختلفة على قاعدة بسيطة مفادها : أن متسلسلات البيانات يجب أن تكون أقل عدداً من فئات البيانات (و هذه قاعدة منطقية و غالبة و لكنها للأسف ليست صحيحة في مثالنا هذا) . لتغيير الافتراض السابق ما عليك سوى أن تخبر الاكسل بأن متسلسلات البيانات تتوضع (خلافاً لظنه) في صفوف الجدول ، و ذلك بإتباعك الخطوات التالية : نشط ورقة التخطيط المطلوبة (إذا كان التخطيط موجود على ورقة تخطيط مستقلة) أو حدد التخطيط المطلوب (إذا كان مضمنا في أحد أوراق العمل) ، ومن ثم اختر الخيار Source Data الموجود في القائمة Chart لتظهر لك نافذة : في التبويب Data Range و عند Series in غير التحديد من Column إلى Row و اضغط OK لتلاحظ النتيجة التالية : يمكنك إدراج بعض الإضافات على التخطيط السابق (كعنوان التخطيط و عناوين المحاور) و ذلك من خلال الخيار Chart Options الموجود في القائمة Chart . مرفق مثال لما كنا قد عملناه : يتبع .... CHART.rar
  17. السلام عليكم ... يمكنك ذلك عن طريق إضافة العامود E المخفي . جرب المرفق : AverageOfConsuming.rar
  18. السلام عليكم ... هذا منطقي لأنني لم أضع قاعدة Validation في عامود رأس المال . في الروابط التالية شرح لهذه الطريقة : http://www.officena.net/ib/index.php?showtopic=208 http://www.officena.net/ib/index.php?showtopic=664 يجب الملاحظة أن هذه القاعدة تتحسس فقط القيم المدخلة بشكل مباشر عن طريق المستخدم ، أما القيم الناتجة عن الصيغ فإن هذه القاعدة لا تتحسس التغير الذي يطرأ عليها ، و الحل يكمن في وضع قاعدة Validation في الخلايا التي تشكل مراجع للصيغة المفترضة (أي الخلايا التي يؤثر تغير قيمتها على قيمة الصيغة السابقة). هذا غير ممكن في قاعدة Validation و لكنه ممكن في كود الـ VBA ، إذا رغبت بذلك فإخبرني لأكتبه لك .
  19. السلام عليكم ... لمعرفة المزيد عن كيفية كتابة الكود ، راجع الرابط التالي : http://www.officena.net/ib/index.php?showtopic=8790 أما عن كيفية استخدام الـ ADO في الكود فيوجد في الانترنيت الكثير من الدروس عنها ، و على ما أذكر أني وجدت في الماضي دروساً عنها من شخص يدعى هيثم القلاف .
  20. السلام عليكم ... جرب الدالة التالية : Function ash(MyRange As Range) ash = Date & Time Application.ScreenUpdating = False End Function لمزيد من الشرح عن كيفية تطبيقها ، راجع الرابط التالي : http://www.officena.net/ib/index.php?showtopic=4100
  21. السلام عليكم ... جرب الكود التالي : Sub MyNumbers() Dim MyRange As Range Dim i As Integer Set MyRange = Application.InputBox(prompt:="أدخل مجال الخلايا التي تريد إدراج الترقيم التلقائي فيها", Title:="مجال الخلايا", Type:=8) m = 1 For Each MyCell In MyRange i = i + m MyCell.Value = i If i = 1500 Then m = -1 If i = 0 Then m = 1 Next MyCell End Sub
  22. لسلام عليكم ... المشكلة أن شرح هذه الخاصية بمفردها صعب بعض الشيء و لا بد من شرحها ضمن درس متكامل عن استيراد البيانات . على أية حال سأشرح لك فوائد استخدام هذه الخاصية (دون الولوج في التفاصيل) و ذلك على أمل أن نقوم بإدراج سلسلة متكاملة عن استيراد البيانات إلى الاكسل . الخاصية Parameters تستخدم لجعل جدول البيانات المستورد ذا طابع ديناميكي ، كيف ؟ عندما نقوم باستيراد بيانات معينة من أحد مصادر البيانات ، لا نقوم عادة باستيراد جميع البيانات وإنما نقوم باستيراد ما نحتاجها منها و ذلك عن طريق تصفيتها بواسطة استعلام محدد ، و لكن هذه الطريقة قد توقعنا في مشاكل عديدة من بينها أننا سنضطر إلى إجراء عملية استيراد في كل مرة تتغير فيها معايير التصفية التي نحتاجها . الحل لهذه المشكلة يكمن بالاعتماد على الخاصية Parameters وذلك من أجل ربط الاستعلام (الذي يتم الاستيراد بموجبه) بعدد من الخلايا الموجودة في ورقة العمل ، وفي هذه الخالة فإننا نحتاج لتغيير قيم هذه الخلايا فقط و ذلك دون الحاجة لإجراء عملية استيراد ثانية . لمزيد من الشرح راجع الرابط التالي : http://www.dicks-blog.com/archives/2004/12...l-data-queries/ مرفق مثال بسيط أعددته لأوضح لك الصورة ، فقط قم بوضع ترتيب الصف الدراسي في الخلية B1 ليتم مباشرة استيراد سجلات الطلاب الموجودين في هذا الصف . بالتوفيق student.rar
  23. السلام عليكم ... هل هذا ما تقصد ؟ _____________.rar
  24. السلام عليكم ... رد السابق كان بعد معاينة الملف . بصراحة أنا محتار في تفسير كلامك ، الرجاء التوضيح على مثال مبسط تشرحه لنا .
  25. السلام عليكم ... هذا التنسيق يغنيك عن كتابة الأصفار ، فقط اكتب الأرقام و ستضاف الأصفار تلقائياً : [>9999999999]"00"#;[>9999999]"0"#;#
×
×
  • اضف...

Important Information