نجوم المشاركات
Popular Content
Showing content with the highest reputation on 04/03/16 in all areas
-
السلام عليكم ورحمة الله وبركاته دليل الهاتف بطريقه سهله وبسيطه صدقه جاريه ونسالكم الدعاء لابي وامي اللهم اجعله في ميزان حسناتهم واغفر لهم وارحمهم واسكنهم فسيح جناتك والرحمه والمغفره لجميع موتى المسلمين دليل الهاتف (هاني ).rar3 points
-
114 _ دورة كاملة في المصفوفات Arrays من البداية إلى ما شاء الله (الحلقة الأولى) _ الاستاذ / ياسر خليل أبو البراء 115 _ دورة كاملة في المصفوفات Arrays من البداية إلى ما شاء الله (الحلقة الثانية) _ الاستاذ / ياسر خليل أبو البراء3 points
-
http://im40.gulfup.com/Ltirv.jpg هذا الكتاب يعد اول كتاب باللغه العربية لتعلم لغه ال VBA http://im35.gulfup.com/saxzs.png يتناول الكتاب ما يلى:- ❑ تخزين المعلومات في المتغيرات والمصفوفات ❑ صنع القرار في التعليمات البرمجية ❑ الحلقات ❑ معالجة الأخطاء ❑ اليوزر فورم رابط التحميل http://www.mediafire.com/download/dj01xxwnczia62k/VBA+Excel.rar (هذا الكتاب يعد عمل مترجم ولا يعبر عن فكر شخصى إلا فى اجزاء منه)2 points
-
السلام عليكم ورحمة الله وبركاته إخواني في الله الموضوع ليس جديد وقد تم طرح الكود في مشاركات فرعية بموضوعات مختلفة بالمنتدى ، ولكن لأهميته رأيت ان أقوم بطرح موضوع مستقل ليسهل الوصول إلى الموضوع باستخدام خاصية البحث في المنتدى فكرة الكود هي استخراج القيم الغير مكررة أي استخراج القيم الفريدة في نطاق محدد .. والكود مشروح لمن أرد الشرح لعل وعسى أن يتعلم الجميع كيفية استخدام الأكواد بشكل جيد وهذا هو الكود مصحوب بالشرح ... أرجو أن ينال إعجايكم Sub UniqueByDictionary() 'يقوم الكود باستخراج القيم الفريدة أي الغير مكررة باستخدام الكائن قاموس '---------------------------------------------------------------------- 'المتغير الأول لتخزين قيم النطاق والمتغير الثاني لتخزين مفاتيح القاموس 'الثالث متغير للكائن القاموس والرابع متغير يستخدم في عمل حلقة تكرارية Dim myData As Variant, Temp As Variant Dim Obj As Object, I As Long 'ليساوي الكائن المسمى القاموس والذي يعتبر أداة قوية للتعامل مع القيم الفريدة [Obj] تعيين المتغير Set Obj = CreateObject("Scripting.Dictionary") 'ليساوي قيم النطاق في العمود الأول [myData] تعيين المتغير myData = Range("A2:A" & Cells(Rows.Count, 1).End(xlUp).Row).Value 'حلقة تكرارية تبدأ من أول عنصر في مصفوفة القيم إلى آخر عنصر في المصفوفة For I = 1 To UBound(myData) 'هذا السطر هو أهم سطر في الكود حيث يتم تمرير القيمة للقاموس 'فيقوم القاموس بتخزينها إذا كانت القيمة تصادفه لأول مرة 'أما إذا كانت القيمة مكررة فلا يقوم بتخزينها مرة أخرى Obj(myData(I, 1) & "") = "" Next I 'ليساوي مفاتيح القاموس والتي تمثل القيم الغير مكررة [Temp] تعيين المتغير Temp = Obj.Keys 'حيث يتم تحديد عدد الصفوف [E1] وضع عناصر القاموس الغير مكررة في الخلية 'والتي تقوم بعد عناصر القاموس التي تم تخزينها [Count] من خلال كلمة 'عبارة عن مصفوفة بالقيم تكون على شكل أفقي لذا نستخدم [Temp] المتغير 'لتحويل القيم من الشكل الأفقي إلى الشكل الرأسي ليناسب وضع النتائج في عمود [Transpose] كلمة Range("C1").Resize(Obj.Count, 1) = Application.Transpose(Temp) End Sub وإليكم الملف المرفق مطبق فيه الكود مع مثال بسيط حمل الملف من هنا تقبلوا تحياتي2 points
-
السلام عليكم ورحمة الله وبركاته إخواني الكرام في منتدى أوفيسنا رغم قلة التفاعل في الموضوعات التي تقدم ، ولا أقصد بالتفاعل الردود العادية ، إنما أقصد المشاركة بالبحث والنقد والتفنيد والتفحيص والتدقيق والتمحيص والإضافة ...رغم قلة التفاعل أقدم كل يوم موضوع جديد لعل وعسى أن يأتي أناس من بعدنا ليستفيدوا مما نقدم ويكون المنتدى لهم نبراساً يستنيرون به في هذا المجال أقدم لكم موضوع حول إدراج أسماء الشهور بكل اللغات .. إليكم الكود التالي ، قم بوضع الكود في موديول عادي ... ثم نفذ الكود ولاحظ النتائج بنفسك Sub ListMonthsInAllLanguages() 'يقوم الكود بإدراج أسماء شهور السنة بكل اللغات '--------------------------------------------- Dim R As Long, C As Long Dim strDate As Date Dim S, bFind As Boolean Application.ScreenUpdating = False For R = 1 To 12 For C = 1 To 99 strDate = CDate("01/" & Format(R, "00") & "/2015") S = "[$-4" & Format(C, "00") & "]MMMM" Cells(R, C).NumberFormat = S Cells(R, C).Value = strDate Next C Next R Columns.AutoFit Application.ScreenUpdating = True End Sub أرجو أن ينال الملف والموضوع إعجابكم وتستفيدوا منه إن شاء الله حمل الملف من هنا تقبلوا تحياتي كان معكم أخوكم أبو البراء2 points
-
2 points
-
هدية جميلة ورائعة من أخ رائع ومتميز بارك الله فيك أخي الحبيب عبد العزيز .. متمكن في التعامل مع الفورم جزيت خيراً وجعل الله أعمالك في ميزان حسناتك يوم القيامة2 points
-
اخى الكريم اهلا بك فى منتدانا الغالى يرجى تغيير اسم الظهور الى اللغه العربيه ان لم تعرف الطريقه ادخل للرابط التالى http://www.officena.net/ib/topic/63020-توجيهات-للأعضاء-لمعرفة-كيفية-التعامل-مع-المنتدى-بشكل-أفضل/ تقريبا البند رقم 10 بالنسبه لسؤالك ماكرو ولا vba ان كان vba فيمكنك انشاء ملفك على الاكسيل الاونلين وعمل الاكواد هناك ممكن تدخل عن طريق ايميل gmail او الهوتميل للجداول الالكترونيه انظر الى الصوره لما تضغط على محرر النصوص البرمجيه هفتحلك صفحه تانيه تكتب الاكواد بتاعتك هذا والله اعلى واعلم2 points
-
أخي العزيز أبو عبد الواجد وعليكم السلام ورحمة الله وبركاته إليك ما طلبت إن شاء الله ستجد في موديول ورقة العملاء الكود المطلوب ..بمجرد كتابة اسم العميل سيتم نسخ ورقة العمل المسماة "الديباجة" ووضع اسم العميل في الخلية A2 .. حمل الملف من هنا تقبل تحياتي2 points
-
السّلام عليكم و رحمة الله و بركاته أخي الغالي " محمّد حسن المحمّد " لا أفهم بمواضيع الحسابات و المخازن .. لكن أردت المشاركة بالموضوع .. فكانت هديّتي بالملف المرفق .. فائق إحتراماتي تصفية متقدمة لعدة معايير بين تاريخين.rar2 points
-
جزاكم الله كل خير حبايبي الغاليين المهم نخش بقي في الجد ونشوف التطبيق الفعلي منكم تقبلو تحياتي2 points
-
اخى الفاضل قم بتحديد التكست بوكس واحد ( الخاص بالبحث من خلال الاسم ) واضغط دبل كليك ستيدخلك محرر الاكود الخاص بحدث التغيير هتلاقى السطر ده Set Q = .Range("A2:A" & LastRow).Find(M) كل ما عليك فعله تغيير A2 بــ A1 كالتالى Set Q = .Range("A1:A" & LastRow).Find(M) تقبل تحياتى2 points
-
ربنا يعزك ويجازيك كل خير ونعوذ بالله العلى العظيم من كل شيطان رجيم نسال الله ان يحفظكم ويبارك فيكم ويهديكم الصراط المستقيم تحياتى وتقديرى لكم اساتذتى الكرام2 points
-
اخى فى الله حسام حاسس انك زعلان منى ووالله انا لم اقصد اى شىء غير انه حتى لو لم يتم التفاعل من الاعضاء فلا يؤثر على من يقوم بالرد عليهم بالحل او موضوع تعليمى فهو ينتظر الجزاء من الله وإلا لن يكلف نفسه عناء الجلوس لكتابة موضوع او رد على استفسار فارجو منك مسامحتى ان كنت زعلتك بغير قصد وانا اخوك الصغير واعتذر منك ومن ابوالبراء ومن جميع الاساتذه والاخوان الافاضل وجزاكم الله خيرا تقبلوا تحياتى واحترامى واعتذارى2 points
-
أخي الحبيب حسام عيسى ما زلت عند قولي أني متضايق من قلة التفاعل فأنا لم أنكر قولي .. ولكن لا أريد مناقشات كما ذكرت تضيع الوقت ولا تجدي .. ولن أحذف المشاركات لأن ذلك يحزن الأعضاء ، فدع النقاش ولكن يجب أن نضع نهايةً له حيث لا جدوى منه وربما يأتي بعواقب غير محمودة وأنا أتفق معك في عدم التفاعل مع الأعضاء الغير فعالين في المنتدى لأنه يوجد الكثير منهم لا يبحث إلا عن حلول لمنفعة شخصية وحسب ، وربما منهم من لديه علم ويبخل به على إخوانه بالمنتدى ، وهذا النوع من الأشخاص أكثر ما يضايقني بالمنتدى تقبل تحياتي (ومتزعلش يا حوسو وآدي راسك أبوسها )2 points
-
ربما ينفع هذا الكود Option Base 1 Sub rep() Dim mar() mar = Array("1", "2") For a = LBound(mar) To UBound(mar) u = mar(a) For b = LBound(mar) To UBound(mar) v = mar(b) For c = LBound(mar) To UBound(mar) x = mar(c) For d = LBound(mar) To UBound(mar) t = mar(d) Cells(m + 1, 1) = u & v & x & t m = m + 1 Next: Next: Next: Next End Sub2 points
-
السلام عليكم ورحمة الله وبركاته أخي وأستاذي الكريم خالد الرشيدي المحترم بما أنك أهديته لوالدتك الكريمة فإنني أدعو الله تعالى أن يتغمدها برحمته وأن يجعلها ووالديّ وأموات المسلمين أن يجعل كتابهم في عليين وأن يجعلهم من أهل جنات النعيم ..آمين. أما أنت - فإنني أقول كلمة الشكر لا تفيك حقك وجزاء تعبك ...فإنني أقول - جزاكم الله خيراً وأثابكم على هذه الأعمال البديعة - والتي أرجو أن تكون أثراً صالحاً تتداوله الأجيال القادمة بشغف والسلام عليكم.2 points
-
إخواني الكرام أعتذر عن ردي الأول في الموضوع .. أنا كنت أمزح ولا شيء آخر ..صحيح متضايق من قلة التفاعل في الموضوعات ، ولكن هذا لن يمنعني إن شاء الله من السير قدماً ، لربما يأتي من بعدنا من يستفيدون بهذا العلم ويفيدون غيرهم ونعوذ بالله من أن نغتر بعلم وصلنا إليه .. وأين ذاك العلم ؟؟ ما أقدمه مجرد قشور .. ولا تتعجبوا من كلامي هذا .. فأنا عندما أصبحت بروفسيور في هذا المجال في الوطن العربي انتقلت للمنتديات الأجنبية وشعرت بأنني ما زلت في مرحلة ما قبل دخول المدرسة فبدأت أنهل من علمهم وأبحث وأسأل وأستزيد ، ولربما كنت أعرف الإجابات في كثير من الأحيان ورغم ذلك أسأل لأستزيد وأستفيد ، ثم أنقل هذا العلم لإخواني لنرتقي سوياً وننافسهم في هذا المجال وأنا لا أنتظر الشكر من الناس ..كلا والله .. فإني آمل الأجر من الله قبل أي شيء آخر .. وما قصدته هو أنني لا أريد مجرد رد عابر بالموضوع وانتهى الأمر عند هذا الحد .. بل أريد تفاعل وإضافة ومشاركة وبحث و و و و إلى آخر تلك المشاركات الفعالة التي تثري الموضوعات وتفيد الجميع بما فيهم صاحب الموضوع نفسه .. ولذا قمت بتخصيص موضوع من 5 أسابيع للبحث وتركت المجال للجميع أن يقدم ويبحث ويناقش .. هذا ما أتمناه .. وفي النهاية أرجو ألا يحمل أحدكم في قلبه شحناء ولا بغضاء ولا كراهية ولا حسد ولا حقد لأي أحد من أعضاء المنتدى ، فكلنا أخوة في الله يجمعنا الحب في الله ، ولا تجمعنا منفعة أو مصلحة شخصية تقبلوا وافر تقديري واحترامي2 points
-
اخي ياسر يسرني ان أقوم بتقديم أول الحلول Permutation.rar2 points
-
في الحقيقة تشرفت بمعرفة الكثير من الأعضاء في هذا المنتدى، والذي مالمست منهم إلا كل خير، أقترح من أعضاء المنتدى بتفعيل الأنشطة الإجتماعية الحقيقية ، فمثلا أدعو زملائي إلى المشاركة بحفل شواء أو منتدى أو رحلة أو برنامج رياضي كل بحسب تواجده، حيث سنتفق على المكان والزمان ونوع النشاط عسى أن يكون ذلك إضافة قيمة للمنتدى . وشكــــــــــــــــــــــــــراً1 point
-
1 point
-
أخي الكريم قم بإدراج موديول جديد وضع فيه الكود .. ثم قم بالضغط على Alt + F8 واختر الإجراء المسمى Test ثم انقر على زر الأمر Run .. لا تضع الكود في موديول ورقة العمل .. ولا تطلب أن يتم تنفيذ الكود بمجرد إحداث تغيير لأن كثرة التعامل مع أحداث التغير في ورقة العمل تثقل الملف بدون داعي تقبل تحياتي1 point
-
قاعدتى البيانات لم تفتح عى1 point
-
السلام عليكم ورحمة الله معذرة... تم تعديل المعادلات لتصحيح الخطأ... بن علية خلاصة بمشتريات الزبون - جمع تلقائي.rar1 point
-
لحساب عمر الجهاز هي حساب الفرق بين تاريخين ضع هذا الكود في وحدة نمطية ثم استخدمه في مربع نص ضمن النموذج المطلوب وسيعطيك عمر الجهاز بالسنة والشهر واليوم طبعا الحساب سيكون من تاريخ بدء العمل الى تاريخ اليوم Function dat(bir As Date) If IsNull(bir) = True Then dat = Format("00", "00") & "-" & Format("00", "00") & "-" & Format("00", "00") Else Dim nday As Integer, nmon As Integer, nyea As Integer Dim bday As Integer, bmon As Integer, byea As Integer bday = Day(bir) bmon = Month(bir) byea = Year(bir) nday = Day(Date) nmon = Month(Date) nyea = Year(Date) If bday > nday Then nday = nday + 30 nmon = nmon - 1 End If If bmon > nmon Then nmon = nmon + 12 nyea = nyea - 1 End If Dim dd, mm, yy dd = nday - bday mm = nmon - bmon yy = nyea - byea dat = Format(yy, "00") & "-" & Format(mm, "00") & "-" & Format(dd, "00") End If End Function1 point
-
أخي الكريم أنس يمثل الرقم 9 عدد الصفوف التي تسبق أول صف به معادلات جرب الملف المرفق التالي عله يفي بالغرض حمل الملف من هنا1 point
-
السلام عليكم حفظك الله - زادك الله من فضله - جزيت خيرا اشكرك استاذ ياسر نفع الله بك - وسلمك من كل مكروه1 point
-
1 point
-
السلام عليكم ورحمة الله وبركاته اخي الحبيب استاذ ياسر تاهت مني الكلمات امام كلماتك الرائعه و اتمنى ان اكون عند حسن ظن الجميع زادكم الله من فضله وعلمه وجعلكم دائما عونا للمحتاجين والسائلين تحياتي وتقديري لكل مجهوداتكم المحموده السلام عليكم ورحمة الله وبركاته الشكر والتقدير لمروركم الطيب تحياتي اخي الكريم1 point
-
أخي الكريم عزيز عرابي إليك ما طلبت في الملف المرفق (سيستغرق الأمر دقيقة واحدة منك) حمل الملف من هنا1 point
-
السّلام عليكم و رحمة الله و بركاته تمام التّمام .. و الحمد لله فعلاً ملف رائع و عمل متقن جزاك الله خير الجزاء و نفع بك الاسلام و المسلمين و زادك من علمه و فضله اللهم إجعل هذا العمل صدقة جارية على روح والديك الكريميْن .. اللهم إغفر لهما و ارحمهما برحمتك الواسعة و أسكنهما فسيح جنّاتك .. و لجميع موتى المسلمين اللّهم آمين خالص تحيّاتي1 point
-
اخى وحبيبى الاستاذ احمد مفيش زعل والله الحمد لله لحظة شيطان تملك منا وراحة الحمد لله تقبل منى كل حب و احترام وتقدير1 point
-
شكرا لاستاذنا القدير الصقر على مجهودكم الجبار والرائع نسأل الله تعالى ان يوفقكم في خدمة المنتدى واعضاءه وان يجزيكم بالخير والبركة على احسانكم هذا1 point
-
يا لطيف !!!!!!!! ما قلنا نحن نطبق على شرط عادي ليس للفلاش دخل فيه بعدين فتح f1 وهذا يعني ان الشرط صحيح والمثال اشتغل المطلوب منك انك تزيد او تنقص في الرقم الموجود داخل الوحدة النمطية العامة ثم تجرب لندع الامثلة السابقة كلها الآن جرب اكتب رقم فلاشك في مكانه المخصص في المثال المرفق ثم افحص المثال TG2.rar1 point
-
أخي الكريم ابن بنها أول سطر طويل لأنه يحتوي على اسم الإجراء الفرعي وهذا الإجراء لا يطبق بشكل مباشر بل يتم استدعائه من إجراء آخر (مثل الدوال المعرفة) ولذا تجد السطر طويل ويحتوي على بارامترات أي مدخلات يقوم المستخدم بإدخالها .. والمدخلات هي رقم الصف المراد نسخه ورقم آخر عمود تريد التعامل معه .. لاحظ الإجراء الفرعي المسمى DoIt ستجد الأسطر تعتمد على هذا الإجراء الفرعي الأول المسمى CopyRow .. بالنسبة للخاصية Resize قم بالدخول عى فهرس الموضوعات الخاصة بي وابحث عن الموضوع الذي يشرح الخاصية بالتفصيل ..ابحث عن كلمة Resize لكي تجد الموضوع بشكل أسرع رابط فهرس الموضوعات من هنا ادرس الكود بشكل جيد وإذا صادفك أي سطر غير مفهوم فلتخبرنا به وإن شاء الله نفيدك بقدر ما نستطيع تقبل تحياتي1 point
-
السلام عليكم اشكر اخي العزيز ياسر خليل أبو البراء الحمد لله تم التغلب على المشكلة وايجاد الحل باستخدام الصيغة IF(B4<573000;CalTh(B4;C4;D4;E4;F4);CalTh2(B4;C4;D4;E4;F4))= وجاري العمل لاكمال الدالة الثانية.1 point
-
السلام عليكم ورحمة الله وبركاته إخواني وأحبابي في الله أعتقد أن الوقت الذي انقضى على الحلقة الأولى من هذه الدورة الخاصة بالمصفوفات يكفي وزيادة ، وأعتذر عن التأخر في مواصلة الدورة ، فأنتم تعرفون مشاغل الحياة .. رابط الحلقة الأولى نبدأ على بركة الله الحلقة الثانية من حلقات "دورة كاملة في المصفوفات" ، ويا ريت اللي لسه أول مرة يشوف الموضوع ، إنه يقرا الحلقة الأولى عشان يقدر يتواصل معانا .. مش عايزين نكرر المعلومة إلا للضرورة ، وعشان يقدر يتابع الجديد (دا لو فيه متابعين من الأساس) هنبدأ نتكلم عن أنواع المصفوفات : فيه نوعين النوع الأول وهو المصفوفة الثابتة يعني لها أبعاد ثابتة مش بتتغير والنوع الثاني وهو المصفوفة الديناميكية يعني غير الثابتة ودي بيتم تحديد أبعادها أثناء عمل الكود ، وممكن تتحدد في أول الكود بأبعاد محددة ، وممكن تغيرها أثناء الكود إذا لزم الأمر ... الإعلان عن المصفوفة الثابتة -------------------------------- دا مثال لأكثر من طريقة للإعلان عن المصفوفة الثابتة المحددة الأبعاد ..نشوف الكود ونضع مؤشر الماوس داخل الكود ومن لوحة المفاتيح زي ما اتعلمنا نضغط F8 ونروح نبص على نافذة اللوكال Sub DecArrayStatic() Dim arrMarks1(0 To 3) As Long Dim arrMarks2(3) As Long Dim arrMarks3(1 To 5) As Long Dim arrMarks4(2 To 4) As Long End Sub نمسك سطر سطر عشان نفهم إزاي بيتم الإعلان .. السطر الأول بعد ما كتبنا اسم المتغير (اللي هو من النوع مصفوفة) بين قوسين كتبنا من 0 إلى 3 أي أن فهرس المصفوفة سيكون عبارة عن 0 ، 1 ، 2 ، 3 .. السطر الثاني زي الأول بالضبط بمعنى إن الفهرس عبارة عن 0 ، 1 ، 2 ، 3 .. طيب ليه؟ لأن الافتراضي للمصفوفات إن الفهرس بيبدأ من الرقم صفر .. بكدا نفهم إزاي نتعامل : يا إما أحدد بداية الفهرس ولو حددتها صفر أو سبتها من غير ما أحدد البداية يبقا النتيجة واحدة السطر الثالث بداية المصفوفة 1 ونهايتها 5 أي 5 عناصر داخل المصفوفة السطر الرابع بداية المصفوفة 2 ونهايتها 4 أي عدد العناصر 3 عناصر .. نفهم من الأسطر دي إن فيه مرونة كبيرة في التعامل مع المصفوفات يعني ممكن أبدأ من أي رقم وأنتهي بأي رقم (منتهى المرونة ... بس مش مرونة بشكل كبير) ..دا لأن عملياً صعب أحدد أبعاد المصفوفة ، لأن من خصائص البيانات إنها متغيرة ، فلو مثلاً عندنا مدرسة لها قاعدة بيانات ، فالقاعدة متغيرة .. عدد الطلاب مش ثابت (طالب حول من المدرسة - طالب حول إلى المدرسة) بالتالي العدد غير ثابت ، ومن هنا لازم نتعلم النوع التاني من المصفوفات اللي هو الديناميكي أي المرن أي الغير ثابت الإعلان عن المصفوفة الديناميكية ------------------------------------- هنا بيتم الإعلان عن مصفوفة غير محددة الأبعاد ، ويمكن بعد كدا من خلال الكود تحديد أبعادها باستخدام كلمة اسمها ReDim .. Sub DecArrayDynamic() Dim arrMarks() As Long ReDim arrMarks(0 To 5) End Sub السطر الأول فتحنا قوس وقفلناه بعد اسم المتغير وبس .. بكدا وببساطة أعلنا عن المصفوفة الديناميكية .. وفي السطر الثاني لو حبيت أحدد أبعادها بستخدم الكلمة ReDim ويمكنك تحديد أبعادها اعتماداً على نطاق ديناميكي .. مثال : لو عندك طلاب وقلنا إن عددهم غير ثابت ، يبقا بتعلن عن المصفوفة وتخليها من النوع الديناميكي واثناء الكود بتشوف عدد الطلاب من خلال أسطر أخرى ، وعلى أساس الأسطر الأخرى بتحدد أبعاد المصفوفة ..يعني التحديد مبيكونش مسبق زي النوع الأول ..التحديد للأبعاد بيكون أثناء عمل الكود ننتقل لجزئية جديدة ألا وهي تعيين قيم لعناصر المصفوفة بيتم تعيين قيم للمصفوفة سواء كانت ثابتة أو ديناميكية من خلال معرفة رقم العنصر في الفهرس بالمثال يتضح المقال ودا كلام مفيهوش جدال Sub AssignValue() Dim arrMarks(0 To 3) As Long arrMarks(0) = 5 arrMarks(3) = 46 arrMarks(4) = 99 End Sub دا مثال في السطر الأول أعلنا عن المصفوفة اللي أبعادها من 0 إلى 3 أي عدد عناصرها يساوي 4 ( 0 - 1 - 2 - 3) السطر التاني وضعنا القيمة 5 لمين ؟ للعنصر اللي رقم فهرسه 0 السطر الثالث وضعنا القيمة 49 لمين؟ قولوا إنتو يا حلوين !! للعنصر اللي رقم فهرسه 3 السطر الرابع بقا ونركز عشان دا مهم .. وضعنا القيمة 99 لمين؟ نفس الكلام يا حلوين !! للعنصر اللي رقم فهرسه 4 (بس عندك ستوب STOP) ارجع تاني لأول سطر .. إحنا عندنا أبعاد المصفوفة من 0 إلى 3 يعني أول رقم فهرس عندي صفر وآخر رقم فهرس عندي 3 ... يعني الـ 4 مش موجودة (طبعاً لدواعي أمنية ..ما إحنا عارفين 4 من الأرقام المحظورة دلوقتي) طيب تتوقع ايه بعد تنفيذ السطر ؟؟؟!!!..مننساش إننا وإحنا بنتعلم مش بنفذ الكود مرة واحدة ... راجع الحلقة الأولى .. إحنا بنستخدم نافذة اللوكال ونضغط على F8 وواحدة واحدة عشان نستوعب المهم يرجع مرجوعنا لموضوعنا : بعد تنفيذ السطر الأخير هيظهر لنا رسالة خطأ بالشكل دا لأن رقم الفهرس دا مش موجود ننتقل لجزئية جديدة فيه طرق تانية لتعيين قيم للمصفوفة وهي باستخدام الدالة Array ، ودي ممكن نستخدمها عشان نخزن من خلالها قيم المصفوفة بالشكل التالي Sub ArrayFunction() Dim Arr1 As Variant Arr1 = Array("Orange", "Peach", "Pear") Dim Arr2 As Variant Arr2 = Array(5, 6, 7, 8, 12) End Sub مع استخدام الدالة دي بنعلن عنها من النوع Variant .. في السطر الأول والثاني تم الإعلان عن المصفوفة من النوع Variant وقمنا بوضع القيم بين أقواس .. ونلاحظ أقواس التنصيص أننا بنتعامل مع نصوص في قيم المصفوفة دي في السطر الثالث والرابع نفس الإعلان وقمنا بوضع القيم بين أقواس بي هنا مفيش أقواس تنصيص لأننا بنتعامل مع قيم رقمية نفذ الكود باستخدام F8 ولاحظ نافذة اللوكال بنفسك لاحظت ؟؟!! اللي لاحظ يرفع ايده .. برافو برافو محدش لاحظ حاجة .. روح لعمود الـ Type في نافذة اللوكال بعد تعيين القيم للمصفوفة ولاحظ نوع المتغير بقا متغير ...يعني بعد ما كان Variant نلاحظ اتكتب مثلاً في حالة المصفوفة الأولى اللي بتتعامل مع النصوص اتكتب String ومع المصفوفة الثانية اتكتب Integer .. وحاجة تانية إن أول رقم فهرس في المصفوفتين بيبدأ من صفر لأن دي البداية الافتراضية (مننساش يا واش يا واش) ************************************** نيجي لآخر جزئية في حلقة اليوم ألا وهي استخدام المصفوفة ودالة الإنشطار (Split Function) انشطار .. ربنا يكفينا شر النار .. !! انشطار ايه ؟! هو إنت بتصنع قنابل نووية .. الانشطار يا شطار معناه تقسيم الشيء لأجزاء صغيرة .. قطعه حتت وارميه للقطط نتكلم جد وبلاش هزار .. نشوف المثال ده Sub SplitFunction() Dim str As String str = "Red,Yellow,Green,Blue" Dim arr() As String arr = Split(str, ",") End Sub في السطر الأول أعلنا عن متغير من النوع النصي وفي السطر الثاني وضعنا قيمة المتغير النصي بين أقواس تنصيص وبيفصل بين الكلمات الموجودة في النص علامة الفاصلة (Comma) .. في السطر التالت أعلنا عن المتغير باسم Arr ووضعنا أقواس بمعنى إنها مصفوفة ديناميكية (صحيح الكلام دا مش صحيح ، بس دا مجرد مثال عشان نفهم دالة الإنشطار Split) آخر وأهم سطر وهو دا اللي يهمنا في الكود اللي فات وهو استخدام الدالة وهي دالة بسيطة جداً ومفيدة جداً جداً جداً جداً ..كفاية عشان ايدي تعبت تكوينها ببساطة اسم الدالة وبنفتح قوس ... البارامتر الأول الحاجة اللي عايزين نعملها إنشطار وهي كما في المثال النص اللي بين أقواس تنصيص "Red,Yellow,Green,Blue" وبعدين فاصلة وبعدين البارامتر الثاني وهو نوع الفاصلة اللي هيتم على أساسها عملية الإنشطار ..ممكن تكون الفاصلة دي مسافة أو أي نوع من أنواع الفواصل بين الكلمات .. وهنا استخدمنا الفاصلة Comma ووضعناها بين أقواس تنصيص لاحظ أن المصفوفة المسماة Arr بعد تنفيذ السطر الأخير حملت في 4 عناصر (من 0 إلى 4) وهي العناصر اللي فصلنا بينها بالفاصلة ، لتصبح المصفوفة حاملة (في الشهر الرابع) حاملة لأربع قيم وهي Red و Yellow و Green و Blue .. وإلى هنا تعبت يداااااااااااااااااي ولم أعد أستطيع المواصلة ، فقد كان المشوار طويل ... لمزيد من الدعم لصاحب الموضوع (ودا اختياري مش إجباري) .. ولو عندك وقت فاضي لمدة دقيقتين اتنين تابع الرابط الإعلاني في الرابط التالي (سيكون عبارة عن سلسلة من الإعلانات ..قم بالضغط على Skip Ad بعد كل 5 ثواني ... وأكرر دا مش إجباري دا اختياري ، يعني لو وقتك ميسمحش أنا مسامح .. حمل الملف الذي يحتوي على أكواد الموضوع من هنا وأخيراً تقبلوا وافر تقديري واحترامي كان معكم أخوكم أبو البراء من منتدى الأحبة منتدى أوفيسنا1 point
-
السلام عليكم اشتاذا ياسر زاد الله في علمك وجزالك خل خير وسر خاطرك وأنالك ثواياً عظيما لي رجاء لا تتوقف عن المواضيع الجديدة بارك الله بك1 point
-
وعليكم السلام لقد أخبرتك أن الدالة لها بارامترات ولابد من إدخال البارامترات الخاصة بها أقترح عليك عمل جدول بالشروط كلها في ورقة عمل واستخدام دالة Vlookup أو Index .. أو قم بجمع كل الشروط الممكنة في خلية لتكون جدول يمكنك الاعتماد عليه .. لابد من أن هناك لتبسيط الأمر اطرح شروطك لعلنا نجد طريقة لمساعدتك بها1 point
-
السلام عليكم ورحمة الله وبركاته هذا تعديل على الفورم ليقوم بالأستعلام بالأسم ارجو ان يفى بالمطلوب برنامج القومي.rar1 point
-
السّلام عليكم و رحمة الله و بركاته بارك الله فيك أخي الحبيب " ياسر العربي " على الدّروس الرّائعة و المقدّمات البسيطة جزاك الله خير الجزاء .. و نفع بك الاسلام و المسلمين خالص تحياتي1 point
-
لكي تتبع الكود سطر بسطر يمكنك استخدام مفتاح F8 من لوحة المفاتيح وتفتح نافذة اللوكال لمتابعة أسطر الكود لمزيد من التفاصيل قم بالإطلاع على الرابط التالي ... وستعرف التفاصيل لكيفية استخدام مفتاح F8 وسيفيدك بشكل كبير جداً الرابط من هنا1 point
-
الكود شغال 100% جرب غير تعريف المتغير الموجود في اعلى المحرر الى dim i as String ايضا السطر : strComputer = "." اكتب قبله dim strComputer اذا لم يمشي الحال عندي لك كود آخر للفحص عندي لم يتغير مع الفورمات وربما انواع اخرى تختلف ولكن هل يمكن الفلاشات تتشابه في السيريال فهذا لا اعلم ولم اجرب1 point
-
السلام عليكم الشكر لجميع الاخوة الكرام تم تعديل الكود ليتوافق مع احجام مختلفة اختر الحجم المناسب و اكتبه في التصريح مثل Const iHeight As Integer = 150 Const iWidth As Integer = 600 الكود '---------------------------------------------------- Const iHeight As Integer = 150 Const iWidth As Integer = 600 '---------------------------------------------------- Private Sub UserForm_Activate() Ap_H = Application.Height Ap_W = Application.Width With Me For iHH = 1 To iHeight .Height = iHH: .Top = ((Ap_H - .Height) / 2) DoEvents Next For iWW = 1 To iWidth .Width = iWW: .Left = ((Ap_W - .Width) / 2) DoEvents Next End With End Sub Private Sub UserForm_Initialize() Me.Height = 0 Me.Width = 0 End Sub1 point
-
أخي الحبيب أحمد هل النسخة التي تعمل عليها هي نفس النسخة الموجودة الرابط الخاص بها في الموضوع الأصلي لأخونا ياسر العربي ..؟؟ نريد توحيد النسخة حتى نتلافى الأخطاء أو على الأقل حتى يكون الخطأ عند الجميع في حالة وجود خطأ .. ميبقاش كل واحد في حاله !! وكل واحد عنده أخطاء غير اللي عند التاني تقبل تحياتي1 point
-
قمة في الإبداع و جزاكم الله خيراً على هذه النماذج الرائعة1 point
-
ارفق مثالك لتسهل على اخوتك مساعدتك1 point
-
Thanks a lot for this free addin I tested it on office 2016 32 Bit and it was ok at first but after while it gives me errors and quit the application And some functions still don't work .. I put some data and tried to using charts but it gives me that there must be numeric values although there were It is better to put some help images as a kind of help to the people who will use this addin It is our pleasure to join out community1 point
-
110 _ تصفية متقدمة بين تاريخين وفق عدة معايير بالأكواد والمعادلات للتاريخ _ الاستاذ / محمد حسن المحمد 111 _ فورم لتوليد أرقام عشوائية ما بين رقمين مع الاحتفاظ بقيم البداية والنهاية في الريجستري _ الاستاذ / ياسر خليل أبو البراء 112 _ تقسيم أو شطر قائمة واحدة إلى قائمتين بالتساوي _ الاستاذ / ياسر خليل أبو البراء 113 _ تزيين الفورم عند الفتح والاغلاق بمؤثرات حركيه _ الاستاذ / الصـقر1 point
-
أخي الفاضل كما قال لك أخونا محمد سلامة يجب أن تكون مشاركتك بسؤال واحد لتجد الإجابة أما بعدة أسئلة فطبيعي سيحدث اضطراب في المشاركة وعلى ذلك تعد كثرة الأسئلة في مشاركة واحدة مخالف لقوانين المنتدى ابدء أخي الكريم بتخطيط برنامجك على ورق وكل ما تحتاجه حاليا ومن الممكن أن تضيفه عليه مستقبلا، ومن ثَمَّ تصنف الجداول حسب طبيعة برنامجك لتأتي إلى المرحلة التالية وهي إنشاء النماذج على القاعدة التي أعددتها هكذا سوف يكون أفضل لك وإن صادفك أي شيء أو وقفت عندك حاجة معينة فاطرحها هنا وستجد العون بإذن الله من أساتذتنا الكرام جزاهم الله كل خير ولكي تخرج بإجابة من هذه المشاركة بصفة عامة فيمكنك بإضافة حقل خانة اختيار في جدول المصروفات مثلا - بحيث الطالب الذي سدد تضع على خانته علامة ومن لم يسدد تبقى فارغة - ليأتي دور الاستعلام في جلب من سددوا ومن لم يسددوا وللعلم يمكنك رفع المرفقات هنا في المنتدى.. واهلا بك1 point