اذهب الي المحتوي
أوفيسنا
بحث مخصص من جوجل فى أوفيسنا
Custom Search

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

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

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

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

  • Days Won

    37

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

  1. ===== أمثلة من مواضيع مختلفة تم تطبيق ذلك فيها http://www.officena.net/ib/index.php?showtopic=3116 http://www.officena.net/ib/index.php?showtopic=73 http://www.officena.net/ib/index.php?showtopic=72 http://www.officena.net/ib/index.php?showtopic=1558 ====
  2. بعد اعداد ماكرو معين للتطبيق علي خلية في أحيان كثيرة نحتاج علي تطبيق الماكرو علي عدة أسطر فى نفس الخلية و لاختيار مجموعة الخلاية المكلوبة و تطبيق نفس الماكرو عليها نستخدم الكود التالي: و ما يلي هو عدد 2 كود مع شرح لكل سطر الاول لطريقة بسيطة للتطبيق و الثاني ، مع بعض الاضافات ن مثل الغاء ظهور الاحداث علي الشاشة و عمل عداد يظهر فى شريط الحالية ليخبرنا بالتقدم فى التطبيق مرفق ملف به الكودان مع الشرح علي أن تضع الكود المطلوب تكراره فى المكان المحدد الشرح موجود مع الماكرو اضغط ALT+F11 ---- الاكواد : Sub myloop1() 'تعريف متغير من أجل عدد الصفوف Dim MyRow As Long 'عد عدد الصفوف المختارة MyRow = selection.Rows.Count 'اختيار الخلية الاولي فى الخلايا المختارة ActiveCell.Select 'بدء حلقة تكرارية للمرور علي جميع الصفوف For i = 1 To MyRow 'ضع الكود الذي تريد تكراره هنــــــــــــا 'اختيار الخلية التي تلي الخلية الحالية - أسفلها ActiveCell.Offset(1, 0).Activate 'نهو الحلقة التكرارية للمرور علي جميع الصفوف Next i End Sub و الثاني Sub myloop2() ' by Mohamed Taher ' www.officena.net 'الغاء تفعيل اظهار ما يحدث علي الشاشة Application.ScreenUpdating = False 'تعريف متغيران الاول لعدد الصفوف و الثاني لتثبيت العدد من أجل العداد Dim MyRow As Long, origraw As Long ' 'عد عدد الصفوف المختارة MyRow = selection.Rows.Count 'نقل العدد الي المتغير الخاص بتثبيت العدد origraw = MyRow 'اختيار الخلية الاولي فى الخلايا المختارة ActiveCell.Select 'بدء حلقة تكرارية للمرور علي جميع الصفوف For i = 1 To MyRow 'ضع الكود الذي تريد تكراره هنــــــــــــا 'اظهار العداد فى شريط الحالة Application.StatusBar = "Calculating ...." & _ Format(i / origraw, "0.0%") & " Please Wait......." 'اختيار الخلية التي تلي الخلية الحالية - أسفلها ActiveCell.Offset(1, 0).Activate 'نهو الحلقة التكرارية للمرور علي جميع الصفوف Next i 'تمكين تفعيل اظهار ما يحدث علي الشاشة Application.ScreenUpdating = True 'الغاء ما كتب فى شريط الحالة أسفل الشاشة Application.StatusBar = False End Sub مثال لعمل حلقة علي كتابة رقم فى الخلايا المختارة اختار الخلايامن أاعلي الي اسفل ثم شغل الماكرو LOOP.rar
  3. http://www.officena.net/ib/index.php?showtopic=3138&st=0&
  4. بالنسبة لتعقيب الاخ جيلاني الطريقة عامة و تصلح لجميع الموديولات حتي مرحلة النقل أما تطبيق الدالة فى الملف و المتغيرات فيه فتختلف من دالة الي أخري بحسب كود الدالة راجع ملف الاكسيل الاصلي الذي به المثال لتعرف طريقة تطبيق دالة أبو حمود مع تحياتي
  5. جزاك الله خيرا علي هذا الشرح الجميل و اضافة بسيطة لنقل الموديولات ( الوحدات النمطية ) المختلفة من ملف الي آخر يمكن تصديرها الي ملف bas ثن استيرادها كما أشار الأخ حسام فى شرحه أو يمكن فتح الملف الموجود فى المشاركة التي أشار اليها الأخ حسام ( الملف الذي يحوي الوحدات النمطية ) http://www.officena.net/ib/index.php?showtopic=33 و فتح الملف الجديد المطلوب نقل الموديول اليه و من محرر أكواد الفيجوال بيزيك ، الذي نصل اليه بضغط ALT+F11 كما أوضح الأخ حسام نختار الموديول المطلوب من مجلد الmodules فى ملف المصدر و نسحبه بالماوس الي الملف الجديد
  6. و هذا شرح مميز للأخ حسام نور عن كيفية تطبيق هذه الدوال فى ملفك ( بالصور) http://www.officena.net/ib/index.php?showtopic=3069
  7. برضه حل مؤقت يمكن التحكم فى مقاس الصفحة بالكود عن طريق Worksheets("Sheet1").PageSetup.PaperSize = xlPaperLegal كما فى ملف التعليمات و يمكن استبدال مقاس ال legal بعدة مقاسات : XlPaperSize can be one of these XlPaperSize constants. xlPaper11x17. 11 in. x 17 in. xlPaperA4. A4 (210 mm x 297 mm) xlPaperA5. A5 (148 mm x 210 mm) xlPaperB5. A5 (148 mm x 210 mm) xlPaperDsheet. D size sheet xlPaperEnvelope11. Envelope #11 (4-1/2 in. x 10-3/8 in.) xlPaperEnvelope14. Envelope #14 (5 in. x 11-1/2 in.) xlPaperEnvelopeB4. Envelope B4 (250 mm x 353 mm) xlPaperEnvelopeB6. Envelope B6 (176 mm x 125 mm) xlPaperEnvelopeC4. Envelope C4 (229 mm x 324 mm) xlPaperEnvelopeC6. Envelope C6 (114 mm x 162 mm) xlPaperEnvelopeDL. Envelope DL (110 mm x 220 mm) xlPaperEnvelopeMonarch. Envelope Monarch (3-7/8 in. x 7-1/2 in.) xlPaperEsheet. E size sheet xlPaperFanfoldLegalGerman. German Legal Fanfold (8-1/2 in. x 13 in.) xlPaperFanfoldUS. U.S. Standard Fanfold (14-7/8 in. x 11 in.) xlPaperLedger. Ledger (17 in. x 11 in.) xlPaperLetter. Letter (8-1/2 in. x 11 in.) xlPaperNote. Note (8-1/2 in. x 11 in.) xlPaperStatement. Statement (5-1/2 in. x 8-1/2 in.) xlPaperUser. User-defined xlPaper10x14. 10 in. x 14 in. xlPaperA3. A3 (297 mm x 420 mm) xlPaperA4Small. A4 Small (210 mm x 297 mm) xlPaperB4. B4 (250 mm x 354 mm) xlPaperCsheet. C size sheet xlPaperEnvelope10. Envelope #10 (4-1/8 in. x 9-1/2 in.) xlPaperEnvelope12. Envelope #12 (4-1/2 in. x 11 in.) xlPaperEnvelope9. Envelope #9 (3-7/8 in. x 8-7/8 in.) xlPaperEnvelopeB5. Envelope B5 (176 mm x 250 mm) xlPaperEnvelopeC3. Envelope C3 (324 mm x 458 mm) xlPaperEnvelopeC5. Envelope C5 (162 mm x 229 mm) xlPaperEnvelopeC65. Envelope C65 (114 mm x 229 mm) xlPaperEnvelopeItaly. Envelope (110 mm x 230 mm) xlPaperEnvelopePersonal. Envelope (3-5/8 in. x 6-1/2 in.) xlPaperExecutive. Executive (7-1/2 in. x 10-1/2 in.) xlPaperFanfoldStdGerman. German Legal Fanfold (8-1/2 in. x 13 in.) xlPaperFolio. Folio (8-1/2 in. x 13 in.) xlPaperLegal. Legal (8-1/2 in. x 14 in.) xlPaperLetterSmall. Letter Small (8-1/2 in. x 11 in.) xlPaperQuarto. Quarto (215 mm x 275 mm) xlPaperTabloid. Tabloid (11 in. x 17 in.) Note Some printers may not support all of these paper sizes مع ملاحظة هامة جدا بانه ليست جميع الطابعات تدعم جميع المقاسات مثال Sub Macro1() With ActiveSheet.PageSetup .PrintTitleRows = "" .PrintTitleColumns = "" End With ActiveSheet.PageSetup.PrintArea = "" With ActiveSheet.PageSetup .PaperSize = xlPaperA5 End With End Sub
  8. لا أخفيك سرا أني استغربت من عدم وجود خيار Custom أي تختار المقاس الذي تريد و لكن لاحظت أن المقاسات المتاحة للاختيار تختلف باختلاف نوع الطابعة المحملة علي الجهاز و يبجو أن العامل المؤثر في ذلك هو ال Driver الخاص بالطابعة و ليس الاكسيل لا تبدو لي هذه الاجابة مرضية ، و لكن وضعتها مؤقتا الي حين اتضاح حل آخر
  9. ـم التعديل فى الملف المرفق علي ملفك لتعمل المعادلة علي كل السجلات اختار الخلايا الصفراء التي بها المجموع من أعلي الي أسفل ثم شغل الماكرو مع تحياتي ghost-EquationItems.rar
  10. حسب ما فهمت من شرحك الأخير الكود لن يتدخل فى ناتج معادلة التقييم و انما يتدخل فى عدد الطلقات لتغيير مجموعها فقط قف فى الخلية التي بها مجموع الطلقات و شغل الماكرو التالي Sub koko() Dim kk, m1, m2, m3, m4 As Integer m1 = ActiveCell.Offset(0, -4).Value m2 = ActiveCell.Offset(0, -3).Value m3 = ActiveCell.Offset(0, -2).Value m4 = ActiveCell.Offset(0, -1).Value kk = m1 + m2 + m3 + m4 If kk > 80 Then Dim kkk As Integer kkk = kk - 80 Select Case kkk Case Is < m1 ActiveCell.Offset(0, -4).Value = (m1 - kkk) Case Is < (m1 + m2) ActiveCell.Offset(0, -4).Value = 0 ActiveCell.Offset(0, -3).Value = (m1 + m2 - kkk) Case Is < (m1 + m2 + m3) ActiveCell.Offset(0, -4).Value = 0 ActiveCell.Offset(0, -3).Value = 0 ActiveCell.Offset(0, -2).Value = (m1 + m2 + m3 - kkk) Case Is < (m1 + m2 + m3 + m4) ActiveCell.Offset(0, -4).Value = 0 ActiveCell.Offset(0, -3).Value = 0 ActiveCell.Offset(0, -2).Value = 0 ActiveCell.Offset(0, -1).Value = (m1 + m2 + m3 + m4 - kkk) End Select End If End Sub
  11. http://www.officena.net/ib/index.php?showt...=1877&hl=الرصيد http://www.officena.net/ib/index.php?showt...=1722&hl=الرصيد http://www.officena.net/ib/index.php?showt...c=893&hl=الرصيد http://www.officena.net/ib/index.php?showt...=1130&hl=الرصيد http://www.officena.net/ib/index.php?showt...=1291&hl=الرصيد
  12. تم تعديل الكود فى هذه المشاركة فى مشاركة لاحقة و تم ارفاق ملف جديد
  13. أعتقد أن ما تشير اليه ليس من تطبيقات الاوفيس جرب منتدي شرح البرامج فى بوابة العرب www.arabsgate.com
  14. السلام عليكم مثال جميل و مفيد جزاك الله خيرا لاحظت أنه لكي يعمل بصورة أفضل ، يجب أن تكون خاصة autoresize للنموذج غير مفعلة و الا فانه مع التكبير و التصغير لعدة مرات متتالية تحدث مشكلة فى العرض ( مرات كثيرة ) أيضا يرجي اضافة التعامل مع صندوق الخيارات لكي يكون عاما option group أو ال Frame مرفق المثال الذي جربت عليه مع تحياتي و شكري (y) formResize-mohanad.rar
  15. أخي جمال ، أقصد علي القاعدة و ليس علي الكود أخي وينماستر بالنسبة لموضوع الحماية ، فالاكسيس مازال الكود به محمي تماما بالتحويل الي mde ( و ليس كما هو حال باقي المكونات ) و التي مازال يمكن حمايتها ضد ( أغلب المستخدمين ) و ليس الكل بالطبع أما الكود ففي الاكسيس حتي الان هو فى أمان تام علي عكس الفيجوال بيزيك ، الذي تخصص الكثيرين فى فك حمايت ال exe , و اعادته للشفرة المصدرية ، سواء باستخدام ال decompilers أو استخدام الاسمبلي و قد صار نقاش فى الفريق العربي سابقا بين عدد من أقوي المشاركين فى قسم البيزيك هناك ( فى أقصي أوقات مجده ) و بين الأخ خالد الصالح ، و استطاع فك كل ما أعدوه من حماية http://www.arabteam2000-forum.com/index.ph...=21697&hl=حماية
  16. بالنسبة لاستيراد الاستعلامات ، فعن نفسي اسمح لي أن اخالفك الرأي ، في أنها ليست من الاشياء التي نحرص علي حمايتها فى البرنامج ، و ربما تأخر الردود هو بسبب وجود نفس الرأي لدي الأخوة . ، و لكن لم يذكر ذلك صراحة لانه فى النهاية يندرج تحت الرأي الشخصي و ليس قاعدة معترف بها . فمع الاستخدام المتقد للاكسيس ، ستجد أنها ستستبدل بجمل ال SQL داخل كود ال VBA ، كما ذكر الأخوة بل و أن الاس كيو ال داخل الكود ، سيقوم بمهام لا تستطيع الوصول اليها بالاستعلام العادي ، و لا توجد فى رأيي مشكلة كبيرة لدي العديد من المبرمجين سواء كانت الاستعلامات العادية محمية أم لا و لحماية أي شيء من الاستيراد حماية ظاهرية ، ضع كلمة سر علي القاعدة ، فلن يتم الاستيراد الا اذا اكتشفت كلمة السر باحد برامج كشف كلمة السر و بالنسبة للاخ عبد الله ، هو بخير ، و قد رأيته أمس الاول ، و هو حاليا مشغول بسب قرب الامتحانات ، و هذا حال كثير من الاخوة مع تحياتي
  17. السلام عليكم اذا كان مقصود كتابة الكود مباشرة ، فى المنتدي فانت بالفعل استخدمت الطريقة السليمة فى عدة مشاركات و لكن ما يظهر من حروف غير مفهومة ، هو نتيجة أن اعدادت اللغة فى جهازك تحتاج الي تغيير و ما يظهر من حروف غير مفهومة هو استبدال للاحرف العربية فاذا كان الكود لا يحوي العربية ، فلن تظهر المشكلة أو غير اعادادات اللغة من لوحة التحكم و لكتابة الاكواد بصفة عامة نعلم الكود بالكامل ثم نضغط علي زر ال # و طبعا بعد اختيار تعقيب و ليس الرد السريع
  18. تم اضافة التعديل الخاص باوفيس 2003 الي الموضوع الاصلي مع تحياتي
  19. , بالنسبة للتطبيق علي الاوفيس 2003 فسيكون هناك تغييران الاول هو ضغط ALT عند اختيار درجة الامان فيضاف علامة ال % و أيضا وجود خيار جديد و هو Very High و لكن لاحظ أنك باختيار High or Very High ستمنع عمل ماكرو بدء التشغيل و بالتالي لن يتم التحويل اليا الي منخفض و يمكنك التحكم بالطريقة التي تناسبك macroSecurity.rar
  20. السلام عليكم الموضوع السابق التحكم فى مستوي أمان الماكروهات http://www.officena.net/ib/index.php?showtopic=25 بالنسبة لاوفيس 2003 يجب تغيير الخطوة الاخيرة اختيار H,M,L لا يكفي و انما يجب أن يكون مصحوبا يضغط ALT ايضا هناك حرف اضافي و هو V very high مثلا مثلاً "%H" بدلا من "H" مع تحياتي
  21. عند تعيين قيمة المتغير فى الكود الموجود لديك قم بالاختبار If IsNull(Me.textBox1.Value) Then Myvar = "" Else Myvar = Me.textBox1.Value End If حيث Myvar هو المتغير و textBox1 هو اسم مربع النص او استبدلها بصفر كما أشار الاخ وينماستر
  22. التأكد من عدم ادخال قيمة لنفس السجل فى نفس التاريخ, باستخدام Dcount http://www.officena.net/ib/index.php?showtopic=1256 به مثال التأكد من أن القيمة سبق تسجيلها, مع استرجاع رقم التسجيل http://www.officena.net/ib/index.php?showtopic=1157 به 3 أمثلة عدم تكرار القيمه لنفس السجل بنفس التاريخ http://www.officena.net/ib/index.php?showtopic=1724 كود عدم تكرار السجلات, كود عدم تكرار السجلات ( شرح للموضوع ) http://www.officena.net/ib/index.php?showtopic=534&hl= منع تكرار الأسم في نفس التاريخ http://www.officena.net/ib/index.php?showtopic=2722 به مثال
  23. موضوع ذو صلة http://www.officena.net/ib/index.php?showtopic=2834
  24. مثلا ، لنفرض وجود تسمية مكتوب فيها أن التصميم بواسطة محمد طاهر فسيمكن تعديلها بعد التحويل الي mde و لكن عند اعادة تحميل الفورم ، سيتم الاختبار و الاغلاق Private Sub Form_Load() If Me.Label0.Caption <> "Design By Mohamed Taher" Then MsgBox "Ilegal Modification, Sorry You Can not continue " DoCmd.Quit End If End Sub
  25. بالنسبة للمثال الخاص بالارفاق Link Tables فأعتقد انه للأخ أحمد الحربي أما المطلوب ، فاذا كان تحديث الجديد فقط فنحن هنا نتحدث عن مفهوم ال Replication و هو تكنيك جاهز فى الاكسيس يعتمد علي وجود عدة قواعد و مطلوب تحديث التصميم و / أو البيانات فيما بينها و يمكن تنفيذها من قائمة أدوات أو باستخدام ال Briefcase الخاصة بالويندوز أو برمجيا أو من خلال ال Web server replication و الطريقة التقليدية هي من قائمة أدوات ، و هي متاحة منذ اصدارات سابقة و للمزيد يرجي مراجعة التعليمات ـ، و أعتذر عن عدم الاستفاضة حيث لم أجربها فعليا و لكن ال replication هي ما تبحث عنه
×
×
  • اضف...

Important Information