نجوم المشاركات
Popular Content
Showing content with the highest reputation on 10/14/15 in مشاركات
-
السلام عليكم ورحمة الله وبركاته إخواني وأحبابي في الله أحياناً ما تحدث بعض المشاكل عند التعامل مع النوافذ الموجودة في محرر الأكواد .. كأن تختفي نافذة أو تتحرك نافذة من مكانها الذي تعودنا عليه ، وعند محاولة إرجاعها إلى مكانها لا نستطيع .. أنا مؤمن بمبدأ : بدلاً من تضييع الوقت في محاولة ترقيع الثوب المهلهل .. عليك بشراء ثوب جديد .. (وفر وقتك وفلوسك واحصل على نتيجة أفضل) أقصد من كلامي بدلاً من الخوض في تفاصيل معرفة حل المشكلة وقد يضيع الوقت في محاولة الحل وفي النهاية قد لا تصل لنتيجة مرضية أو يمكن أن تصل لنتيجة ويحدث خطأ في نقطة أخرى المهم موضوعنا عن كيفية إعادة ضبط إعدادات محرر الأكواد .. 1- اقفل برنامج الإكسيل (أو الأوفيس بشكل عام) 2- روح لقايمة Start في الويندوز ثم الأمر Run واكتب الأمر regedit للدخول إلى ريجستري الويندوز 3- روح لهذا المسار HKEY_CURRENT_USER\Software\Microsoft\VBA\6.0\Common\ بالنسبة للرقم 6 قد يكون مختلف حسب نسخة الويندو سواء كانت 32 بت ستجدها رقم 6.0 أما 64 بت فستجدها 7.1 أو 7.0 4- المهم ادخل على المجلد المسمى Common ، اعمل عليه كليك يمين ثم Delete (جمد قلبك ومتخافش .. لو حصل حاجة أنا مش مسئول) هتخرج لك رسالة تأكد الحذف .. انقر نعم يا بطل ومتخافش ..الويندوز هيسقط بس 5- افتح برنامج الإكسيل .. من لوحة المفاتيح اضغط Alt + F11 لتجد نسخة جديدة من محرر الأكواد (محرر الأكواد في ثوبه الجديد) كأنك لسه منصب أوفيس جديد ****************************** يمكنك إعادة ضبط الإعدادات التي تريدها .. الإعدادات التي أقوم بضبطها بشكل شخصي هي كالتالي : ** بعمل Maximize للنافذة اللي قدامي عشان تكون الصورة أوضح ** من Tools ثم Options أعلم علامة صح على الخيار Require Variable Declaration عشان أضيف السطر الخاص بإجبار المبرمج على الإعلان عن المتغيرات .. السطر دا بيكون شكله كالتالي Option Explicit ** من نفس النافذة أشيل علامة الصح من أول خيار Auto syntax Check عشان وأنا بكتب وغلطت متظهرش رسالة تنبيه بالخطأ ( واحد هيقولي طيب دي خاصية مفيدة .. ماشي كويس بس بتعطلني عن كتابة أسطر الكود ..يكفي أنني أرى السطر باللون الأحمر بعد الانتهاء منه .. هذا تنبيه كافي ) ** من نفس النافذة بدخل على التبويب المسمى Editor Format ثم أغير حجم الخط Size عشان أشوف أسطر الكود بشكل واضح ، ثم أوك في النهاية ** على يمين شريط الأدوات بعمل كليك يمين في مكان فارغ وبختار شريط Edit وبسحب الشريط وأضعه جنب شريط الأدوات القياسي (الموجود بالفعل) وفي نهاية المطاف .. أرجو أن يكون الموضوع (رغم بساطته) أن يكون مفيد لمن يريد التعامل مع محرر الأكواد) تقبلوا وافر تقديري وحبي واحترامي4 points
-
بسم الله ما شاء الله تبارك الرحمن يبدو أن المنتدى قد اكتسب محترف جديد .. واصل أخي الحبيب ياسر بلا فواصل وعلى رأي الصقر (حسام عيسى) إنت بتشتغلنا وتقول مبتديء (عيب عليك الكلام ده) الحمد لله أصبحت الحركة الياسرية في المنتدى هي المهيمنة للآن ياسر فتحي البنا .. ياسر الشيخ .. ياسر خليل أبو البراء .. ياسر العربي أبو أسيل .. والبقية تأتي تقبل تحياتي4 points
-
أخي الحبيب أبو حنين إليك رابط الموضوع الجديد التالي وإن شاء الله يفيدك من هنا3 points
-
أبدأ بحمد الله أولا وأخيرا على ما انعم ووفق وأصلي واسلم على الرحمة المهداة والسراج المنير نبينا محمد وعلى آله وصحبه وسلم ... وبعد كل عام وأنتم بخير وأعاد الله علينا أيامه الكريمة بالخير واليمن والبركات في موضوع اخي الكريم ابو عبدالرحمن وطلبه لواجهة برنامج لتسجيل الأطفال لرياض الاطفال او الروضة علي هذا الرابط فضلت ان تكون في مشاركة منفصلة لتعميم الفائدة ان شاء الله تعالى بشكل بسيط وجذاب صدقة جارية لفارس من فرسان منتدانا أوفيسنا أخي ومعلمنا عماد الحسامي رحمة الله عليه ورحم جميع المسلمين وغفر لهم الأحياء منهم والأموات حتي لا أطيل عليكم شرح مبسط للبرنامج أترككم لتجربة البرنامج في المرفقات وارحب بمشاركتكم في اجراء اية تعديلات وفقنا الله واياكم للصالحات مع تحياتي // ضاحي الغريب KG_Dahy.rar الان الاصدار الثاني علي الرابط التالي اضغط هنا2 points
-
بسم الله الرحمن الرحيم اليكم نموذج لانتهاء صلاحية الملف عندما يكون التاريخ الحالي اكبر من التاريخ الموجود في الخلية A1 يقوم البرنامج بعمل Application.Visible = False ويعرض لنا فورم يفيد انتهاء المدة وتاكيد كلمة المرور وعند كتابة كلمة المرور خطأ لك5 محاولات وبعدها يغلق البرنامج اما ان كانت صحيحة وتحقق الشرط If TextBox1.Value = "aseel" Then Me.Hide Application.Visible = True كلمة المرور aseel طبعا واكيد ايقاف الماكرو هيفتح الملف عادي ونضيع الحماية نعمل ايه بقي نيحي في الحدث Private Sub Workbook_Open() Sheet1.Visible = xlSheetVeryHidden End Sub ونخفي الشيت عشان ميشفشي شغلنا رخامة بقي ولما يتحقق الحدث If TextBox1.Value = "aseel" Then 'Unload Me Me.Hide Application.Visible = True 'نحط هنا كود اظهار الشيت مرة اخرى sheet1.Visible = xlSheetVisible ياريت اكون وصلت المعلومة صح واي ملحوظة او خطأ انا موجود انتهاء صلاحية الملف.rar2 points
-
السلام عليكم ورحمة الله وبركاته الدرس التاسع 9-MsgBox الرساله وسوف نتناول فى هذه الدرس الاتى شكل السطر الخاص بالرساله الاسماء الخاصه بالازرار والارقام التى يمكن استبدال الاسم بها اضافة سطر فاصل فى الرساله كيفية استخدام الجمل الشرطيه if مع MsgBox كيفية استخدام Select Case مع MsgBox شكل السطر الخاص بالرساله نحتاج الى استخدام الرسائل داخل الاكواد لتذكرينا بشئ معين او تنبيهنا بشئ معين كهذا ولمعرفة كيفية عمل ذلك دعونا نستعرض السطر الخاص بالكود الخاص بالرساله MsgBox([النص], [الازرار], [العنوان]) النص-----هنا يتم كتابة نص الرساله التى سوف تظهر لك الازرار---اختيار الازرار التى تظهر فى الرسالهyes, no, cancelويوجد ايضا ازرار اخرى العنوان---عنوان الرساله راجع الصوره الاتيه ولتنفيذ رساله بهذا الشكل نقوم بكتابة الكود الاتى Sub msgbox_() MsgBox "لاتنسونى بصالح الدعاء", vbYesNoCancel, "اللهم تقبل من صالح الاعمال" End Sub وفى هذا الكود قلنا ان محتوى النص -- لاتنسونى بصالح الدعاء تكون الازرار--الموجوده فيها yes-no-cancel يكون العنوان-- اللهم تقبل من صالح الاعمال ولو افترضنا اننا نريد اظهار الزر yes فقط نقوم باستبدال السطر الاتى vbYesNoCancel ب السطر الاتى vbYes اما اذا اردنا اظهار الزر yes والزر no يكون سطر الكود كالاتى vbYesNo ملحوظه بسيطه يمكن الاستغناء عن كتابة الاسم الخاص بكل زر واستبدال الاسم بالرقم الخاص بالزر لاحظ الكود الاتى Sub msgbox_1() MsgBox "لاتنسونى بصالح الدعاء", 3, "اللهم تقبل من صالح الاعمال" End Sub لاحظ اننا استخدمنا الرقم 3 بدلا من vbYesNoCancel وذلك من اجل اظهار الازرار yes - no -cancel الاسماء الخاصه بالازرار والارقام التى يمكن استبدال الاسم بها ولمعرفة المزيد من الاسماء الخاصه بالازرار والارقام التى تعبر عن كل زر وكيفية كتابة الاكواد راجع الصوره الاتيه اضافة سطر فاصل فى الرساله هناك طريقتان لعمل ذلك الطريقه الاولى تعتمد هذه الطريقه على استخدام الخاصيه Chr مع استخدام الرقم 10 الخاص باضافة سطر فاصل وتكون شكل الرساله كالاتى وبالتالى نجد شكل الكود كالأتى Sub Line_MsgBox() MsgBox "النص الاول" & Chr(10) & "النص الثانى" & Chr(10) & "النص الثالث", vbYesNoCancel + vbDefaultButton3, "العنوان" End Sub الطريقه الثانيه تعتمد على استخدام vbNewLine وتكون شكل الرساله كالاتى وبالتالى نجد شكل الكود كالأتى Sub Line_MsgBox1() MsgBox "النص الاول" & vbNewLine & "النص الثانى" & vbNewLine & "النص الثالث", vbYesNoCancel + vbDefaultButton3, "العنوان" End Sub كيفية استخدام الجمل الشرطيه if مع MsgBox مثال نفترض اننا لدينا الخليه a51 نريد ادخال الاسم ابراهيم فيها ونريد ان تظهر لنا رساله تفيد هل تريد ادخال الاسم فى الخليه نعم ام لا--ثم اذا كانت الاجابه بنعم تظهر لنا رساله تفيد بأنه تم ادخال الاسم بنجاح واما اذا كانت الاجابه ب لا تظهر رساله تفيد بانه قد تم الالغاء كما يتضح من الصوره فى حالة الضغط على نعم فى حالة الضغط على زر لا ولمعرفة كيفية عمل ذلك نستعرض محتوى الرساله النص----هل نريد ادخال الاسم فى الخليه a51 نعم ام لا الازرار-- زر نعم---زر لا العنوان--تنبيه راجع الكود الاتى Sub if_MsgBox() Range("a51").ClearContents ' حزف محتوى الخليه Dim Answer As String 'Answer متغير تم تعريفه على انه من النوع نصوص Answer = MsgBox("هل نريد ادخال الاسم فى الخليه a51 نعم ام لا", vbYesNo, "تنبيه") If Answer = vbYes Then Range("a51") = "إبراهيم" MsgBox "تم ادخال الاسم بنجاح", vbOKOnly, "تنبيه" ElseIf Answer = vbNo Then MsgBox "تم إلغاء عملية الادخال", vbOKOnly, "تنبيه" End If End Sub كيفية استخدام Select Case مع MsgBox مثال نفترض اننا لدينا الخليه a60 نريد ادخال الاسم أبوليله فيها ونريد ان تظهر لنا رساله تفيد هل تريد ادخال الاسم فى الخليه نعم ام لا--ثم اذا كانت الاجابه بنعم تظهر لنا رساله تفيد بأنه تم ادخال الاسم بنجاح واما اذا كانت الاجابه ب لا تظهر رساله تفيد بانه قد تم الالغاء كما يتضح من الصوره فى حالة الضغط على نعم فى حالة الضغط على زر لا ولمعرفة كيفية عمل ذلك نستعرض محتوى الرساله النص----هل نريد ادخال الاسم فى الخليه a60 نعم ام لا الازرار-- زر نعم---زر لا العنوان--تنبيه راجع الكود الاتى Sub SelectCase_MsgBox() Range("a60").ClearContents Dim lReply As Long Reply = MsgBox("هل نريد ادخال الاسم فى الخليه a60 نعم ام لا", vbYesNo, "تنبيه") Select Case Reply Case vbYes Range("a60") = "أبوليله" MsgBox "تم ادخال الاسم بنجاح", vbOKOnly, "تنبيه" Case vbNo MsgBox "تم إلغاء عملية الادخال", vbOKOnly, "تنبيه" End Select End Sub اتمنى ان يكون الدرس مفيدا مرفق شيت اكسيل به التطبيقات learnvba.rar تقبلوا تحياتى learnvba.rar2 points
-
اكرمك الله في الدارين واظلك تحت ظله وجعل لي لقاء معك عند حوض حبيبنا محمد صلي الله عليه و سلم انت و جميع الاخوه - سنه جديده سعيده عليكم و علينا اكرمك الله في الدارين واظلك تحت ظله وجعل لي لقاء معك عند حوض حبيبنا محمد صلي الله عليه و سلم انت و جميع الاخوه - سنه جديده سعيده عليكم و علينا اكرمك الله في الدارين واظلك تحت ظله وجعل لي لقاء معك عند حوض حبيبنا محمد صلي الله عليه و سلم انت و جميع الاخوه - سنه جديده سعيده عليكم و علينا اكرمك الله في الدارين واظلك تحت ظله وجعل لي لقاء معك عند حوض حبيبنا محمد صلي الله عليه و سلم انت و جميع الاخوه - سنه جديده سعيده عليكم و علينا2 points
-
Expr1: (Sum(Hour([delay])*60)+Sum(Minute([Delay])))\60 & ":" & (Sum(Hour([delay])*60)+Sum(Minute([Delay]))) Mod 602 points
-
خامسا :- مهارات تعبئه وتغذية الكمبوبوكس بالبيانات بأكثر من طريقه تقليديه واحترافيه الطريقه الاولى :- الخاصيه ( Row Source ) اتكلمنا عليها قبل كدا ولكن هنذكركم بيها مره تانيه لانها ضمن سياق الموضوع لدينا شيت به بيانات افتراضيه كما هو ظاهر بالصوره التالية وعندى فورم بصممه شاهد الصورة أنا دلوقتى عايز اظهر اسماء العملاء من الخلية A2 : A5 فى الكمبوبوكس اللى فى الفورم من شاشة الخصائص اروح للخاصيه Row Source واكتب المدى A2:A5 شاهد الصورة شاهد النتيجة عن تشغيل الفورم طيب لو عايزين نظهر عدد 2 عمود بمعنى اظعر عمود اسماء العملاء وايضا عمود كود العميل اذن لازم اغير المدى فى الخاصيه Row Source واكتب المدى A2:B5 وايضا لازم احدد عدد الاعمده فى الكمبوبوكس يكون 2 من الخاصيه Column Count شاهد الصورة ستجد النتيجة عند تشغيل الفورم ولكن هنا فى مشكله وهى ان الفورم القائمه بتاعته هتكون على حسب الشيت النشط اسم الشيت بمعنى لو انتى فى الشيت رقم 1 هيظهر النطاق اللى بالشيت من A2:B5 شاهد الصوره ولو انت فى الشيت رقم 2 هيظهر النطاق اللى بالشيت من A2:B5 شاهد الصوره وهذه مشكله فلو انت عايز وين ما تكون واقف فى اى شيت ويفتح الفورم يظهر فقط النطاق اللى بالشيت رقم 1 المدى من A2:B5 فى هذه الحاله لازم احدد فى خاصيه Row Sourceاسم الشيت شاهد الصوره أو من خلال الاكواد فى البرمجه كالتالى ComboBox1.RowSource = "sheet1!a2:b5" زى ما احنا شايفين سطر الكود تم وضعه بين علامتى تنصيص " " " المدى ! اسم الشيت " وبكدا لو انت فى اى شيت نشط والفورم اشتغل فيه هيعرض فقط النطاق اللى بالشيت رقم 1 المدى من A2:B52 points
-
شكرا حبيبي الغالي اللهم وفقنا واياكم وجميع المسلمين ملحوظة انا كنت مبرمج وعندي موهبة كويسة في مجال البرمجة خصوصا من ايام vb6 انا بدأت الموضوع دا في 2005 وكنت ممتاز في المجال دا وعملت برامج كتيررررررررر بس تقدر تقول عدم الممارسة مع الوقتا وقع مني حاجات كتيررررر والمسئوليات شغل وبيت واسرة وعيال ربنا يعنيا جميعا دي احد برامجي قديما في 20062 points
-
Private Sub UserForm_Initialize() TextBox2.Enabled = False 'دي بالوز With ComboBox1 .RowSource = "d2: e12" .ColumnHeads = True .BoundColumn = "2" .ListRows = "4" .ListStyle = fmListStyleOption .ColumnWidths = "150 pt;90 pt" .ListWidth = "260 pt" .Style = fmStyleDropDownList End With 'دي بالبط 'ComboBox1.RowSource = "d2: e12" 'ComboBox1.ColumnHeads = True 'ComboBox1.BoundColumn = "2" 'ComboBox1.ListRows = "4" 'ComboBox1.ListStyle = fmListStyleOption 'ComboBox1.ColumnWidths = "150 pt;90 pt" 'ComboBox1.ListWidth = "260 pt" 'ComboBox1.Style = fmStyleDropDownList End Sub2 points
-
أخي الحبيب وائل الملف الذي رفعته من قبل يبدو أن به مشكلة مع 32 بت .. تم التعديل مرة أخرى على الملف ليعمل بشكل صحيح على 32 بت في الحقيقة أنا لدي جهازين أحدهما بالعمل والآخر بالمنزل ... الجهاز بالعمل يعمل على نظام 64 بت ، وفي المنزل على نظام 32 بت (وأنا متعمد إني أشتغل على النظامين ..) المهم بالنسبة للتعامل مع الكود أنا بجرب أضيف كلمة Ptrsafe في حالة نظام 64 بت وبس بعد كلمة Declare فبشوف الإعلان الموجود وليكن بهذا الشكل Private Declare Function SendMessage Lib "user32" Alias "SendMessageA" ( _ ByVal hwnd As Long, _ ByVal wMsg As Long, _ ByVal wParam As Long, _ ByVal lParam As Any) As Long عند فتح الملف على نظام 64 بت سيظهر هذا السطر باللون الأحمر مما يدل أن هناك مشكلة في التعامل معه .. فأقوم بإضافة كلمة PtrSafe بعد كلمة Declare .. بهذا الشكل Private Declare PtrSafe Function SendMessage Lib "user32" Alias "SendMessageA" ( _ ByVal hwnd As Long, _ ByVal wMsg As Long, _ ByVal wParam As Long, _ ByVal lParam As Any) As Long السطر الأخير يعمل على 64 بت فقط ، والأول يعمل على 32 بت فقط ................ للجمع بينهما استخدام الصيغة التالية ليعمل على كلا النظامين معاً #If VBA7 Then #Else #End If ليكون الكود بهذا الشكل في نهاية الأمر #If VBA7 Then Private Declare PtrSafe Function SendMessage Lib "user32" Alias "SendMessageA" ( _ ByVal hwnd As Long, _ ByVal wMsg As Long, _ ByVal wParam As Long, _ ByVal lParam As Any) As Long #Else Private Declare Function SendMessage Lib "user32" Alias "SendMessageA" ( _ ByVal hwnd As Long, _ ByVal wMsg As Long, _ ByVal wParam As Long, _ ByVal lParam As Any) As Long #End If وبالتالي يعمل الكود على النظامين معاً .. أرجو أن أكون قد وفقت في توصيل المعلومة ملحوظة : أحياناً لا يكون التعديل في الكلمة Ptrsafe فقط .. الموضوع محتاج دراسة أنا قدمت لك ما أعرفه بخصوص تلك النقطة تحديداً تقبل وافر تقديري واحترامي2 points
-
اعانك الله يا ابويوسف وسدد خطاك انا عايزك تعرف حاجه ان انت السبب فى انى فكرة اقدم شروحات الفورم على الرغم دا سر مهنه المبرمجين واحنا بنطفل عليهم وهيزعلو منا على الرغم ان تقديم الشروحات وبدقه وتفصيل وتكون مصحوبه بالصورة امر شاق جدا ويحتاج الى وقت كبير لكن طالما ابويوسف طلب فهو يأمر واحنا ننفذ لما طلبت شرح سند صرف للاستاذى ضاحى من هنا جت الفكره ان لازم نشرح الفورم من البدايه حتى تتضح لك الصوره كامله المهم متنسناش من دعائك الطيب اجعلى لى نصيب من دعائك فأنا احوج ما يكون له تقبل منى وافر الاحترام والتقدير يا بن الشام البار2 points
-
وها هي الاكواد ويارب مكنشي نسيت حاجه اللي عاوز يغش معنديش مانع الورقة اهي بس قبل ما المراقب يجي aseel.rar2 points
-
السلام عليكمهذه طريقة لتصفح الانترنت من داخل برنامجك على الاكسيلكلها امثلة بسيطة قابلة للتحسين لتصبح ذو فائدة web.rar1 point
-
أخى الكريم الكود ككل مكون من عدة أكواد وليس كل الاكواد تربط بزر الكود Auto_Open و Auto_Close و kh_wVisible و ToggleCutCopyAndPaste و EnableMenuItem و CutCopyPasteDisabled لا تربط بأى أزرار فالكود مصمم بطريقة متشابكة يعنى كود يستدعى كود آخر فمثلا عند فتح الملف Auto_Open يشتغل لاخفاء القوائم لكى لا نستعمل القوائم فى القص والنسخ واللصق وعند غلقه Auto_Close يشتغل ليرجع الحال كما كان وكلاهما يستدعى ToggleCutCopyAndPaste لتعطيل عمليات النسخ والقص واللصق بلوحة المفاتيح ما يربط بزر كودان فقط EnableCutcopypaste و DisableCutcopypaste تحياتى1 point
-
أخي الحبيب التاج أما آن لك أن تغير اسم الظهور للغة العربية إليك الكود التالي عله يكون المطلوب Sub Test() Dim WS As Worksheet, SH As Worksheet Dim Cel As Range Dim lRow As Long Set WS = Sheets("أداة بناء الخطط"): Set SH = Sheets("ورقة1") Application.ScreenUpdating = False For Each Cel In WS.Range("H3:H43") If Cel.Value >= 0.9 Then lRow = SH.Cells(Rows.Count, "B").End(xlUp).Row + 1 SH.Cells(lRow, "B").Value = Cel.Offset(, 1) ElseIf Cel.Value <= 0.5 Then lRow = SH.Cells(Rows.Count, "H").End(xlUp).Row + 1 SH.Cells(lRow, "H").Value = Cel.Offset(, 1) End If Next Cel Application.ScreenUpdating = True End Sub ALTAG.rar1 point
-
باشا انت زي الفل كدا تمام بس في ملحوظتين صغيرين: الافضل نجعل فورم تمديد المده يختفي تلقائي بعد ادخال السيريال والضغط علي زر تمديد المده وظهور الرساله ويدخل مباشره الي الملف كاملا وليس بضع اعمده فقط بدون مايدخل كلمه سر اخري لانه ببساطه اصبح مالك الملف لباقي الفتره الملحوظه الثانيه لاحظ معي عند دخول المستخدم بكلمه السر بعد انتهاء الفتره يظهر بعض الاعمده فقط تمام كدا بس المشكله ان هذه الاعمده لو اشرت اليها بالفاره ممكن تظهرها بسهوله وطبعا لاانسي ان ارفع لك القبعه لعملك القيم هذا1 point
-
الله ينور اخي ياسر ولي اضافة صغيرة زيادة في الحرص يمكن اخذ نسخة من هذا الكي وحفظها لاسترجاعاها اذا تأذمت الامور تحياتي وفقك الل ونفعك ونفع الامة بما علمت1 point
-
وهذا الشرح : تم تحويل الوقت كاملا الى دقائق ! ثم القسمة بدون باقي على 60 لحساب عدد الساعات ! ثم ايجاد باقي القسمة على 60 لحساب الدقائق ! بالتوفيق1 point
-
كلام اخويا ياسر مظبوط الحماية ع المصنف كلة وهية نفس الباس ورد انظر المرفق مانفست طارق1.rar1 point
-
1 point
-
اخي العزيز وائل الاسيوطي مشكور مرورك الكريم وسأقوم بعمل اللازم في موضوعك باذن الله اخي واستاذي وحبيبي ياسر خليل ابو البراء واخونا الصقر حبيبي حسام عيسى واخونا ابو يوسف عشان دا عربي وتبعنا وجميع اخواننا في هذا المنتدي العظيم اللهم يسر امورنا ولا تعسرها انا يشرفني ان اكون اخ وصديق لكم في هذا المنتدي العظيم وان شاء الله اكون عند حسن ظن الجميع تقبل فائق احترامي ياسر العربي1 point
-
بارك الله فيك أخي الغالي ياسر أرى أنه طالما ستتعامل مع أرقام أكواد .. فالأفضل ألا يتم التعامل مع البيانات بشكل جزئي إنما بشكل كلي أقصد الجزء التالي LookAt:=xlPart, _ أن يتم استخدام كلمة xlWhole ليتم التعامل مع كامل محتويات الخلية .. هذا مجرد رأي وطبعاً الجزئي يستخدم في مواطن أخرى حسب الحاجة تقبل تحياتي1 point
-
تسلم تسلم أخي الكريم ياسر بارك الله فيك وزادك من فضله وعلمه تقبل تحياتي1 point
-
السّلام عليكم و رحمة الله و بركاته بارك الله أستاذنا القدير ياسر خليل أبو البراء على الرّابط الرائع ذو الأهميّة الكبيرة أنا نفسي سألت يومًا ما في هذا الموضوع .. الحمد لله طالما معنا انسان يشد على أيدينا دومًا بما رزقه الله من علم نافع .. زادك من علمه و فضله و يسّر أمورك يا ياسر يا خليل .. ألف شكر للأخ العزيز ياسر العربي على المساهمة الطيّبة لكنّها غير مجدية عن تجربة ..فبمجرد غلق الملف سترجع المتاهة من جديد . فائق إحتراماتي1 point
-
1 point
-
1 point
-
1 point
-
1 point
-
المرة هذي لن اقول تعجبني ردودك ! ولكن من الآن لعل ردودنا نحن التي تعجبك استاذ ابا عارف ! بل عرفنا ان ابا عارف هو الاستاذ كنعان ! واسمح لي ان الخص مفاتيح الحل : 1. فكرة سرد النماذج الفرعية وبنفس اللون للنموذج الرئيسي 2.استخدام العد الافتراضي في الاستعلام ! 3. تغيير خصائص مربع النص ليبدو زر امر ووضع خاصية زر الامر شفاف ووضعه فوق مربع النص تلك المفاتيح هي حل لمشكلة واجهتنا كثيرا ! واتحدى انه تم التطرق لهذا في جميع المنتديات العربية ! لا اخفيك استاذ ابا عارف انني قد شاركت بمفتاح رقم 3 في موقع الفريق العربي للبرمجة ! هذا ومازالت الفكرة تحتاج لللتطوير حيث يتوقف العدد 3 نماذج فرعية لتكفي 30 صنفا واذا زاد فتحتاج الى اضافة نموذج فرعي رابع وهذا لابد من تدخل المبرمج ! لدي فكرة من زمان وساحاول تنفيذها ولكن اتمنى ان تفتح الادارة موضوع ينقل له هذا المرفق وبعد اذن الاخ حسين الفاضل ويكون عنوانه نقاط بيع بالاكسس ويشارك فيه الاخوة جميعا ! كما انه لو اردنا ان تكون التصنيف ازرار امر وكذلك الاصناف ! تحياتي للجميع !1 point
-
السلام عليكم تفضل جرب المرفق اظهار واحفاء الاعمدة1.rar1 point
-
اخى واستاذى محمد ناصر ...................... بالنسبه لطريقة الحل الخاصه بى فبصراحه انا جربت استخدام on error resume next .............................. طبعا الحل المقدم من حضرتك متقن و جميل والفكره هى الاجمل الكود يعمل بنجاح ولكن اذا جاء الميعاد وخرجت الرساله وقمنا بغلق الملف ثم قمنا بارجاع تاريخ الجهاز للخلف ثم اعدنا فتح الملف سنجد انه يمكننا الدخول الى الملف ارجو التعديل انا طبعا حاولت تخطى هذه المشكله والحمد لله نجحت فى ذلك ولكنى اطمع فى ان ارى طريقتك فى حل هذا اللغز تقبل تحياتى1 point
-
برافووووووووووو انت النهارده خليت اليوم يوم الظغططته وز وبط مش ناقص غير الحمام والدنيا تولع جزاكم الله خيرا وزادكم من فضله وعلمه تقبل تحياتى مجرد ملحوظه صغيره انت بقيت محترف ( او كنت محترف ) ComboBox1.BoundColumn = "2" ComboBox1.ListRows = "4" ممكن يكونو بدون "" زى كدا ComboBox1.BoundColumn = 2 ComboBox1.ListRows = 4 تقبل تحياتى1 point
-
السلام عليكم أخي الصقر...أنا ممنونك وشاكر فضلك ومقدر جهدك ...واعلم أنني دخلت على مجال الحاسوب دون أن أدخل دورات ولكن بعد فترة تعرفي عليكم الوجيزة أدركت أشياء لم تكن تخطر ببالي...كنتم أنتم وأخي الحبيب ياسر أبو البراء..حملة المشاعل التي أوقدت النور أمام عيني ..لكم الفضل الكبير والفضل أولاً وأخيراً لله الذي عرفني عليكم..وبصراحة اليوم الذي لا أحاوركم فيه لا قيمة له بنظري أو أنه ذهب سدىً وبتعبير آخر أرجو الله ألا ينقطع الأنترنت لأنني أعيش السعادة معكم ولو بشكل افتراضي ... أذكّركم بحديث الرسول صلى الله عليه وسلم: " ما أكرم شاب شيخاً لسنّه إلا قيَّض الله له من يكرمه عند سنّه" وأنا بنظري لست شيخاً طاعنا في السن ولكنني مقبل عليها كما تقبل الماء في المنحدر الصعب... تقبلوا محبتي وتحياتي....أبنائي الأعزاء...والسلام عليكم1 point
-
عليكم السلام اخي الغالي محمد حسن المحمد ابو يوسف مشكور اخي علي مرورك الكريم اخي الغالي دمت اخا عزيزا غاليا لنا فلا تحرمنا من طلاتك الجميلة وكلماتك الانيقة تقبل مني فائق الاحترام اخوك ياسر العربي ابواسيل1 point
-
استاذى الحبيب / ابويوسف و الاخ الحبيب ياسر العربى وكل الاخوة فى المنتدى كل عام وانتم بخير دائما سباقين بالخير يا عم ياسر انت عقبت على رقم 1 طيب و رقم 2 و 3 لأ ليه ؟؟؟؟ منتظر رقم 2 ضرورى متهربش1 point
-
اخواتي محمد حسن محمد والصقر ولكل اعضاء المنتدي الكرام كل عام وانتم والامة الاسلامية بخير ثانيا اخي الصقر انا بحاول احط المطلوب فقط TextBox1.Text = Format(TextBox1.Text, " dddd mmmmyyyy") انا قلت اضيفه في الاتنين عشان انت بتقعد تدور علي اي حاجه عشان تغلطنا شوفت التلميذ اللي عارف اجابة السؤال بكذا طريقة بيحطهم كلهم وانت نقي بقي ههههه وبصراحه انا معظم الحاجات دي انا مرجعتش الدرس اساسا فهي كدا استنتاجية مني بشوفها في الخصائص واكتبها كود دي سهلة مش صعبة جاري عمل مثال احترافي باذن الله1 point
-
بارك الله فيك أستاذنا الفاضل العيدروس بعد تجربة الكود فى صورنه الأخيرة وجدت أنه يمكن التعديل فى البيانات اذا كان التاريخ لا يساوى تاريخ اليوم فمثلا اذا كان التاريخ 13 /10 /2015 وهو لا يساوى تاريخ اليوم 14/10/2015 فيمكن التعديل فى المبلغ بأن تقف فى الخلية التى تليها وحاول تعديلها ستجد أن الكود انتقل بك الى خلية المبلغ عندها عدّل المبلغ ستجد أنه تم تعديله والانتقال الى خلية المسلسل وبعد اذن حضرتك اسمح لى بهذا التعديل فمن شأنه عدم التعديل الا فى الخلايا التابعة لتاريخ اليوم فقط Private Sub Worksheet_Change(ByVal Target As Range) Dim Rng As Range For Each Rng In Range("TAREK").Areas If Not Application.Intersect(Target, Rng) Is Nothing Then If Cells(Rng.Cells(1, 1).Row - 1, Rng.Cells(1, 2).Column) <> CVDate(Date) Then Application.EnableEvents = False Application.Undo Application.EnableEvents = True MsgBox "عفواً... ليس لديكم الصلاحية لتعديل البيانات" Else Exit Sub End If End If Next End Sub تحياتى للجميع1 point
-
تفضلوا احبائي بامكانكم الان اضافة اصناف من خلال مربعات في اعلى يمين النموذج الملف للاستاذ حسين For Mr_Hosain.rar و هذا للاستاذ القعر ForMr_Qaar.rar1 point
-
السلام عليكم ورحمة الله تعالى وبركاته كل عام وحضراتكم بخير بمناسبة العام الهجرى الجديد لقد تناولنا فى موضوعى السابق حماية للشيت ما عدا نطاق محدد أو Protect Sheet Expect Range http://www.officena.net/ib/topic/64169-حماية-للشيت-ما-عدا-نطاق-محدد-أو-protect-sheet-expect-range/ واليوم أعرض على حضراتكم كيفية حماية كل أوراق العمل فى الملف من التعديل مع ترك نطاق موحد فى كل شيت أو أو نطاقات مختلفة من شيت لآخر وذلك خارج نطاق الحماية مع القابلية للتعديل رغم الحماية المفروضة على الشيت . الكود وعليه الشرح : Sub ProtectWbExpect2() ' Protect Workbook Expect Ranges ' by mokhtar 13/10/2015 Dim sh As Worksheet Application.ScreenUpdating = False ' ايقاف تحديث الشاشة On Error Resume Next ' فى حالة حدوث خطأ تجاهله وانتقل للأمر التالى ' حلقة تكرارية للتعامل مع كل شيت فى الملف For Each sh In Worksheets ' اذا كانت محتويات الشيت محمية فان If sh.ProtectContents = True Then ' اجعل الشيت غير محمياً sh.Unprotect ' اسم الزر فى حالة عدم حماية الشيت Sheets("Sheet1").Shapes("Rounded Rectangle 1").TextFrame2.TextRange.Characters.Text = "تفعيل حماية الأوراق" ' حلقة تكرارية لحذف جميع النطاقات المسموح يتعديلها فى الشيت For i = 1 To sh.Protection.AllowEditRanges.Count Debug.Print sh.Protection.AllowEditRanges(i) sh.Protection.AllowEditRanges(i).Delete Next ' انهاء الحلقة التكرارية sh.Cells.Interior.Pattern = xlNone ' جعل خلايا الشيت بدون ألوان ' اضافة النطاقات المسموح بتعديلها أثناء حماية الشيت Sheets("Sheet1").Protection.AllowEditRanges.Add Title:="mokhtar1", Range:=Range("A1:B3") ' اضافة النطاق فى الورقة الاولى Sheets("Sheet2").Protection.AllowEditRanges.Add Title:="mokhtar2", Range:=Range("A4:B6") ' اضافة النطاق فى الورقة الثانية Sheets("Sheet3").Protection.AllowEditRanges.Add Title:="mokhtar3", Range:=Range("A7:B9") ' اضافة النطاق فى الورقة الثالثة ' اذا كان النطاق المسموح بتعديله ثابتا فى كل الأوراق ' sh.Protection.AllowEditRanges.Add Title:="mokhtar" & (i), Range:=Range("A1:B3") Else ' أما اذا كانت محتويات الشيت غير محمية فان Sheets("Sheet1").Range("A1:B3").Interior.ColorIndex = 4 ' تمييز النطاق فى الورقة الاولى Sheets("Sheet2").Range("A4:B6").Interior.ColorIndex = 4 ' تمييز النطاق فى الورقة الثانية Sheets("Sheet3").Range("A7:B9").Interior.ColorIndex = 4 ' تمييز النطاق فى الورقة الثالثة ' sh.Range("A1:B3").Interior.ColorIndex = 4 ' تمييز النطاق اذا كان ثابثا فى كل الاوراق ' اسم الزر فى حالة حماية الشيت Sheets("Sheet1").Shapes("Rounded Rectangle 1").TextFrame2.TextRange.Characters.Text = "الغاء حماية الأوراق" ' اجعل الشيت محميا sh.Protect End If ' انهاء الشرط Next sh ' انهاء الحلقة التكرارية Application.ScreenUpdating = True ' تشغيل تحديث الشاشة End Sub ملف للتجربة : Protect All Sheets Expect Ranges .rar والسلام عليكم ورحمة الله وبركاته1 point
-
ماشي حبيبي ربنا يوفقك في برنامجك وشروحاتك اللذيذة وربنا يعنا بقي واحاول افضي وقت قبل ما السنة تروح عليا واشيل المادة دي1 point
-
إخواني الكرام إليكم الملف يعمل على النسختين 32 بت و 64 بت أرجو أن تستفيدوا منه .. تقبلوا وافر تقدير واحترامي Codes Library v1.9.7.rar1 point
-
تفضل استاذ علي واسف عالتاخير لانشغالي جدا DoCmd.TransferSpreadsheet , , "table1", "c:\Users\ali\Documents\ali.xlsx", True وانا متاكد ان الامر السابق لديكم علم به ولكن مع النقاش سنصل لما تريد باذن الله تحياتي1 point
-
أخي الكريم feteh07، لو أنك أرفقت مثالا في ملف من تصميمك أو آخر لعُلمت الإجابة ويسهل علينا فهم المطلوب جيدا... أخوك بن علية بارك الله فيك أخي بن علية ..لك مني كل الشكر و التقدير..طلبي هو لأي ملف كشوف امتحانات..مثلا هذا الملف الذي أخذته كمثال من هنا..أنظر رجاء الاطار الأصفر في الشيت رقم 31 point
-
1 point
-
إخوتي في الله منذ مدة و أنا أبحث و أتتبع و أرصد كل المشاركات و المداخلات للإخوة الأفاضل هنا في منتدى أوفيسنا الغالي و الرائد ..لكن كل مرة أصاب بالاحباط و الرجوع إلى نقطة الصفر ..ليس بسبب قلة المادة هنا لكن المشكلة في كوني مبتدئا في الاكسل و أريد شرحا لو أمكن بالفيديو أو بالصور بالتوضيحية و سأكون للجميع دون استثناء من الشاكرين و الممتنين طول العمر في الدنيا والآخرة : أريد شرح طريقة توزيع الطلاب المترشحين الممتحنين على اللجان ( القاعات ) ..لو كان عندي مثلا في مركز الامتحان 200 طالب .. بحيث سيكون كل 20 طالب بلجنة ..يعني 20 لجنة .. الطلاب من 1 إلى 20 سيكونون باللجنة رقم 1 ..الطلاب من 21 إلى 40 باللجنة 2 ..من 41 إلى 60 باللجنة 3 ...ولو يكون عندي مثلا 208 طالب اللجنة الأخيرة سيكون بها طبعا فقط 8 طلاب..الخ ..وفي الوقت نقسه اعمل قصاصات صغيرة etiquettes (رقم اللجنة - اسم الطالب - رقم التسجيل ) .... يعني في الملف يكون عندي 3 شيتات ..الشيت الأول كقاعدة بيانات أنا الذي أملأه ( الرقم التسلسلي رقم التسجيل - الاسم - تاريخ الميلاد .. رقم اللجنة ) ..الشيت الثاني يكون عبارة عن قوائم للطلاب الذين كتبتهم في الشيت الأول ..كل قائمة بها كما ذكرت ذكرت 20 طالبا بأسمائهم و أرقام تسجيلهم وتواريخ ميلادهم وأرقام تسجيلهم..والشيت الثالث به 20 قصاصة بنفس المعلومات السابقة .. يعني المعلومات التي سوف ادخلها في في الشيت الأول تنسخ تلقائيا للشيت الثاني و الثالث لتكون جاهزة للطباعة عن طريق زر تغيير الصفحات ..رجاء اخواني لا تبخلوا عني بإرشاداتكم و توجيهاتكم لأني لا أريد برنامج جاهز أريد أن أتعلم الفكرة وألف شكر و بارك الله فيكم جميعا ..1 point
-
شكرا أستاذنا الفاضل على المتابعة و التواصل ..بعث لي زميل ملفا ولكني والله لم أفهم تفسيرا لهذه المعادلات ..تفضل سيدي : http://www.gulfup.com/?ROUoeS1 point
-
السلام عليكم ورحمة الله أخي الكريم، تريد أن تتعلم كيفية القيام بمثل هذا العمل؟ يمكنك أولا أن تبدأ بإنشاء ملف من ثلاث شيتات تعدلها حسب ما ذكرته في نص موضوعك أي تصنع له هيكلة كما تحب أن يكون (بناء جداول في كل شيت، الأول للبيانات والثاني للقوئم والثالث للقصاصات -حجمها والبيانات التي تحويها-) ولما تجهّز الملف ارفقه بالموضوع حتى نعرف ونتعلم كيف نضع اللمسات الأخيرة للملف (معادلات الرحيل - أكواد الطباعة - التنسيقات التحسينية وغيرها)... ننتظرك لعمل ذلك... وإن أردت نموذجا لتقليده والعمل عليه، أضع بين يديك ملفا من تصميمي يقوم بهذه العمليات خاص بتسيير قوائم وقاعات امتحان شهادة البكالوريا عندنا (أو أي مستوى آخر)... أخوك بن علية1 point
-
جزاك الله خيرا استاذ محمدي عبد السميع وها كود مع اختصار بعض الاسطر Sub SheetList_CP() On Error Resume Next Application.CommandBars("Workbook Tabs").Controls("More Sheets...").Execute If Err.Number > 0 Then Err.Clear Application.CommandBars("Workbook Tabs").ShowPopup End If On Error GoTo 0 End Sub1 point