نجوم المشاركات
Popular Content
Showing content with the highest reputation on 12/25/15 in مشاركات
-
السلام عليكم ورحمة الله أخي الكريم، هذه محاولة بالمعادلات ومعية أعمدة إضافية مساعدة... الملف جلبته من موضوعك الثاني المكرر وأعتقد أنه قد تم حذفه... بن علية العشرة الاوائل بكود.rar3 points
-
بغد اذن اخي و صديقي بن علية حل اخر زيادة في اثراء الموضوع انظر الى الورقة Sheet2 العشرة الاوائل بكود salim.rar2 points
-
أبي الحبيب أبو يوسف بارك الله فيك ..شكلك فنان تشكيلي (تشكيلي غير تشكي لي .. !!) مجهود رائع وتنسيق جميل .. ولكن انتبه كثرة التنسيقات في الملف من شأنها أن تجعل الملف كبير الحجم وثقيل في التعامل ، فلا تكثر منها تقبل وافر حبي وتقديري2 points
-
السلام عليكم ورحمة الله ولإثراء الموضوع هذا كود من إبداعي ودن الرجوع لاي مصدر كود صغير جدا خفيف وسهل من 7 كلمات Dim MySh MySh = "KHMB" Sheets(MySh).Select يتم وضعة في حدث النقر علي زر الامر مرفق المثال KHMB الذهاب الي الشيت المحدد من الفورم.rar2 points
-
أخي الكريم أبو حمادة قم بوضع الكود التالي في موديول عادي Sub ShowForm() UserForm1.Show vbModeless End Sub Sub UnhideAll() Dim Ws As Worksheet For Each Ws In ThisWorkbook.Sheets Ws.Visible = xlSheetVisible Next Ws End Sub Sub HideAll() Dim Ws As Worksheet For Each Ws In ThisWorkbook.Sheets Ws.Visible = xlSheetHidden Next Ws End Sub أنشيء فورم وعليه 4 أزرار أوامر وقم بتسمية الأزرار باسم cmdClose للإغلاق الخاص بالفورم ، وزر أمر باسم cmdSheet والذي من خلاله يمكنك التعامل مع ورقة العمل المكتوب اسمها على زر الأمر فيخفي أوراق العمل الأخرى ويبقى ورقة العمل فقط ، وزر الأمر cmdRename ويقوم بتسمية زر الأمر السابق المسمى cmdSheet (يغير عنوان الزر وليس اسم الزر) ، وأخيراً زر أمر cmdUnhide لإظهار جميع أوراق العمل وإليك الكود الذي يوضع في حدث الفورم 'Author : YasserKhalil 'Released : 25 - Dec. - 2015 'Use : This UserForm Enables You To Navigate To Specific Sheet ' Depending On cmdSheet Caption & Hide Other Sheets. '-------------------------------------------------------------------- Private Sub cmdSheet_Click() Dim Str As String, Ws As Worksheet, Bln As Boolean Str = cmdSheet.Caption On Error Resume Next For Each Ws In ThisWorkbook.Sheets Ws.Visible = xlSheetVisible If Str = Ws.Name Then Bln = True Next Ws If Bln = True Then For Each Ws In ThisWorkbook.Sheets If Ws.Name = Str Then Ws.Activate Else Ws.Visible = xlSheetHidden End If Next Ws Else MsgBox "There Is No Such Worksheet Name", 64 End If On Error GoTo 0 End Sub Private Sub cmdRename_Click() Dim StrName As String On Error Resume Next StrName = InputBox("Rename Previous Command Button", "Rename Button") If StrName <> "" Then cmdSheet.Caption = StrName On Error GoTo 0 End Sub Private Sub cmdUnhide_Click() Call UnhideAll End Sub Private Sub cmdClose_Click() Unload Me End Sub أعلم أني قد زدت عن الطلب ..فعذراً لكن الموضوع استهواني قليلاً فقمت بعمل الفورم الذي تراه بحيث يلبي حاجة من في حاجة إليه تقبل تحياتي Navigate To Specific Sheet By Command Button Name YasserKhalil.rar2 points
-
الفكرة أخي الكريم السيفاني في الإعلان عن المتغيرات لا تكمن في أن يتم الأعلان عن كل متغير في سطر منفصل أو الإعلان عن كل المتغيرات في نفس السطر يمكن الإعلان عن الثلاثة متغيرات في سطر واحد ولكن يجب أن تكون كما ارفقت بالمشاركة الأولى أي يتم تحديد نوع كل متغير أما الخطأ الشائع الذي يقع فيه الكثيرون هو أن يتم الإعلان عن المتغيرات بهذا الشكل Dim c1, c2, c3 As Date هنا المتغير الثالث فقط هو الذي تم تحديد نوعه أما المتغير الأول والثاني فلم يتم تحديد نوعهما مما يترتب عليه أن يتعامل معهم المحرر أنهما من النوع Variant وليس من النوع Date أرجو أن تكون قد وصلت الفكرة2 points
-
السلام عليكم ورحمة الله بعد إذن اخونا وإستاذنا الفاضل ياسر خليل إليك الملف إن شاء الله يكون حسب طلبكم هذا مما تعلمناه من العلامة القدير الاستاذ / عبدالله احمد باغشير والذي غاب عننا ربنا يرفع عنهم وعننا وسائر بلاد المسلمين البلاء والوباء والغلاء. الإنتقال الي الصفحة بدلالة إسمها علي الزر.rar2 points
-
السلام عليكم ،، ارفق اليكم البرنامج يعمل الان داخل معظم الشركات التى تعمل في مجال التجارة بالكويت (المنتجات التى تشتري من الصين -ويتم بيعها بالقطعة ) والبرنامج متعرض للموضيع الاتية : - أضافة اصناف . - أضافة عملاء وموردين. - أضافة نقاط بيع. - أضافة موظفين . - العهده النثرية بشكل شامل تمام.ا ارجو ان ينال اعجباكم والذي يريد اي استفسار يرسل لي بالبريد khaled95@yahoo.com Sales_Ma...ed_Ahmed.rar] Sales_Managment_By_Khaled_Ahmed.rar1 point
-
السلام عليكم ورحمة الله وبركاته إخواني الكرام ... ارتأيت أن موضوع المصفوفات بات من الأهمية بمكان بحيث لا يجب أن ننساه لما له من أهمية كبيرة في التعامل مع الأكواد بسرعة كبيرة جداً وخصوصاً في حالة التعامل مع كم هائل من البيانات .. فقررت أن أشارككم بما تقع عليه يدي من أكواد فيما يخص المصفوفات لنتعلم ونرتقي سوياً .. سأتناول كود بسيط بالتفصيل لنعرف ما هية المصفوفات وكيفية التعامل معها بشكل جيد الكود عبارة عن عمل حلقة تكرارية لعناصر المصفوفة من أول عنصر لآخر عنصر .. وإظهار العناصر في رسالة أو وضعها في نطاق أو التعامل معها كما تريد نبدأ بالكود بالكامل ثم نتناوله بالتفصيل Sub LoopInArray() Dim myArray As Variant Dim X As Integer myArray = Array("Yasser", "Khalil", "Officena", "Forum") For X = LBound(myArray) To UBound(myArray) MsgBox (myArray(X)) Next X End Sub السطر الأول هو بداية الإجراء الفرعي ويبدأ بكلمة Sub كما تعودنا يليه اسم الإجراء الفرعي ويفضل تسميته باسم يعبر عن الهدف من الكود ...قمت بتسميته LoopInArray حيث أننا سنتعامل بالحلقات التكرارية داخل عناصر المصفوفة .. وطبعاً لكل شيء بدأته لازم تقفله ..وقفلة الـ Sub بتكون بكلمة End Sub في نهاية الكود بالطبع السطر الثاني الإعلان عن متغير myArray وهو متغير للمصفوفة التي سنتعامل معها وقمت بتسميتها باسم مناسب وليس أي اسم (أفضل دائماً أن تكون أسماء المتغيرات معبرة عن المتغير والهدف منه ونوعه ..) السطر الثالث هو إعلان عن متغير من النوع Integer ووظيفة هذا المتغير أنه بمثابة عداد ..إذ أن من يعرف الحلقات التكرارية يعرف أنه لعمل حلقة تكرارية يستلزم أن يكون هناك عداد لهذه الحلقة التكرارية .. وقيمة المتغير X ستتغير مع كل حلقة .. أقصد أنه في أول لفة ستكون قيمة المتغير تساوي رقم البداية (فإذا كان رقم البداية 1 فإن المتغير يساوي 1) وفي اللفة الثانية تزداد قيمة المتغير بمقدار 1 ليصبح على سبيل المثال 2 وفي اللفة الثالثة يساوي 3 وفي اللفة الرابعة ..كمل إنت !! انتهينا من الأسطر التقليدية (تسمية الإجراء والإعلان عن المتغيرات) ... نتوقف قليلاً لللتجربة !! ماذا سنجرب يا ترى ؟ هل هناك ما يستدعي منا أن نجربه ونحن ما زلنا في البداية ولم نكتب أسطر فعلية للكود .. نعم لابد أن نتعلم شيئاً جديداً ومفيداً عند التعامل مع الأكواد ...... تطبيق : انسخ الكود السابق في موديول جديد ثم ضع الماوس داخل الإجراء الفرعي .. ومن قائمة View في محرر الأكواد اختر الأمر Local Window إنها نافذة ستجعل منك محترفاً في فهم الأكواد (صدقوني ستذهلون منها بشكل كبير جداً) ..إنها بمثابة نافذة لك لتدرك كيف يتم تنفيذ أسطر الكود سطر سطر انتبهوا لهذه النافذة بشكل كبير ... كيف سيتم التعامل مع هذه النافذة المدهشة ؟ الأمر في غاية اليسر والسهولة والبساطة .. ستستخدم من لوحة المفاتيح F8 وهو يمكنك من متابعة الكود سطر بسطر .. كفانا كلام نظري وننتقل للتطبيق .. ضع الماوس داخل الإجراء الفرعي (الكود) ثم اضغط F8 مرة واحدة فقط .. وانظر للنافذة التي كانت فارغة منذ قليل لقد أصبحت ثرية .. نعم ثرية .. بضغطة واحدة ستتمكن الآن من تحليل المتغيرات .. لقد تم وضع سطر باللون الأصفر على أول سطر بالكود كما تم وضع المتغيرات في النافذة بهذا الشكل في الناحية اليسار من النافذة توجد أسماء المتغيرات التي تم الإعلان عنها وفي العمود الأوسط قيمة المتغير ..فقيمة المتغير الأول Empty ما زالت المصفوفة فارغة لم يتم إضافة أي عنصر لها ، وقيمة المتغير الثاني لأنها من النوع Interger فتحمل القيمة صفر لأننا لم نضع قيمة لها بعد وفي العمود الثالث نوع المتغير فالمتغير الأول من النوع Variant وهذا النوع غالباً ما نستخدمه مع المصفوفة لأن المصفوفة مرنة ربما تحمل نصوص وربما أرقام وربما حتى نطاقات (موضوع يطول شرحه) إلى الخطوة الثانية والتي هي نفس الخطوة الأولى (حد يفكرني !!) محدش مركز !! ... الخطوة التانية اضغط F8 مرة تانية .. ماذا حدث ؟ لقد تجاوز السطر الأصفر أسطر الإعلان عن المتغيرات .. نعم لأنها أسطر غير قابلة للتنفيذ إنما تظهر المعلومات المرتبطة بهذه المتغيرات مع أول ضغطة على F8 بعد السطر الأول في الكود .. انتقل السطر الأصفر ليظلل السطر التالي .. ولم يحدث أي تغيير في نافذة الـ Local Window myArray = Array("Yasser", "Khalil", "Officena", "Forum") هل التنفيذ مرتبط بالسطر الأصفر ؟ نعم يتم تنفيذ السطر الملون بالأصفر بعد الخروج من السطر الأصفر وليس عند تظليل السطر الأصفر الخطوة الثالثة .. ماذا تتوقع أن يحدث بعد أن نضغط F8 للمرة الثالثة؟؟؟ فكر ثواني عشان تفهم اللعبة .. سيتم تنفيذ السطر الأصفر السطر الحالي عبارة عن تعيين قيم أو وضع عناصر للمصفوفة .. لدينا بعض الأسماء (وبما أن الأسماء نصوص فتم وضعها بين أقواس تنصيص) وهذه الأسماء سيتم وضعها داخل المتغير الذي قررنا أنه سيكون للمصفوفة انتبه انتبه ..لم أطلب منك أن تبدأ الخطوة الثالثة بعد ..!! فقط انظر لنافذة الـ Local Window على المتغير myArray وشوف القيمة هتلاقيها Empty أي أن المصفوفة فارغة (وكما بص على يسار اسم المتغير ..هل يوجد علامة زائد بجانب اسم المتغير myArray ؟؟ الإجابة لا يوجد) ابدأ تنفيذ الخطوة الثالثة ألا وهي نفس الخطوة الأولى ونفس الخطوة الثانية ..حد يفكرني !! محدش مركز .. اضغط F8 بردو (أنا مش عايز أتعبك أنا عايز تشوف وتتعلم وبعديها خلي دماغك يتكلم) ضغطت يا وائل ولا لسه على F8 ؟؟؟ تمام تمام الله ينور عليك ايه اللي حصل يا حوسو .. لما نحب نعرف ايه اللي حصل هنبص على الكود وعلى النافذة .. نبص الأول على الكود هنلاقي إنه تم الانتقال للسطر التالي وأصبح السطر التالي مظلل باللون الأصفر .. طيب الأهم إننا نبص على النافذة Local ونشوف المتغير myArray هنلاقي حاجة غريبة بتحصل .. حاجة بسيطة لكن مهمة المصفوفة اللي كانت فارغة Empty من شوية ومفيش علامة زائد جنبها .. أصبح فيه علامة زائد على يسار اسم المتغير ولما نبص في عمود القيمة هنلاقي كلمة Empty أصبحت مش موجودة .. دا لأنها بعد الانتقال من السطر اللي فات بقت المصفوفة فيها قيم .. نبص للعمود الثالث هنلاقي بردو فيه شيء اتغير ..نوع المتغير لم يتغير زي ما هو Variant بس فيه شيء إضافي .. هتلاقي ما بين قوسين بداية المصفوفة ونهاية المصفوفة بمعنى آخر المصفوفة اللي بنتعامل معاها دلوقتي فيها 4 قيم .. ولما نبص نلاقي الأرقام من 0 إلى 3 (افتراضي المصفوفة بتبدأ من الرقم 0 وليس الرقم 1 ) الأرقام دي عبارة عن فهرس للمصفوفة (زي فهرس كتاب) يعني مثلاً أول قيمة في المصفوفة اللي هي Yasser لها الرقم 0 في الفهرس .. والقيمة Khalil ليها رقم 1 وهكذا لنهاية القيم كل عنصر داخل المصفوفة ليها رقم في الفهرس .. عايز تتأكد من كلامي تعال على نفسك شوية ونتعب ونضغط علامة الزائد اللي على يسار اسم المتغير (خلي الصورة تتكلم شوية عشان أنا تعبت) زي ما إحنا شايفين الفهرس من 0 1 2 3 وكل عنصر له رقم في الفهرس وله قيمة يعني دلوقتي لو عايز أعرف تاني قيمة في المصفوفة هعمل ايه؟ ببساطة ممكن استخدم كلمة Msgbox ثم اسم المصفوفة ثم افتح قوس ثم أضع رقم القيمة المطلوبة ثم اقفل القوس MsgBox myArray(1) واحد يقولي إنت مش بتجيب تاني عنصر في المصفوفة ..طيب ليه كتبت واحد مش 2 (أقوله لأن المصفوفة بتبدأ من الصفر وليس من الواحد ..) فالواحد بمثابة 2 (عد من البداية ::: رقم صفر هو أول عنصر في المصفوفة .. رقم 1 هو ثاني عنصر في المصفوفة وهكذا) المهم عشان أنا بدأت أتوه من نفسي ننتقل للحلقة التكرارية ودي بيكون ليها عداد زي ما قلنا والعداد هنا X فبنقول For X وبعديها علامة يساوي ... بعد يساوي بداية الحلقة التكرارية يليها كلمة To ثم نهاية الحلقة التكرارية بداية الحلقة هتكون أول رقم فهرس في المصفوفة اللي هو في مثالنا يساوي صفر ، ونهاية الحلقة التكرارية هو آخر رقم في الفهرس اللي هو 3 وبدل ما نكتب من 0 إلى 3 (استخدمنا دالة بتجيب أول رقم في المصفوفة واسمها LBound ودي اختصار لكلمة Lower Bound أي الحد السفلي أي أول رقم في الفهرس ... وأيضاً بالمثل استخدمنا دالة عشان تجيب آخر رقم في المصفوفة والدالة هي UBound ودي اختصار لكلمة Upper Bound أي آخر رقم في الفهرس) طيب العداد لازمته ايه ؟؟ قلنا بيحمل القيمة الحالية ..فأول قيمة عندي هتكون صفر بالتالي قيمة X هتساوي صفر .. إحنا دلوقتي واقفين في السطر الملون باللون الأصفر مع بداية الحلقة التكرارية لو وقفنا بالماوس على كلمة X سيظهر تليح صغير في مستطيل أصفر صغير به قيمة المتغير ( في الصورة قيمة X تساوي صفر) وهو أول رقم في الحلقة التكرارية لأن رقم البداية صفر (والمتغير X يحمل قيمة أول رقم في بداية الحلقة) المهم اضغط F8 لتنتقل للسطر التالي وعايز تروح بالماوس وتقف على الكلمة دي myArray(X) هتلاقي مربع أصفر فيه القيمة Yasser وروح للـ X وقف عليها ستجد القيمة صفر أي أن المصفوفة المسماة myArray ثم نفتح قوس ونضع رقم الفهرس المطلوب ورقم الفهرس هنا هو صفر ..يحمل القيمة Yasser اضغط F8 لتظهر لك رسالة بقيمة أول عنصر في المصفوفة .. اضغط F8 مرة أخرى لتنتقل للفة الثانية في الحلقة .. ولاحظ أن الانتقال بعد ذلك سيكون ما بين السطرين MsgBox (myArray(X)) Next X القيمة X تتغير ويتغير معها القيمة التي تظهر في الرسالة .. أكمل الضغط على F8 لترى نتائج الكود بنفسك ... وعينك دائماً على نافذة Local لترى قيمة المتغير X وهي تتغير مع كل لفة وطبعاً عند وصول قيمة X لـ 3 تنتهي الحلقة التكرارية لأن نهاية الحلقة هو الرقم 3 أتمنى أن يكون الشرح واضح ومفيد للجميع مع تحياتي أخوكم ياسر خليل أبو البراء1 point
-
السلام عليكم ورحمة الله وبركاته الموضوع هذا بدأ بسؤال الرابط التالي: http://www.officena.net/ib/topic/65783-البحث-عن-اي-جزء-من-الكلمة-عنوان-معدل/ ولكن لأني غيرت الكود وجعلته يبحث في اي عدد من الحقول في السجل ، لذا رأيت ان اجعل له موضوعا مستقلا يمكنك البحث عن اي جزء من الكلمة ، واذا اردت البحث عن كلمة اخرى في السجل او جزء منها ، فما عليك الا ان تضع (مسافة او / او *) بين الكلمات ، فسيعتبرها البرنامج على انها كلمة اخرى يجب البحث عنها. الشئ المهم في الكود هو طريقة إضافة حقول جديدة للبحث فيها: هذا اول حقل يتم البحث فيه fld = "[كلمات ارشادية]" لما نريد ان نضيف حقول إضافية للبحث فيها ، يجب ان يكون الكود كالتالي fld = fld & " & ' ' & " & "[موضوع الخطاب]" fld = fld & " & ' ' & " & "[my other field]" وكل ما عليك الآن هو ان تطبع وترى نتيجة بحثك: . ملاحظة مهمة: اذا كان برنامجك على الشبكة ، فلا تضع الكود على "حدث التغيير" (معناه ، كلما اضفت/حذفت حرف ، فارجع الى الجدول وخذ البيانات منه) ، لأنه سيجعل البرنامج جدا بطئ ، وانما استخدم زر البحث. جعفر 309.Search_as_you_Type_Multiple_Fields_jj.mdb.zip1 point
-
ما شاء الله عليك أخي رضا ، من وينك لك الوقت لكل هذه البرامج تفضل جعفر 316.students.accdb.zip1 point
-
أخي الكريم حامد (الغد المشرق) وربنا يستر وميحصلش إعصار بكرة وتطلع الدنيا برد وبرق ورعد ومطره وساعتها الشمس لن تشرق حدد النطاق A2:I2 ثم من التبويب Home روح لـ Conditioal Formatting أي التنسيق الشرطي انقر على الأمر New Rule من النافذة ثم ستظهر لكنافذة أخرى اختر منها آخر خيار ألا وهو Use a formula t determine which cells to format ضع المعادلة التالية في الحقل المسمى Format values where this formula is true =COUNTIF(2:2,A2)>1 انقر زر الأمر Format ثم ادخل على التبويب المسمى Fill واختر اللون المطلوب كما تريد أخيراً انقر أوك ثلاثة مرات .. إليك الملف المرفق بعد تطبيق الخطوات السابقة Highlight Duplicates In The Same Row Using Conditional Formatting.rar1 point
-
تفضل يا سيدي هذا الكود الذي يقوم بالعمل ، انا عملته على النقر المزدوج (مرتين) على حقل الاسم: Private Sub name_DblClick(Cancel As Integer) Dim rst As DAO.Recordset Set rst = Me.RecordsetClone rst.MoveLast: rst.MoveFirst RC = rst.RecordCount For i = 1 To RC If rst!print = -1 Then rst.Edit rst!print = 0 rst.Update End If rst.MoveNext Next i Me.[print] = -1 End Sub جعفر 315.11.accdb.zip1 point
-
المرفق غير معبر عن الطلب أخي الكريم حامد يرجى وضع بعض البيانات وتوضيح المطلوب بمثال أو مثالين هلا غيرت اسم الظهور للغة العربية؟ عموماً جرب الملف التالي عله يكون المطلوب شيت توزيع اللجان تجربة.rar1 point
-
سلمت اناملك وحفظك الله من كل مكروه انت رائع اشكرك على حسن اخلاقك وكريم خصالك1 point
-
تفضل يا سيدي نعمل ماكرو يشتغل عند تشغيل البرنامج ، ويجب ان يكون اسمه AutoExec ، هذا الماكرو نطلب منه تشغيل الوحدة النمطية Login_Form: . الوحدة النمطية Login_Form ، تقرأ قيمة الحقل Shall_I_Open من الجدول tbl_Shall ، فاذا كانت قيمته =-1 (True) ، فانه سيفتح النموذج frm_Log-n ، وإلا فانه سيفتح النموذج frm_Home : . عند اغلاق النموذج frm_Login ، فانه يغير قيمة الحقل Shall_I_Open من الجدول tbl_Shall ، الى القيمه =0 (False) . جعفر 314.form.accdb.zip1 point
-
بارك الله فيك أخي الغالي بن عليه لكم تعلمنا وما زلنا ننهل من علمك ..جزيت عنا خير الجزاء تقبل تحياتي1 point
-
جزاك الله خيراً أستاذي ياسر لقد راجعت التعليمات ووجدت أني أخطأت في كثير من الأمور منها 1) كثرة طلباتي في مضوع واحد 2) عنوان الموضوع لم يوضح ما هو المطلوب 3) عدم تنسيقي للنصوص مما يسئ للشكل العام للمنتدي 4) عدم بحثي عن مثال لمشكلتي واستفساري عذراً أساتذتي1 point
-
أخي الكريم حامد عشان متقولش إننا مقصرين معاك إليك الملف التالي مشابه لطلبك تقريباً .. Multiple Corresponding VLOOKUP Values Across Rows YasserKhalil.rar1 point
-
1 point
-
اخي عبدالرحمن شاهد التعديل وفي خانة الاجمالي ضع المعادلة التي تراها مناسبة واي ملاحظة تود عملها اخبرني بذالك اقبل تحياتي واحترامي لشخصك الكريم كشف حساب العميل تعديل 3.rar1 point
-
اخي عبدالرحمن اعذرني لم افهم طلبك جيدا حيث ان مجموع المبالغ الذي ذكرتها موجودة اصلا بالورقة وكذالك فورم ادخال البيانات مفعل اذا ممكن بعض التفصيل اكثر .1 point
-
أخي الكريم أبو يوسف إليك كود آخر أسرع في التعامل مع الملف حيث أنه يعتمد على المصفوفات Sub YasserReport() Application.ScreenUpdating = 0 Dim Arr, Xs$, Brr, Dc, Sn%, D As Object, DD As Object, TT(), SSS() Dim S As Worksheet Dim K, T, C, I As Long, J As Long Set D = CreateObject("scripting.dictionary") Set DD = CreateObject("scripting.dictionary") SSS = Array("المادة", "عدد الطلاب") Xs = ActiveSheet.Name For Each S In Sheets If S.Name <> Xs Then Arr = S.UsedRange: Dc = "" For I = 1 To UBound(Arr, 2) If Len(Arr(19, I)) = 0 Then Arr(19, I) = Arr(19, I - 1) If Len(Arr(21, I)) > 0 Then Dc = Dc & "|" & I Next Dc = Split(Dc, "|") ReDim Brr(1 To UBound(Arr) - 18, 1 To UBound(Dc)) For I = 19 To UBound(Arr) For J = 1 To UBound(Dc) Brr(I - 18, J) = Arr(I, Dc(J)) Next Next Sn = UBound(Brr, 2) - 1 For I = 3 To UBound(Brr) Step 2 For J = Sn - 2 To 1 Step -1 If Val(Brr(I, J)) Then D(Brr(I, Sn) & "|" & Brr(1, J)) = Brr(I, Sn) & "|" & Brr(1, J) & "|" & Brr(I, J) End If Next Next End If Next Debug.Print D.Count K = D.keys T = D.Items For Each C In K DD(Split(C, "|")(0)) = "" Next K = DD.keys ReDim TT(UBound(K)) With Sheets(Xs) [A1] = "اسم المدرسة" [A2].Resize(DD.Count, 1) = Application.Transpose(K) For I = 0 To UBound(K) TT(I) = Filter(T, K(I)) For J = 0 To UBound(TT(I)) Cells(I + 2, J * 2 + 2) = Split(TT(I)(J), "|")(1) Cells(I + 2, J * 2 + 3) = Split(TT(I)(J), "|")(2) Next Next I = [A1].CurrentRegion.Columns.Count For J = 2 To I Step 2 Range(Cells(1, J), Cells(1, J + 1)) = SSS Next Application.ScreenUpdating = 1 End With End Sub وإليك الملف المرفق الأخير Grab Data From Sheets Colored In Red Or White YasserKhalil V2.rar1 point
-
1 point
-
الله ينور ابو يوسف ياغالي شغل عالي وبعدين اهم حاجه في ملفاتنا اللمسه الجمالية اللي فيه هي اللي بتجذب المستخدم ليها تصميم رائع تقبل مروري المتواضع1 point
-
السلام عليكم ورحمة الله وبركاته أخي الحبيب ياسر أبو البراء مروركم شرف لي أخذت برأيكم وآخذ بنصيحتكم أما عن التنسيقات فهي ضرورة وهذا حديث شريف يرينا التكامل بين حسن المظهر وطيب المخبر: حديث ابي موسى الأشعري حين قال للنبي (لو علمت أنك تستمع لحبرته لك تحبيرا) في الرد على قول النبي حين قال:لو رأيتني وأنا أستمع لقراءتك البارحة والسلام عليكم ورحمة الله وبركاته.1 point
-
السلام عليكم ورحمة الله أخي الكريم، اكتب المعادلة بالشكل التالي: =INDIRECT(B2&4)*30% وبإذن الله يكون ما تريد... بن علية1 point
-
1 point
-
السلام عليكم ورحمة الله وبركاته إخوتي الكرام أحببت أن آخذ رأيكم بتنسيق الخلايا حيث يمكننا عرضها مثل أدوات اليوزر فورم بشكل يظهر قريباً من ثلاثي الأبعاد بارزاً أو غائراً لا تؤاخذونني ولكن محبة بكم وبمساهماتكم ...صحيح أنه ليس على مستوى أطروحاتكم ولكن أرى أنه يلزمنا لتظهر أوراقنا الإلكترونية بأبهى حلة والسلام عليكم تنسيق خلايا.rar1 point
-
وعليكم السلام ورحمة الله أبا الحسن والحسين مرورك بالموضوع شرف كبير لي .. فقد عطرته بردك بارك الله فيك وجزاك الله خيراً على دعائك الطيب1 point
-
أخي الكريم رجاء لا تقوم بطرح أكثر من موضوع لنفس الطلب بالنسبة للصور زيها زي أي ملف ..انقر على كلمة "اختر ملف" وحدد الصورة من غير ما تضغطها ، وبعد ما ترفع الصورة هتلاقي علامة زائد وتلميح بيقولك أضف الصورة للمشاركة بالنسبة لمشكلتك . ارفق الملف الذي به المشكلة .حتى لا ندخل في دائرة تحمينات كما يرجى ذكر النسخة التي تعمل عليها وهل هي 32 بت أو 64 بت ؟ وذكر نسخة الويندوز التي تعمل عليها وهل هي 32 بت أم 64 بت؟1 point
-
اخي لا يوجد بالملف اي شئ وبعدين ملفات الxlsx لا تحوي اي اكواد ماكرو كفورمات او اكواد وغيرها حيث انها غير داعمة للماكرو تاكد من رفع الملف المطلوب1 point
-
أخي الحبيب أبا الحسن والحسين كود رائع وجميل وإن لم يكن مكانه في الموضوع لكنني استفدت منه كثيراً بالنسبة للسائل يريد التعامل مع زر Command Button على الفورم قمت بعمل ملف إن شاء الله يعجبكم لكنه به مشكلة بسيطة بحاول أحلها لنا عودة إن شاء الله1 point
-
1 point
-
سؤال الاخ احمد كان كلمات متقاطعة ، فحاولت احلها من الكود ولما كود ADO ما وصلني مكان ، التجأت الى DAO بس ياريت تكمل الكود ، لأني اعتقد بأن الاخ أحمد عنده اسئلة لاحقه لسؤاله الاصلي ، وكودك حيكون اول خطوة للجواب التالي جعفر1 point
-
أخي الكريم مهند جرب الكود التالي عله يفي بالغرض - مع العلم أنه تم تقديم نفس الكود تقريباً في موضوعك السابق على هذا الرابط من هنا Sub SortData() Dim WS As Worksheet Dim LR As Long Set WS = Sheets("Sheet1") With WS LR = .Range("B" & Rows.Count).End(xlUp).Row - 1 .Range("B1:D" & LR).Sort Key1:=.Range("C1:C" & LR), Order1:=xlAscending, Header:=xlYes End With End Sub Sorting.rar1 point
-
1 point
-
الحمد لله الذي تتم الصالحات على يديه اشكرك اخي الكريم على كلماتك ودعائك الكريم.1 point
-
اخي موسى ... اذا كان قصدك انت تختار الاصناف يدويا , فعليك : 1- عمل حقل بالجدول نوع نعم / لا 2- عمل استعلام مبني على الجدول بشرط على الحقل نعم / لا و الشرط هو نعم فقط 3- عمل التقرير مبني على الاستعلام فعند فتح الجدول اختر الاصناف التي تريد ظهورها في التقرير بوضع علامة صح في حقل نعم / لا1 point
-
أخي الكريم ابن الملك (منقول أمير الإكسيل وخلاص) بارك الله فيك وجزاك الله خيراً على الموضوع الرائع والمفيد للجميع في انتظار المزيد من ابداعاتك .. لي ملحوظة صغيرة حاول تدي الموضوع حقه من حيث التنسيق والتفاصيل وكدا يعني بس خلاص1 point
-
الله يحفظكم أتابع ردودكم وأحاول الفهم أكثر لكن مازلت لدي نفس المشكلة أريد التفسير أكثر وللعلم أنا أعمل على أكسيس 2007 بنسخة فرنسية ولكم جزيل الشكر1 point
-
السلام عليكم اضغظ على زرطباعة ستختفى الصفوف التى بها اصفار في ورقة الطباعة (الكود من ابداعات الافاضل في اوفيسنا حفظهم الله جميعا) بيان الدخل.rar1 point
-
وعليكم السلام استعملت: ---------------------------------------------- 3. اعمل وحدة نمطية ، مثلا function make_shortcut() الكود يأتي هنا end function ثم اعمل ماكرو ، واطلب من الماكرو ان: شغل الكود make_shortcut شغل النموذج الفلاني ---------------------------------------------- فك المرفق في مجلد واحد ، وافتح البرنامج بطريقة عادية ، واغلق البرنامج ، سترى الاختصار على سطح المكتب ، ومن الان فصاعدا استخدمه للدخول لبرنامجك وكلما حذفت الاختصار ، سيتكون من جديد جعفر Export to Excel And Make Dektop shortcut.zip1 point
-
الأستاذ / أبو علي السلام عليكم ورحمة الله وبركاته إليك الملف لعله المطلوب . 000011.rar1 point
-
1 point
-
1-حساب راتب الموظف الحالي ااذا علمت ان الموظف يحصل على زيادة في الراتب قدرها 9% كل عامين 2- في عام 2000 حصل الموظف على زيادة اولى في الراتب مقدارها 50% من راتبهم الحالي فكم يكون الراتب 3-في عام 2011 حصل الموظف على زيادة ثابتة في الراتب مقدارها 25% من راتبهم الحالي فكم تكون 4- حساب عمر الموظفين بالسنوات 5- حساب عدد الموظفات الاناث 6- حساب مجموع رواتب الموظفين الذكور من بداية التعيين 7- التمثيل البياني لنسبة عدد الذكور الموظفين والموظفات الاناث بالنسبة للعدد الكلي للموظفين في الشركة 8- رسم الخط البيانيلرواتب للذكور والخط البيانيلرواتب للاناث والمقارنة بينهما 9- تحديد تاريخ الترفيعة المقبلة لكل الموظفين اذا علمت ان الترفيع يحصل للموظف كل عامين1 point
-
الدخول الى اكسس 2007 - في اقصى اليمن يوجد شعار ماكروسوفت اوفيس - في الاسفل يوجد خيارات Access - قاعدة البيانات الحالية - عرض النموذج( اختيار نوع الفورم المطلوب )1 point
-
وعليكم السلام ورحمة الله لعمل المطلوب أتبع الخطوات الآتية : 1. قم بإنشاء وحدة نمطية وضع فيها الكود الآتي وخزنها في أي أسم تريد '---------------------------------------------------------------------' ' Module: DisableShiftKey ' ' Date: July 18, 2003 ' ' ' ' Purpose: To stop the user from holding the shift key on startup to ' ' access the database window. ' '---------------------------------------------------------------------' Option Compare Database Option Explicit '---------------------------------------------------------------------- Function ChangeProperty(strPropName As String, varPropType As Variant, varPropValue As Variant) As Integer Dim dbs As Object, prp As Variant Const conPropNotFoundError = 3270 Set dbs = CurrentDb On Error GoTo Change_Err dbs.Properties(strPropName) = varPropValue ChangeProperty = True Change_Bye: Exit Function Change_Err: If Err = conPropNotFoundError Then ' Property not found. Set prp = dbs.CreateProperty(strPropName, _ varPropType, varPropValue) dbs.Properties.Append prp Resume Next Else ' Unknown error. ChangeProperty = False Resume Change_Bye End If End Function '---------------------------------------------------------------------- Function BypassKey(onoff As Boolean) Const DB_Boolean As Long = 1 ChangeProperty "AllowBypassKey", DB_Boolean, onoff End Function '----------------------------------------------------------------------- 2. قم بإنشاء ماكروات جديدة هي : اسم الماكرو الأول: ByPassKeyOff الإجراء: Runcode الإقتران: BypassKey(False) اسم الماكرو الثاني: ByPassKeyOn الإجراء: Runcode الإقتران: BypassKey(True) 3. نموذج الدخول للنظام الخاص بك قم بإنشاء مستطيل بدون إطار ولون خلفية نفس خلفية النموذج أو إذا كان عندك صورة في نموذج الدخول يمكن استخدامها مكان المستطيل وعرف حدث عند النقر وقم باختيار الماكرو ByPassKeyOn. 4. قم بتشغيل المكرو ByPassKeyOff خزن وأخرج من قاعدة البيانات. 5. الآن عندما تدخل إلى قاعدة البيانات وأنت ضاغط على Shift لن تظهر لك نافذة قاعدة البيانات . لإظهار قاعدة البيانات اضغط بالماوس حيثما وضعت المستطيل المخفي أو الصورة ثم أعد تشغيل القاعدة مع shift ستظهر ولإعادة المنع كرر الخطوة رقم 4. وتعتبر هذه إحدى طرق الحماية لقاعدة البيانات . أملا لك التوفيق في المحاولة مع وافر الاحترام1 point
-
النقاء ، يجب أن يتم تتبع هذه الإجراءات حيثما تطلب بحيث يسجل لكل عملية تتم سواءً اضافة أو حذف أو تعديل بجدول خاص يمكن أن يكون كما يأتي اسم المستخدم ، التاريخ ، الوقت ، الجدول ، العملية ، تقاصيل وفي حقل التفاصيل يمكن اضافة تفاصيل أكثر عن كل عملية حسب الحاجة بالطبع لتنفيذ هذه الطريقة يجب أن يكون البرنامج مجهزا بشاشة دخول للمستخدمين لمعرفة من هو المستخدم الذي قام بالتغيير رغم أن الموضوع كبير وقد يبدو صعباً إلا انه يمكن تطبيق ذلك إذا كانت الحاجة موجودة له. تحياتي1 point
-
Dear Sir, May peace and God's mercy and blessings Have found it appropriate that I thank myself, as a large number of participants in this forum have thrown the file on the allegation. But unfortunately I did not find one I had a Turkish flag was something in the file, or even participated in the voting. I thank you and appreciation For owners of the site and the participants. السلام عليكم ورحمه الله وبركاتهقد وجدت انه من الواجب ان اقوم بشكر نفسي ، حيث ان عدد كبير من المشتركين في هذا المنتدي قاموا بتحميل الملف الخاص بمشاركتي. ولكن للأسف لم اجد احد قد تركي لي ماهو رايه في الملف ، ولا حتى شارك في التصويت. ولكم جزيل الشكر والتقدير لاصحاب الموقع والمشاركين.1 point