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

محمد طاهر عرفه

إدارة الموقع
  • Posts

    8,726
  • تاريخ الانضمام

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

  • Days Won

    37

كل منشورات العضو محمد طاهر عرفه

  1. موضوع ذو صلة مقارنة قيمتين فى عمود السحب و الرصيد و منع زيادة السحب عن الرصيد (عمود بالكامل) http://www.officena.net/ib/index.php?showt...=2633&hl=مقارنة
  2. مقارنة قيمتين فى خليتين مع التنبيه مقارنة السحب بالرصيد (خليتين محددتين) http://www.officena.net/ib/index.php?showt...=2609&hl=مقارنة مقارنة قيمتين فى عمود السحب و الرصيد و منع زيادة السحب عن الرصيد (عمود بالكامل) http://www.officena.net/ib/index.php?showt...=2633&hl=مقارنة
  3. الكود يقوم بعد عدد الفواصل الموجودة بين الصفحات افقيا و رأسيا و يضيف عليها 1 مستنتجا عدد الصفحات و من ذلك يحسب عدد الصفحات لذا اذا اخترت اعداد الطباعة ليس عن طريق حجم الصفحة و لكن بتثبيت عدد الصفحات بالطول و العرض فلن يكون هذا الحل مجديا و سيعطي دائما 2 و هذا الحل له عيب آخر عندما ستبقي جزء من صفحة لا بوجد بعدها فاصل لا يدخل فى العدد جرب الملف المرفق ستجد العدد سليم و لكن مازال علينا البحث عن حل للمشاكل السابقة او ايجاد حل بديل pagebreacks.zip
  4. تم تعريف مجال البيانات فى ورقة مصدر الباينات باسم zainalist ثم تم عمل مثال للاستدعاء فى الخليتين باللون الاصفر و يتم التغيير بكتابة الرقم في الخلية الزرقاء ( تم عمل المثال علي الخليتين باللون الاصفر فقط ) National_staff_zina4.zip
  5. المشكلة قد تكون اما لعيب فى الكود و للتأكد من ذلك قم بعمل debug من محرر البيزيك او لعيب فى جهازك او نسخة الاوفيس و للتاكد من ذلك جرب الملف علي جهاز آخر
  6. http://www.officena.net/ib/index.php?showt...88&hl=web+query
  7. شغل الماكرو التالي بعد وضعه فى موديول سيعطيك رسالة بعدد الصفحات ثم يكتبها فى الخلية G11 كما طلبت Sub NumberOfPrintedPages() Worksheets(1).DisplayAutomaticPageBreaks = True HorizBreaks = Worksheets(1).HPageBreaks.Count HPages = HorizBreaks + 1 VertBreaks = Worksheets(1).VPageBreaks.Count VPages = VertBreaks + 1 NumPages = HPages * VPages Worksheets(1).DisplayAutomaticPageBreaks = False MsgBox NumPages Range("G11").Value = NumPages End Sub
  8. يمين المستخدم ActiveCell.Offset(0, 1).Range("A1:C1").Select يسار المستخدم ActiveCell.Offset(0, -3).Range("A1:C1").Select
  9. ربما يكون الملف معد بنسخة اوفيس احدث من الاصدار لديك
  10. هذه قد يكون له اسباب كثيرة - عيب فى نسخة الاوفيس - عيب فى الجهاز الذي تستخدمه كمشكلة فى الذاكرة مثلا و لكي تتاكد خذ نسخة من ملفك و جربها علي جهاز آخر
  11. http://www.officena.net/ib/index.php?showtopic=902&hl=خلفية
  12. Excel uses characters, points, and pixels as units of measurement يستخدم الاكسيل الحروف و النقاط و البيكسيل كوحدات للقياس The width of cells is displayed in characters and pixels عرض الخلايا يظهر عند تغيير العرض بالماوس فى صورة عدد حروف و بين قوسين عدد البيكسيل و ما يظهر كرقم للعرض من القائمة هوعدد الحروف The height of cells is displayed in points and pixels و بالنسبة للارتفاع يظهر فى صورة نقاط و بين قوسين عدد البيكسيل عند تغيير الارتفاع بالماوس و ما يظهر كرقم للعرض من القائمة هوعدد الحروف و لتحويل ذلك الي بوصة اليك جدول التحويل من التعليمات بين النقطة و البيكسيل و البوصة و طبعا البوصة = 2.54 cm
  13. السلام عليكم الاكس ام ال لغة الترميز القابلة للاتساع او في تعريف آخر لغة التوصيف الممتدة Extensible Markup Language xml هي لغة مفتوحة المصدر لتخزين البيانات و هي تعتبر تطوير للغات الاتش تي ام ال و ما تلاها حيث تمتاز بامكانية تعريف طريقة التخزين الخاصة بك و من خلال هذا التعريف او القوانين تتمكن التطبيقات المختلفة من التعرف علي هذه البيانات من خلال هيكل يتم تحديده من قبل منشيء الملف ، و بذلك يتم التغلب علي مشكلة التوافق بين التطبيقات المختلفة و للمزيد حول ال html و ال xml راجع هذه السلسلة http://www.arab-team.com/lesson/html_lesson/index.htm و خاصة المقدمة و الدرس الاخير و الميزة الاساسية هي أن ووجود البيانات في XML يعني أن هذه المعلومات قابلة للنقل كما يمكن مشاركتها وإعادة استخدامها بسهولة بين عديد من التطبيقات المختلفة فمثلا نفس البيانات سيمكن قرائتها بالعديد من التطبيقات سواء علي الويب ام لا و قد انضم الاوفيس اليها مؤخرا الي التطبيقات التي تدعم التعامل مع هذه اللغة و الطريقة فى تخزين البيانات و لذلك ظهرت هذه القائمة فى الاكسيل و من خلال هذه القائمة فى الاكسيل ، تتمكن من التعامل مع بيانات مخزنة بالفعل فى هذه الصيغة يعني لو لا يوجد بيانات مخزنة بالفعل بهذه الصيغة فلن تحتاج هذا الامر فى الاكسيل
  14. لكي يعمل لابد من وجود بيانات لكي يحدث لها refresh قم بعمل Pivot table او web query مثلا و في خلال التقرير الناتج اذا وقفت فيه ستجد الامر يعمل لتحديث البيانات من مصدرها أي باختصار لابد من وجود بيانات و ناتج لكي يمكنك تحديث الناتج او التحليل بناء علي التغييرات التي حدثت فى البيانات الاصلية
  15. نعم الاوامر الغير فاعلة اغلبها لها علاقة بالنشر علي الويب و لن تعمل قبل ان تقوم بالنشر
  16. السلام عليكم جميل انك فتحت الموضوع ، فلم انتبه له قبلا و قد جربته و قرأت قليلا عنه فى موقع ميكروسوفت بعد ان قرأت سؤالك ان هذه الميزة جديدة فى اكسيل 2003 و لم تكن موجودة قبلا و بها بعض الخصائص المشتركة مع استخدامات اوامر تحليل مثيلة مثل ال autofilter و لكن .... تعال ندخل بعض البيانات فى ورقة عمل اكسيل مثلا Mohamed و تحته 1 3 7 3 3 7 او اي بيانات تراها ثم نختار data list create new list و نختار الخلايا السابقة و نختار مربع الخيار الدال علي ان البيانات السالفة لها خلية عنوان و هي اول خلية و ليست كلها بيانات - يعني اول صف بها خلية العنوان . ستجد ان البيانات اصبحت فى وضع يشبه ال autofilter كما تعودنا عليه و يمكن مثلا عمل فلتر لها من المربع الاعلي كما ستلاحظ شيء جديد و هو ظهور نجمة زرقاء اسفل البيانات و هي تدل علي ان ما ستدخله فى هذا السجل ، سيضاف اليا الي قائمة البيانات و هي تضيف الي مجال البيانات حتي فى وضع الفلتر و هذا رائع و كلما اضفت سجلا يتم استيعابه و تنتقل النجمة الي السجل التالي كما انه بالضغط علي Toogle row totals سنظهر او نخفي الاجمالي و هذا لم يكن موجود فى ال autofilter و لكن كان عليك عمل subtotals يدويا اما الان فالموضوع آلي و ستوعب فوريا ما تضيف من سجلات من خلال النجمة و هذا رائع كما انك من القائمة المنسدلة يمكنك عمل ترتيب كما كان فى ال autofilter كما يمكنك عمل اكثر من قائمة فى ورقة العمل كما يمكنك التصفية من القائمة فاذا اخترت 3 او 7 سيظهر فقط ما يناظرها مع تحديث المجموع باختصار هي تطوير لل Autofilter مع اضافة المجموع كما ان القائمة يمكن نشرها علي الويب ، اذا كان لديك امكانيات ال microsoft share point لتبادل المعلومات و نشرها و تحديثها الي الويب من خلال هذه الخاصية و لكن يشترط ان يكون لديك موقع انترنت يدعم ال ٍShare point
  17. آختي الكريمة يرجي قراءة المواضيع المشار اليها مثالك مناظر تماما للمثال الاول فى الاكسيل هنا http://www.officena.net/ib/index.php?showtopic=920
  18. راحعي الوصلات المشار اليها هنا http://www.officena.net/ib/index.php?showt...indpost&p=41646 و باختصار للتجربة اولا تأكدي من تفعيل الماكرو Tools options macro security loaw or medium ثانيا اضغطي ALT + F11 سيفتح محرر البيزيك اختاري ادراج موديول جديد insert module ابدأي اضافة كلمة function mm ثم enter ستجديها تحولت الي Function mm() end function و بين السطرين يمكن كتابة تعليمات الدالة و لنقل مثلا انت تريدين دالة تضرب الرقم فى 3 ثم تضيف 1 اذا لنعدل الدالة لتتلقي متغير ثم نكتب الدالة Function mm(mynumber) mm = mynumber * 3 + 1 End Function و الان لنغلق المحرر و نعود لورقة العمل في الاكسيل و لنستدعي الدالة من زر fx user defined functions و بكتابة الدالة مباشرة فى خلية مشيرة الي خلي أخري =mm(C8) مرفق المثال function.zip
  19. هل عند الطباعة تختار الطابعة ال A3 من الطابعات المحملة علي الجهاز ؟؟ اذا كان كذلك فيبدو ان الموضوع يصعب تحقيقه من هذا المنطلق
  20. أخي احمد خدها خطوة خطوة اولا افتح آخر ملف ارفقته جرب الكتابة فيه ، ستجد ما تكتب يتعدل تلقائيا ثانيا افتح ملفك الاصلي مع ابقاء الملف hamza2 مفتوحا ثم اختار الخلايا فى عمود واحد فى ملفك من اعلي الي اسفل ثم شغل الماكرو من قائمة Tools Macro او من ALT+F8 ستجد بياناتك تتعدل فاذا كان ذلك صحيحا فراجع بعد ذلك كيفية نقل الكود الي ملفك من الشرح السابق او ايضا من هنا http://www.officena.net/ib/index.php?showtopic=3069
  21. السلام عليكم الطريق الطبيعي الاسهل لذلك هو الي الوورد و ليس من الوورد اي ان البيانات موجودة فى الاكسيل ، الاكسيس ، او الوورد ثم يتم انشاء التقربر فى الوورد http://www.officena.net/ib/index.php?showtopic=148 و اذا كانت البيانات من الضروري استخراجها الي الاكسيل فيمكن تخزينها فى قاعدة بيانات اكسيس http://www.officena.net/ib/index.php?showtopic=3760 او طبعا الاسهل و الاسهل من اكسيل الي اكسيل http://www.officena.net/ib/index.php?showtopic=920 http://www.officena.net/ib/index.php?showtopic=34
  22. جزاك الله خيرا اخي M.hindawi علي التعديل و يسعدني جدا التعديل فى ما أضفت خصوصا ان كان للافضل كما حدث هنا :( فسبب تواجدنا معا فى المنتدي ان نستفيد من معرفة بعضنا و ان نكمل جميعا في اضافة ما نعرفه حتي نستفيد جميعا بالاضافة الي صاحب السؤال :d و أيضا التعميم الذي اضفته عملي جدا فالان هو لا يحتاج للاشارة الي الدالة او ان يشغل ماكرو (y) ملاحظة بسيطة : في الروتين الفرعي الخاصي بحدث عند التغيير لخلايا الملف اعتقد انه يمكننا حذف سطر changesearch (a) و الاكتفاء ب Target = changesearch(a) مباشرة كما فى الملف المرفق ام تري له ضرورة معينة ؟ أخي أحمد سعيد فقط اكتب فى أي مكان فى الملف و سيتم التعديل مباشرة فى ملف الاخ M.hindawi و هذا سيفيدك عند كتابة اي اسم جديد و يمكنك نقل الوحدات النمطية الي ملف بياناتك فى نفس اماكنها لاستخدامها فى ملف آخر فالدالة الرئيسية مكتوبة فى موديول و الاستدعاء العام للتنفيذ مكتوب فى مكان كتابة الموديول الخاص بالملف و لتنفيذ ذلك افتح ملفك مع الملف الحالي اضغط ALT + F11 سيظهر محرر الكود و به الملفان المفتوحان اختر الموديول الموجود فى الملف و اسحبه الي ملفك انقر علي workbook فى ملف Hamza ستجد كود قم بنسخه ثم انقر مرتين علي كلمة workbook في ملفك ثم قم بلصق نفس الكود و بذلك يكون ملفك مجهزا لاستبدال اي اسم تكتبه اليا و اعتقد انك قد تريد انك تريد تغيير بعض الاسماء الموجودة فى ملفك اصلا و التي لن تتأثر بما سبق الا عند اعادة كتابتها او تحريرها لذا ستجد فى الملف المرفق هنا الخيار الاخر و هو ان تختار بعد الخلايا المكتوبة بالفعل علي ان يكون الاختيار من اعلي الي اسفل ثم تضغط ALT+F8 ليظهر لك الماكرو الجديد الذي بتشغيله يتم تغيير الخلايا المكتوبة بالفعل و ايضا يمكنك نسخ الماكرو الي اي ملف او هنا لانك فى الغالب ستسخدمه مرة واحدة فقط يمكنك فتح الملف المرفق مع اي ملف و سيعمل الماكرو باذن الله دون نقله شرط ان يكون المفان مفتوحان آنيا Sub changeletters() Dim a As String, rowcount As Integer rowcount = Selection.Rows.Count For i = 1 To rowcount a = Selection.Cells(i).Value Selection.Cells(i).Value = changesearch(a) Next i End Sub و الدالة كما سبق فى ملف الاخ هنداوي Public Function changesearch(Mytxt) As String Dim tempstr As String tempstr = Trim(Mytxt) If tempstr Like "*[أاآإ]*" Then For b = 1 To Len(tempstr) If Mid(tempstr, b, 1) = "ا" Or Mid(tempstr, b, 1) = "إ" Or Mid(tempstr, b, 1) = "أ" Or Mid(tempstr, b, 1) = "آ" Then Mid(tempstr, b, 1) = "ا" Else End If Next End If If tempstr Like "*[ةه]*" Then For b = 1 To Len(tempstr) If Mid(tempstr, b, 1) = "ة" Or Mid(tempstr, b, 1) = "ه" Then Mid(tempstr, b, 1) = "ه" Else End If Next End If If tempstr Like "*[ىي]*" Then For b = 1 To Len(tempstr) If Mid(tempstr, b, 1) = "ى" Or Mid(tempstr, b, 1) = "ي" Then Mid(tempstr, b, 1) = "ي" Else End If Next End If changesearch = tempstr End Function و التعميم لتفيذ الدالة علي اي خلية فى الملف عند كتابتها او تحريرها - اي تغيير محتوياتها Private Sub Workbook_SheetChange(ByVal Sh As Object, ByVal Target As Range) Dim a As String a = Cells(Target.Row, Target.Column).Text Target = changesearch(a) End Sub مرفق الملف و به الاثنان التعميم عند تغير قيمة اي خلية و الماكرو لتعديل القيم الموجودة اصلا hamza2.zip
  23. يا اخي راجع الجملة السابقة تاكد من تفعيل الماكرو ( مستوي الامان قبل فتح الملف ) لكي تعمل الدوال التي اعدها المستخدم User defined functions لابد من مراجعة مستوي الامان للماكرو و ذلك من Tools Macro security و اختار Medium ليعمل مباشرة او Medium ليخيرك و بعد ذلك افتح الملف و بالتالي ستعمل الدالة و بكتابة اسم فى العمود الاول سينتج الاسم الجديد فى العمود الثاني و يمكنك سحب المعادلة لاي عدد من الخلايا يعني هذه دالة تعمل مثل دالة sum مثلا و لكن لابد من السماح بعمل الماكرو كما سبق
  24. الابسط اذا كنت تريد مجرد الا يظهر الصفر ان تتحكم فى الخاصية من قائمة tools options و الغي اختيار Zero values حل اخر طبعا يمكنك استخدام معادلة IF و يوجد عليها اكثر من مثال فى الارشيف و مرفق مثال مبسط لجمع ثلاثة خلايا صفراء اللون فى خلية صفراء اللون و لا يظهر المجموع اذا كان = صفر و صيغة المعادلة كالتالي =IF(SUM(D6:F6)<>0,SUM(D6:F6),"") sum.zip
  25. انقر بالزر الايمن علي المربع و اختار تنسيق عنصر التحكم format control و من تبويب خصائص properties لا تختار مربع الطباعة ، فلا ينطبع و من تبويب تحكم control اختار الخلية المراد ربطها و تم التطبيق علي المربع الموجود فى الخلية D4 فى مثالك فقط و لكن هنا الناتج يظهر فى صورة True و false و ليس 1 و 0 و يمكنك التعامل معه لاحقا بمعادلة if مثلا checkbox.zip
×
×
  • اضف...

Important Information