نجوم المشاركات
Popular Content
Showing content with the highest reputation on 02/17/16 in all areas
-
قائمة بافضل المواقع شهرة وشعبية على مستوى العالم فى الاكسيل Excel حسب Alexa Ranking ========================================== وبكل اسف ولا موقع عربى فيهم . والسبب فى شهرة هذه المواقع حجم التفاعل وتبادل المعلومات والخبرات ادخل اى موقع وشاهد اى موضوع وقارن بنفسك . ولكن نحن فى العالم العربى قد نبخل حتى بعمل اعجاب او مشاركة او نخجل من وضع اراءنا ..........الخ لدينا الكثير من علماء الاكسيل العظماء فى العالم العربى اتمنى من الجميع الدعم لهؤلاء العلماء . واتمنى من مدربى الاكسيل وعلماؤه ان يقدمو ما لديهم بكل الطرق احلم بان نكون افضل من الغرب فى كل شىء .7 points
-
اعرض الملف برنامج مخازن السلام عليكم ورحمة الله وبركاته برنامج المخازن يشتمل عدة أوراق إكسيل في مصنف 1- شاشة دخول ترحيب بالمستخدم الكريم. اسم المستخدم: admin كلمة المرو:123 2- الصفحة الرئيسية:تحتوي على روابط أوراق المصنف وإمكانية الخروج. 3- إذن إضافة وإذن صرف ومخزن رئيسي وآخر فرعي . 4- تقرير حركة المخزن: حسب تاريخي البدء والانتهاء ولكل صنف ضمن المخزن المحدد مع إمكانية طباعة أصنافعدة يحدد المستخدم رقم الصنف الأول ضمن الخلية I1 والأخير في الخلية J1 وفقني الله وإياكم لما يحب ويرضى كما أسألكم الدعاء بظهر الغيب لي ولوالدي ولذريتي وللمؤمنين بالقبول والصلاح والنجاح والفلاح ...آمين ولولدي الحبيب "علي" بالرحمة والمغفرة والفردوس الأعلى من الجنة ...آمين والسلام عليكم ورحمة الله وبركاته. أخوكم المحب لكم محمد حسن المحمد أبو يوسف برنامج المخازن.xlsm صاحب الملف محمد حسن المحمد تمت الاضافه 17 فبر, 2016 الاقسام قسم الإكسيل6 points
-
أساتذتى الكبار أخوتى وأخواتى فى منتدى أوفيسنا أنا فخور انى أحد أعضاء المنتدى الكريم ده دائما ما نجد ضالتنا فيه لقيت الملف ده على موقع أجنبى وبصراحه عجبنى وحبيت أشارك بيه أحلى طاقم عمل فى المنتدى الى أن يتم شرحه وتفكيكه من عباقرة المنتدى مرفق ومنتظر اراءكم يارب يعجبكم New-Userform-.rar4 points
-
السلام عليكم ورحمة الله وبركاته إخواني وأحبابي في الله أقدم لكم اليوم موضوع خفيف جداً .. والموضوع هو كيفية جعل النص في أداة العنوان Label يظهر بشكل رأسي (كنوع من الترفيه ليس أكثر) إليكم الكود المستخدم في الملف المرفق مع الشرح المبسط لأسطر الكود .. ليتسنى لكم التعرف على الأكواد بشكل أفضل Private Sub UserForm_Initialize() 'تعريف المتغير من النوع النصي Dim Word As String 'تعريف متغير من النوع عدد صحيح Dim I As Integer '[Label] تعيين عنوان لأداة الـ Label1.Caption = "YasserKhalil" 'حلقة تكرارية من الرقم 1 إلى طول السلسلة النصية للأداة For I = 1 To Len(Label1) 'يساوي قيمة المتغير نفسه زائد [Word] المتغير النصي المسمى 'حيث يتم استخراج حروف الكلمة [Mid] الحرف الذي يتم استخراجه باستخدام الدالة 'مع كل حلقة تكرارية يتم التعامل مع حرف واحد فقط في كل مرة 'بمثابة الضغط على إنتر للانتقال لسطر جديد [Chr(13)] زائد الدالة '[Vertical] بالتالي يتحقق الهدف من الكود وهو جعل النص يظهر بشكل رأسي Word = Word & Mid(Label1, I, 1) & Chr(13) 'الانتقال للحرف التالي Next I 'ليكون العنوان الجديد للأداة [Word] تعيين المتغير المسمى Label1 = Word End Sub يوضع الكود في حدث الفورم ...ويعمل عند بدء تشغيل الفورم وإليكم الملف المرفق التالي فيه تطبيق للكود حمل الملف من هنا ولا تنسونا بصالح الدعاء تقبلوا وافر تقديري واحترامي4 points
-
ربنا يديم المعروف والمودة والروح الطيبة الموجودة بين جميع أعضاء هذا المنتدى العريق أجمل وأرق تحياتى للجميع3 points
-
اود ان اطلب منك اخى ياسر ان تفتح موضوع اسمه بطاقة تعريف وكلنا نشارك فيه لتوطيد معرفتنا ببعض ولمن يحب ان يشارك فيه باى معلومات عن نفسه مثلا الاسم العنوان الوظيفه مايحب ان يفعله كيفية استثمار وقته وجزاكم الله خيرا3 points
-
السّلام عليكم و رحمة الله و بركاته أهلاً أخي الغالي " ياسر العربي " ..أتمنى أنّك بمليون خير و صحّة و نعمة و بركة كلام جميل لا يصدر إلاّ من إنسان جميل الرّوح معك حق بكل كلماتك الشذيّة العطرة و المعطرّة بالود و الحب .. رقّة الاحساس و نبل الخلق آسف يا عزيزي .. عن التّقصير في حق نفسي و حق إخواني في الله من خلال هذا المنبر التعليمي المتميّز إليك أنتَ يا ياسر يا عربي خاصّةً .. إلى كل الذين أحببتهم في الله من خلال هذا المنتدى .. إلى كل الذين كان يمكن أن أحبهم لو عرفتهم .. آسف .. عن التّقصير بشتّى المجالات .. فائق إحتراماتي للجميع3 points
-
اعزك الله استاذى الحبيب ابوالبراء انا بعتذر بجد عن التقصير فى حق اوفيسنا ولكن اسال الله ان ييسر لى ولكم ونكون دايما مع بعض وان شاء الله ساكون متواجد فى المنتدى هذه الايام خلصنا الميزانية بفضل الله تقبل تحياتى وحبى واحترامى3 points
-
اخي الغالي ابو البراء ما اقدمه الا مثال بسيط يستطيع الاخوة الانتشار والمشاركة في المنتديات المفتوحه باي طريقه وباي فكرة فهي مصممه لمثل هذه الامور والروح موجودة كما قلت فلما لا نعطيها مساحه اكبر هذا ما اقصده مشكور اخي الغالي محمد الريفي علي مرورك الكريم ودعمك فانا ما اقدمه الا فكرة بسيطه لزيادة الروابط بيننا لي اخوة في الله واحبابي داخل هذا المنتدى العظيم نريد ان نشاركهم ونطمئن عليهم وتكون بيننا روابط اكبر ومن جهه اخرى ارى ان المنتديات المفتوحه شبه متوقفه فلما لا نستغلها في هذه الامور تقبلو تحياتي3 points
-
وعليكم السلام ورحمة الله وبركاته أخي الحبيب ياسر العربي ..بارك الله فيك وجزاك الله خيراً على حرصك على توثيق الروابط بين الأخوة الأعضاء بالمنتدى وأنا أرى أن الروح موجودة في كثير من الموضوعات وليس موضوع واحد فقط محصور لتلك المشاركات .. فالروح موجودة في أغلب الموضوعات ولعلك تلاحظ ذلك بشكل جلي في ردود الأخوة الكرام بالمنتدى .. أرى أن تكون الروح متواجدة في أي موضوع وليس موضوع واحد فقط .. تقبل وافر تقديري واحترامي3 points
-
اعزك الله اخى واستاذى الحبيب حسام انت ايضا من اساتذة الاكسيل فى اوفيسنا الذى يجب علينا جميعا ان نتكاتف ونذكر بعضنا بما وصل الى الغرب وما وصلنا نحن اليه للاسف عوامل كثيره هى السبب . احلم بان اجد اوفيسنا فى الصداره او اى موقع عربى تقبل تحياتى3 points
-
السلام عليكم أخى الحبيب / ياسر خليل أخى الفاضل / كاسر الأمواج بالنسبة للكود الرائع الخاص بأخى الحبيب ياسر فيه نقطة واحدة وهى انه عند الاختيار من ComboBox2 يضع فى ComboBox3 كل الخلايا من العمود E التى تقابل الاختيار الموجود للـ ComboBox2 ( وليكن مستشفيات ) مثلا بغض النظر عن الاختيار الموجود فى ComboBox1 الخاص باسم المحافظة أى أنه يضع الاماكن المقابلة لكلمة مستشفى فى كل المحافظات وليست المحافظة المختارة فقط وذلك بسبب الكود cValues ولذلك عملت تعديل بسيط على الكود الرائع وسميته cValuesR لتدارك تلك النقطة الخاصة بـ ComboBox3 Sub cValuesR(Txt1 As String, Txt2 As String, Obj As Object, Col As Integer) Dim Dn As Range Dim Rng As Range Dim Dic As Object Obj.Clear With Sheets("Sheet1") Set Rng = .Range(.Cells(6, Col), .Cells(Rows.Count, Col).End(xlUp)) End With Set Dic = CreateObject("Scripting.Dictionary") Dic.CompareMode = 1 For Each Dn In Rng If Dn.Offset(, -1).Value = Txt1 And Dn.Offset(, -2).Value = Txt2 Then If Not Dic.exists(Dn.Value) Then Dic(Dn.Value) = Empty End If End If Next Dn Obj.List = Application.Transpose(Dic.keys) End Sub Dependent ComboBox On UserForm YasserKhalil.rar3 points
-
السلام عليكم ورحمة الله وبركاته يقول تعالى: ﴿إِنَّمَا الْمُؤْمِنُونَ إِخْوَةٌ فَأَصْلِحُوا بَيْنَ أَخَوَيْكُمْ وَاتَّقُوا اللَّهَ لَعَلَّكُمْ تُرْحَمُونَ﴾1. أهمية الأخوة لقد حثَّ الإسلام العزيز على العلاقات الإنسانية القائمة على أسس الخير والصلاح والتي يكون عنصر الربط فيها نابعاً من الروح السامية والقلب السليم والعقيدة الصحيحة. لما في تلك العلاقات من تأثير متبادل بين الأطراف وخصوصاً الأخوّة في الله تعالى التي تترك بصماتها في الحياة الداخلية والخارجية للإنسان بعيداً عن حدود الإتصال بالنسب فقط كما قيل : "ربَّ أخٍ لك لم تلده أمك فنحن داخل هذا المنتدى يوميا نطلب ونجيب ونناقش ونفيد ونستفيد كل هذا جميل فهذا غذاء العقل فأين غذاء الروح نريد ان تربطنا المودة والمحبة والاخوة في الله فنحن هنا اسرة فلابد من صلة رحم هذه الاسرة الكريمة الجميلة فلا نريد جعل هذا المكان مجرد تحصيل علم بحت فلقد قمت منذ فترة بعمل موضوع في المنتدى المفتوح ليكون ترويح عن النفس من ضغوط العمل وتعب الاعصاب الموضوع بسيط جدا كل واحد من احبابي الاعضاء لما يدخل المنتدى يدخل الموضوع يكتب اي شئ يعبر عن مزاجه حالته او اي شئ يراه نافعا لاخوته المهم نتواصل وكما قال اخي الغالي ابو يوسف وعسى أن تجلب هذه الصفحة رواداً أُخر ...فلا تنحصر باثنين أو ثلاثة ...نحن بحاجة إلى التغذية الروحية ... http://www.officena.net/ib/topic/64516-صباح-الخير-اثبت-حضورك-بكلمة/ اللهم إنا نسالك الفردوس الأعلى وأن تجمعنا في مستقر رحمتك ...آمين والسلام عليكم ورحمة الله وبركاته2 points
-
الرخم وصل عمل جميل بس احط التاتش الترفيهي وانا اتعب نفسي ليه بص للمرفق من غير كود Label Vertical Text YasserKhalil.rar2 points
-
أ / ياسر خليل أحلى حاجه فى شخص حضرتك الكريم روح الدعابه اللى حضرتك بتنشرها فى المنتدى . أنا بتمنى فعلا أتعلم من حضرتك الكثير .2 points
-
السلام عليكم ورحمة الله وبركاته اسعد الله اوقاتكم قولت بدل ماارجع افتح المنتدى وايدى فارغه زى كل مره ويبقى شكلى مش ولا بد قولت اشارك اخوانى الافاضل بالمنتدى الرائع آخر ما استخدمت فى البرمجه ؟ نسخة فيجوال بيسك 2010 كامله من موقع مايكروسوفت ومجانيه قمت بتحمليها اليوم وكانت رائعه لعلها تحوز على اعجابكم . النسخه ايزو ممكن يتم حرقها على اسطوانه 700 MP لكن الافضل DVD 4GB ببرنامج الترا ايزو او استخدامها من سى دى وهمى بنفس البرنامج او فك ضغط الملف باى برنامج ضغط اليكم الرابط http://download.microsoft.com/download/1/E/5/1E5F1C0A-0D5B-426A-A603-1798B951DDAE/VS2010Express1.iso2 points
-
جزاك الله كل خير على الايضاح وبارك الله فى اخينا ياسر وجميع اساتذتنا الافاضل وجزاهم الله عنا خيرا بالتوفيق اخى2 points
-
اخى الفاضل يمكن ربط الفيجوال بيسك بالاكسل ليعطى نتائج رائعه ولك رابط لشرح ذلك لاخى الفاضل ياسر العربى جزاه الله كل خير2 points
-
الرفقُ ما كان في شيءٍ إلاَّ زانهُ ، وما نُزع من شيءٍ إلاَّ شانُه ،اللينُ في الخطاب ، البسمةُ الرائقةُ على المحيا، الكلمةُ الطيبةُ عند اللقاء ، هذه حُلَلٌ منسوجةٌ يرتديها السعداء اسعدنى الله بكم خير صحبة وخلان اجتمعنا على العلم فزادانا الله من فضله وعلمه وجمعنا بالايمان والمحبة فى الله فنعم الرزق المبارك من الله عز وجل2 points
-
حبيبي الغالي عبد العزيز البسكري اخي في الله اولا مبعرفشي اتكلم زيكم كدا انا بخبط الكلام كدا احنا كمصريين لينا لغة خاصة بينا انت يامعلم من افضل واعز الاحباب والاصدقاء الى وكنا مع بعض في تقدمنا داخل المنتدى حتى اختفيت انت قليلا وجزء من هذا الاختفاء هو بسببي صح مش سبب وحش طبعا لا انت فاهم قصدي فياريت تكون متواصل معنا لنطمئن عليك دائما وجزاك الله خيرا وبارك لك في امورك وجزيت خير على كلماتك الجميلة التي اعجز عن الرد عليها تقبل تحياتي2 points
-
جزاك الله كل خيراخى ياسر الحمد لله الذى بنعمته تتم الصالحات الحمد لله على ان رزقنى بالدنيا خلان مثلكم اشهد الله انى احبكم فى الله طبتم واهتديتم اراكم بعد صلاة العشاء2 points
-
أخى الحبيب / ياسر خليل جزاك الله كل خير على هذه الكلمات الطيبة ورفع الله قدرك لهذا التواضع فنحن جميعا فى المنتدى نتعلم من ابداعك الذى لا ينقطع يوميا2 points
-
أنا جد سعيد أنك بيننا وتتفاعل مع المنتدى بشكل كبير ..افتقدنا تواجدك فيما بيننا أخي وحبيبي في الله محمد الريفي تقبل وافر تقديري واحترامي2 points
-
جزاكم الله خيرا استاذى الحبيب كل مافى الامر اننى احببت ان اغير واعكس فدائما يتم السؤال ونحن نقوم بالاجابه فاحببت ان اسال بنفسى واشاهد الاجابات واشارك معكم وهذا حلى المتواضع اولا: تحويل هذا الرقم20161225 الى رقم تسلسلى يمثل التاريخ =DATE(LEFT(A1;4);MID(A1;5;2);RIGHT(A1;2)) ثانيا تحويل الرقم التسلسلى 42729 الناتج من المعادلة السابقة الى تاريخ باستخدام المعادلة ويمكن من خلال تنسيقات الخلايا ثم تنسيق الرقم الى تاريخ =TEXT(C1;"dd/mm/yyyy") تقبلوا منى اجمل التحيات2 points
-
استاذى الحبيب محمد الريفى كلام معبر عن الواقع والصوره المرفقه من حضرتك دليل على ذالك تقبل تحياتى تلميذك / حسام2 points
-
بارك الله فيك وجزاك الله كل خير أخي ومعلمي المتميز رجب جاويش بالفعل كلامك مضبوط ..لم أنتبه للكومبوبوكس الثالث .. عموماً الحمد لله إن فيه أساتذة كبار يصححوا لنا الخطأ تقبل وافر تقديري واحترامي2 points
-
السلام عليكم حبيبي الغالي ياسر العربي ...جزاكم الله خيراً ...لم أرى هذه الدرر على مشاركتكم الحبيبة إلا الآن فاعذرني لتأخري في إبداء إعجابي حتى يكاد قلبي يطير فرحاً بما كتبت وذكرت وعسى أن تجلب هذه الصفحة رواداً أُخر ...فلا تنحصر باثنين أو ثلاثة ...نحن بحاجة إلى التغذية الروحية ... اللهم إنا نسالك الفردوس الأعلى وأن تجمعنا في مستقر رحمتك ...آمين حبيبي أبو أسيل ...السلام عليكم2 points
-
بسم الله الرحمن الرحيم وبه نستعين إخوانى الافاضل السلام عليكم ورحمته الله وبركاته أسعد الله أوقاتكم أينما كنتم بناءا على طلب من الاستاذه الفاضله وأختنا الكريمة داليا رجب بإعادة رفع برنامج مرتبات السادة العاملين بالقطاع الخاص أتشرف بإعادة رفعه مرة أخرى وخاصة لمن يواجهه مشكلة فى تحميل المرفق أدرك أن البرنامج لايرقى بمستوى رقى نظيره من البرامج المقدمه من إخوانى الافاضل بالموقع ولكنه يفى بالغرض الذى صمم من أجله تقبلوا وافر احترامى وتقديرى ***** وجزاكم الله خيرا برنامج مرتبات للقطاع الخاص 2003- سعيد بيرم.rar برنامج مرتبات للقطاع الخاص 2007- سعيد بيرم.rar2 points
-
وعليكم السلام ورحمة الله وبركاته أبي الحبيب الغالي أبو يوسف جزيت خيراً على كلماتك الطيبة الرائعة .. وبعدين لا فتح عظيم ولا حاجة !! كل الحكاية كود بسيط من خلاله بتحدد مكان الصورة للفورم وأعتقد إن فيه موضوعات مشابهة لهذا الأمر .. والكود الثاني بيدرج الصورة اللي في الفورم ويضعها في خلايا ورقة العمل أنتم قرة أعيننا أبا يوسف ..جمعنا الله وإياكم في الفردوس الأعلى من الجنان تقبل تحياتي2 points
-
جزاكم الله خيراً أخي الحبيب رجب على هذا الحل الرائع إليك حل آخر إثراءً للموضوع ضع الكود التالي في حدث الفورم Private Sub UserForm_Initialize() Dim Rng As Range Dim Dn As Range Dim Dic As Object With Sheets("Sheet1") Set Rng = .Range(.Range("C6"), .Range("C" & Rows.Count).End(xlUp)) End With Set Dic = CreateObject("Scripting.Dictionary") Dic.CompareMode = vbTextCompare For Each Dn In Rng: Dic(Dn.Value) = Empty: Next ComboBox1.List = Application.Transpose(Dic.keys) End Sub Private Sub ComboBox1_Click() Call cValues(ComboBox1.Value, ComboBox2, 4) '4 Is Column Number End Sub Private Sub ComboBox2_Click() Call cValues(ComboBox2.Value, ComboBox3, 5) '5 Is Column Number End Sub Sub cValues(Txt As String, Obj As Object, Col As Integer) Dim Dn As Range Dim Rng As Range Dim Dic As Object Obj.Clear With Sheets("Sheet1") Set Rng = .Range(.Cells(6, Col), .Cells(Rows.Count, Col).End(xlUp)) End With Set Dic = CreateObject("Scripting.Dictionary") Dic.CompareMode = 1 For Each Dn In Rng If Dn.Offset(, -1).Value = Txt Then If Not Dic.exists(Dn.Value) Then Dic(Dn.Value) = Empty End If End If Next Dn Obj.List = Application.Transpose(Dic.keys) End Sub قمت بإعادة تسمية الكومبوبوكس .. بدلاً من Sanf استخدمت الاسم الافتراضي ComboBox1 وبدلاً من Nawa استخدمت ComboBox2 والثالث جعلته بدلاً من ComboBox1 جعلته ComboBox3 .. كما قمت بإزالة الـ Row Source لأول كومبوبوكس .. تم الاستغناء عن الأكواد في حدث ورقة العمل .. فقط الكود في حدث الفورم هو الذي يقوم بالمهمة كاملة إن شاء الله أرجو أن يكون الملف مقبول لديكم تقبل تحياتي Dependent ComboBox On UserForm YasserKhalil.rar2 points
-
كل الشكر والتقدير لمروركم الكريم ودعمكم الجميل جمعنا الله واياكم في مستقر رحمته اللهم امين1 point
-
أخي الحبيب عبد العزيز جزيت خيراً على مرورك العطر بالموضوع وبارك الله فيك على كلماتك الطيبة والمشجعة أخي الغالي ياسر العربي جزيت خيراً على مرورك الرخم والعطر بالموضوع .. وبسم الله ما شاء الله بدون أكواد (حسستني إنك اخترعت الذرة) . رخامة برخامة هقول الناس إنت عملت ايه عشان يظهر بالشكل دا بدون كود ..كتبت حرف وبعدين Shift + Enter وبعدين حرف وبعديها Shift + Enter و بعدين حرف ...إلخ إلخ بس بصراحة عجبني التاتش .. هل التاتش له علاقة بالماتش اللي اتفرجت عليه؟ تقبل وافر تقديري واحترامي1 point
-
جزاك الله خيرا اخى ياسر على التوضيح انتم من تجعلون المواضيع لها من الروائح الذكيه ما تجذب النفوس فهنيئا لكم بما فضلكم الله وزادكم الله من فضله وعلمه بالتوفيق اخى ياسر1 point
-
أخي الحبيب أبو يوسف السلام عليكم ورحمة الله وبركاته بارك الله فيك وجزاك الله كل خير .. أعتقد أن الموضوع تم طرحه من قبل في موضوع آخر .. هل هناك اختلاف أم أنه نفس الملف .. ولو كان الملف معدل لما لم ترفق الملف المعدل في الموضوع الأصلي؟ بالنسبة للملف هل يمكنك جعل الملف يعمل على النسخة 64 بت .. تقبل وافر تقديري واحترامي1 point
-
1 point
-
جزاكم الله خير استاذ رجب وياسر اكرمكم الله ورزقكم بكل خير من حيث لاتعلمون وفقكم الله لما يحبه ويرضاه1 point
-
1 point
-
السلام عليكم ورحمة الله وبركاته الفرق بين تاريخين باستخدام الدالة DATEDIF اتمنى ان يفيدكم جميعا تعريف الدالة امثلة على استخدام الدالة مدونة خبير اكسيل http://excelfinancial1.blogspot.com.eg/ تحميل الملف الفرق بين تاريخين.rar1 point
-
جزاكم الله خيرا اخى واستاذى الحبيب حسام هذا من بعض ماعندكم تقبل الله منا ومنكم صالح الاعمال1 point
-
1 point
-
أخي الحبيب ابن الملك هلا غيرت اسم الظهور ليعبر عن شخصكم الكريم ..يشرفنا التعرف على اسمك ولقبك (المنتدى مختلف عن بقية المنتديات كما تعلم بأنه يضم أخوة متحابين في الله ..فهلا أعطيت إخوانك حقهم وعرفتهم بنفسك) بارك الله فيك وجزاك الله خيراً على هذه الهدية الجميلة ..بالفعل فورم رائع وجميل وأعتقد أنه مناسب لكثير من الأعضاء ممن يطلبون فورم إدخال وتعديل وبحث ... واصل بلا فواصل .. تقبل وافر تقديري واحترامي1 point
-
وعليكم السلام ورحمة الله وبركاته الأروع مما قدمته هو كلماتك الطيبة وشعورك الطيب تجاهي جزيت خيراً أخي الغالي عبد العزيز على كلماتك الرقيقة والتي تفوق ما أقدمه جمعني الله وإياك في مستقر رحمته يوم القيامة تقبل تحياتي1 point
-
أخي الغالي أحمد كن كالنخيل عن الأحقاد مرتفعاً ... يرمى بحجر فيعطي أطيب الثمر مجرد نصيحة وليس هذا ضعف منك وإنما اجعل الأمر من خلقك .. تقبل تحياتي1 point
-
وعليكم السلام وبعد إذن أخي ابوخليل هنا اجمع جميع الطرق اللي تخطر على بالي ، وهي 4 طرق 1. طريقة أخي ابوخليل: Private Sub Text0_Click() Me.Text0 = Me.Text0.Name End Sub . الطرق الثلاث الباقية تعتمد على الوحدة النمطية: Option Compare Database Function Who_Am_I() Dim frm As Access.Form Dim ctl As Access.Control Set frm = Screen.ActiveForm 'get the active Form Name Set ctl = Screen.ActiveControl 'get the active Control (in our case it was a field) name 'The way we address a Field in another Form, 'like this: Forms!FormName!FieldName 'so we have to do it here similarly, 'this will send the field name to the active Field in the active Form Forms(frm.Name)(ctl.Name) = ctl.Name 'this will return the Funtion Who_Am_I value to the variable that called it Who_Am_I = ctl.Name End Function 2. ننادي الوحدة النمطية مباشرة (لاحظ علامة = ) ، ولا يوجد كود محلي في VBA : . 3. نعمل كود محلي ، والذي ينادي الوحدة النمطية: Private Sub Text4_Click() 'this way will get the field name from the Function Who_Am_I 'and it will place the value in the Field in the Form Call Who_Am_I 'this way will get the field name from the Function Who_Am_I 'and it will place the value in the Field in the Form 'and it WILL place the Field name in the variable A, so that we can use it A = Who_Am_I MsgBox A End Sub . وبما اننا نادينا الوحدة النمطية Who_Am_I عن طريق المتغير A ، فاصبح المتغير A لديه نتيجة/قيمة الوحدة النمطية ، وعليه نستطيع ان نستخدم هذه القيمة كيف نشاء في الكود ، فمثلا استخدمناها لإعطاءنا رسالة بإسم الحقل ، والنتيجة: . 4. نعمل ماكرو ، ونجعل الماكرو ينادي الوحدة النمطية: . (لاحظ مافي علامة = ) ، ولا يوجد كود محلي في VBA: . جعفر 280.db2016.accdb.zip1 point
-
أخي الكريم حماده سعد الله جرب الكود التالي عله يفي بالغرض Sub ExportActiveSheet() Dim WB As Workbook, WS As Worksheet Set WS = ActiveSheet Application.DisplayAlerts = False If WB Is Nothing Then WS.Copy ActiveSheet.UsedRange.Value = ActiveSheet.UsedRange.Value Set WB = ActiveWorkbook If Dir(ThisWorkbook.Path & "\ExportedWB.xlsx") <> "" Then MsgBox "Workbook 'ExportedWB' Is Already Existing", vbCritical WB.Close False Else WB.SaveAs Filename:=ThisWorkbook.Path & "\ExportedWB.xlsx" WB.Close True MsgBox "Workbook Exported In The Same Path ...", 64 End If End If Set WS = Nothing Set WB = Nothing Application.DisplayAlerts = True End Sub تقبل تحياتي1 point
-
بسم الله الرحمن الرحيم هنشرح اليوم كيفية التعامل مع ادوات DriveListBox DirListBox FileList Box أسماء المشغلات DriveListBox : وهذه الأداة تتعامل مع محركات الأقراص الصلبة. عرض المجلدات DirListBox: تظهر كل المجلدات الموجودة داخل أحد المجلدات أو أحد المجلدات الموجودة داخل أحد المشغلات و تعطينا إمكانية الاختيار منها. عرض الملفات FileList Box : تعرض لنا قائمة من الملفات الموجودة داخل مجلد معين و تعطينا إمكانية اختيار أحدها. و التعامل معها. ما الفائدة من هذه الادوات: نستطيع عن طريق استخدام هذه الادوات الثلاث الوصول لاي ملف نحتاجه وكأنك تتصفح الكمبيوتر للوصول لملف انت بحاجه له او لتشغيله ايا كان فيديو صوت ملف فلاش ملف كتابي الخ طيب وايه لزمتها ما انا ممكن اتصفح وخلاص من خارج البرنامج واجيب اللي انا محتاجه طيب متفكر كدا معايا بما ان معانا داخل برنامجنا هذه الادوات نقدر نستغلها في تشغيل الملفات اللي محتاجنها داخل برنامجنا علي سبيل المثال نعمل برنامج لتشغيل الصوتيات مثلا او الفيديو او مشغل فلاش او تصفح ملفات كتابيه مثلا الخ طريقة العمل سيتم تحديد الدريف من اول اداة DriveListBox وبناء عليها يتم سرد المجلدات في الاداة الثانية DirListBox ويتم الاختيار من الاداة الثانية المجلد الهدف وبناء على المجلد الهدف يتم سرد الملفات الموجودة به في الاداة الثالثة FileList Box وبناء علي اختيار الملف من الاداة الثالثة يتم تشغيل الملف تلقائي داخل برنامجنا خلاص توكلنا علي الله ونعمل برنامج مشغل صوتيات وفيديو كمان ودا مجرد مثال لشرح طريقة عمل الادوات وصولا لتشغيل الملف الهدف في النهاية يلا كله يفتح البرنامج الادوات مشروع جديد الاداوت الثلاثة المذكورة كما بالصورة طيب يلا كدا نربط الثلاثة ادوات ببعض عشان لما نقوله هات البارتشن كذا تروح الاداة الاخرى تلقائي تفتح المجلدات اللي في نفس البارتشن وعند الضغط علي المجلد المحدد يتم فتح الملفات بداخله وعند الضغط علي الملف يتم تشغيله اكواد ربط الادوات Private Sub Drive1_Change() Dir1.Path = Drive1.Drive End Sub Private Sub Dir1_Change() File1.Path = Dir1.Path End Sub شرح الاكواد في حدث التغيير عند اختيار احد الدريفات يبقي مسار الاداة الثانية بيساوي مسار الدريف ويبقي كدا ظهر لنا ملفات الدريف في الاداة الثانية الكود الثاني عند اختيار مجلد من الاداة الثانية يبقي مسار الاداة الثالثة بيساوي مسار الاداة الثانية ويتم عرض الملفات الموجودة به طيب كدا الملفات كلها هتظهر واحنا عاوزين نخصص برنامجنا لبعض الامتدادات فقط كيف نخصص امتدادات تظهر فقط عن طريق الكود التالى Private Sub Form_Load() File1.Pattern = "*.mp3;*.mp4;*.flv;*.mkv" End Sub نضع هذا الكود مثلا في حدث تحميل الفورم وهنا قمت بتحديد الامتدادات المراد عرضها وهي امتداد الصوت وبعض امتدادات الفيديو وبامكانكم وضع اي امتدادات اخرى طيب احنا كدا وصلنا لاخر شئ بالنسبة للادوات وناقص شئ واحد وهو عند الضغط علي الملف يتم تشغيله لعمل هذا نضيف هذه الاداة للفورم بتاعنا كلنا عارفين الاداة دي وهيا ويندوز ميديا بلير ودا تقريبا في كل نسخ الويندوز يعني مش هنقابل مشكلة تسجيل الاداة ومش موجودة ومش بتفتح معايا لا ابدا البرنامج دا هيفتح باذن الله علي معظم الاجهزة بدون مشاكل نيجي لاكواد التشغيل الملفات التي يتم اختيارها داخل الميديا بلير Private Sub File1_DblClick() WindowsMediaPlayer1.URL = Dir1.Path & "\" & File1.FileName WindowsMediaPlayer1.Controls.play End Sub عملت الكود في حدث الدبل كليك داخل الفايل ليست بوكس عشان مش كل ما اختار ملف يشتغل من اول كليك لا الملف اللي محتاج تشغله دبل كليك عليه يشتغل معاك وطبعا ممكن نعمل ازرار تحكم لايقاف وتشغيل ما نريد وطبعا الكل هيبدع في الموضوع دا وبلمسات المواضيع اللي فاتت هيبقي اجمل وادي الكود كامل عشان تعرفو باقل كود ممكن نعمل حاجه كبيرة ومميزة Private Sub Drive1_Change() Dir1.Path = Drive1.Drive End Sub Private Sub Dir1_Change() File1.Path = Dir1.Path End Sub Private Sub File1_DblClick() WindowsMediaPlayer1.URL = Dir1.Path & "\" & File1.FileName WindowsMediaPlayer1.Controls.play End Sub Private Sub Form_Load() File1.Pattern = "*.mp3;*.mp4;*.flv;*.mkv" End Sub وبكدا نكون انتهينا من نقطة تحديد الملفات وتشغيلها وقريبا باذن الله مثال اخر لملفات اخرى لتأكيد المعلومة وتداولها في اكثر من مسار نرجو من الاخوة الكرام الرد علي الرابط التالي http://www.officena.net/ib/topic/65630-الردود-والاستفسارات-عن-دروس-الفيجوال-بيسك6-والاكسيل-ياسر-العربي/ مرفق ملف الشرح خالص تحياتي ياسر العربي يتبع drive.rar1 point
-
1 point
-
اللهم إني أصبحت أشهدك وأشهد ملائكتك وجميع خلقك أنك أنت الله لا إله إلا أنت وحدك لا شريك لك و أن محمدا عبدك ورسولك اللهم عالم الغيب والشهادة فاطر السموات والأرض رب كل شيء ومليكه أشهد أن لا إله إلا أنت أعوذ بك من شر نفسي ومن شر الشيطان وشركه وأن أقترف على نفسي سوءا أو أجره إلى مسلم..1 point
-
العزيز يحياوي : مرفق ملف كود احترافي ... رائع جدا لتلوين التشكيل في خلية اكسل " او مدى معين " من اعمال الاستاذ الكبير " استاذنا " محمـــــــــــــــــــــــــــــــد طاهر " مدير الموقع " وفقك الله ياسر الحافظ " ابو الحارث " ColorTashkil.rar1 point
-
قواعد البيانات بين النظرية والتطبيق اعزائي الكرام السلام عليكم ورحمة الله وبركاته سنناقش في هذاالموضوع عدداً من المشاكل التي قد تصادفكم لدى تعاملكم مع البيانات , وسنعرض الحلول الممكنه لها. واقترح أن تحاولوا إيجاد حل قبل قراءة الحل المعطى في النص . وعلينا أن نشير هنا إلي أن هناك عدة طرق لحل مشكلة معينة . في الحقيقه قد نتمكن من الحصول على حل أكثر فعاليه من الحل المقترح هنا إن الهدف الأساسي من هذه المشاكل والحلول هي إعطاؤكم غذاء فكريا نافعا . قبل البدء, دعونا نشير إلي أن الكثير من الحلول المقترحة يعتمد على استخدام الاستعلامات الفرعيه . يسمح Access SQL بأستخدام عبارات SeIectضمن عبارات SeIect أخرى (كما هي الحال في عبارات أخرى مثل عبارات (INSERT INTO) . تدعى عبارة SeIect الداخليه أو المتشابكه بالاستعلام الفرعي. لاحظ أنه يمكن أن تضمن عبارة SeIect داخليه ضمن عبارة SeIect أساسية فقط إذا كانت عبارة SeIect الداخلية تعيد سجلا واحدا على الأغلب ولبيان ذلك لنأخذ عبارة SQL الأساسية التالية: SELECT HOUR, (Select Count(Interval) From StartTimes WHERE (StartTime <=Hour)) FROM HOURS تعيد عبارة Select الداخلية : Select Count(Interval) From StartTimes WHERE (StartTime <=Hour) على الأغلب سجلاً واحدا لأنها تعيد عدد (Count) لاحظ أيضاً أن ظرف WHEREفي عبارة SeIect الداخليه يشير إلى حقل HOUR الذي هو جزء من عبارة SQL الرئيسية , وبالتالي فانه يقوم بربط القيمه المسترجعه للعبارة الداخلية إلى السجل الحالي في جدول HOURS المجاميع الجارية : Running Sums يعتبر حساب المجاميع الجارية من العمليات الشائعه ولبيان هذا المفهوم سنأخذ الجدول ( 1-1) الذي يتضمن المدد الزمنيه ( محسوبة بالساعة ) لعدة أحداث . ونريد أن نحسب لكل حدث مجموع المدد الزمنية للآحداث التي تسبقه يدعي هذا المجموع بالمجموع الجاري . الحل : Solution إن إحدى طرق الحل هي بإجراء الجداء السلمي للجدول مع نفسه نستطيع بهذه الطريقه الوصول إلي جميع السجلات التي يسبق رقم حدثها ( Event ) رقم سجل (أوحدث) معين . على سبيل المثال ,من أجل السجل الخامس ، نحتاج الي الوصول إلي السجلات التي تتضمن الاحداث رقم 1 وحتى 4 . أن الجداء السلمي يعطينا هذه السجلات . إليك عبارة SQL التي تقوم بهذا العمل : SELECT Running.Event, Sum(RunningCopy.Duration) AS StartTime FROM Running, Running AS RunningCopy WHERE (RunningCopy.Event < Running.Event) GROUP BY Running.Event يقوم ظرف FORM بإنشاء الجداء السلمي للجدول مع نفسه . أما ظرف WHERE فيحدد السجلات التي تحقق المعيار Running Copy.Event < Running. Event أي ان السجلات التي ستقدم المعلوكات حول السجلات التي تسبق كل سجل في الجدول ( 1-1 ). أخيرا ، نقوم بتجميع النتائج حسب الحدث ( Group By Event ) وحساب مجموع المدد الزمنية . ان المشكلة هي ان الجداء السلمي غير فعال ويستخدم حجما كبيرا من الموارد ( إذا كان عدد سجلات الجدول ( 1-1 ) 100000 سجل فإن الجداء السلمي سينفذ عملية ضرب على 100000 × 100000 سجل أي 10.000.000.000 سجل . ان الحل الاكثر فعالية هو استخدام عبارة Select متشابكة ( داخلية ) أي استخدام عبارة Select ضمن عبارة Select اساسية . نعود لنذكر هنا بأن Access SQL يسمح بذلك اذا كانت العبارة الداخلية تعيد على الغالب سجلا واحدا . لاحظ استخدمنا لألقاب ( نسخ ) للجدول في عبارة Select التالية ونحتاج الى هذه الالقاب لاننا سنشير الى الجدول ( 1-1 ) في سياقين Select R1.Event (Select Sum(R2.Duration) From Running As R2 Where R2.Event <R1.Event) As StartTime FROM Running As R1 ان عبارة SQL الداخلية : Select Sum(R2.Duration) From Running As R2 Where R2.Event <R1.Event تعيد مجموع المدة لجميع الاحداث التي تسبق الحدث الحالي ، والذي نشير إليه بالعبارة R1.Event يعرض المثال ( 1-1 ) اجرائية VBA لتنفيذ عبارة SQL السابقة . ويستخدم الكائن DoCmd في VBA لتشغيل اجراء Access وبالتالي فأن السطر البرمجي : DoCmd.OpenQuery يقوم بفتح استعلام في Access المثال ( 1-1 ) : حساب المجموع الجاري بإستخدام عبارة SQL Private Sub RunningSumSQL () Dim db As ADO.Database Set db = CurrentDb Dim qry As ADO.QueryDef Dim sSQL As String On Error Resume Next db.QueryDefs.Delete "temp" On Error GoTo 0 sSQL = "SELECT R1.Event," & _ " (SELECT SUM(R2.Duration)" & _ "FROM Running As R2" & _ "WHERE R2.Event < R1.Event)" & _ "AS StartTime" & _ " FROM Running As R1" Set qry = db.CreateQueryDef("temp", sSQL) DoCmd.OpenQuery qry.Nqme End Sub هناك طريقة أخرى تقوم على استخدام ADO الذي يؤمن طريق أو حل بسيط في هذه الحالة فهو ينشئ جدول نتائج دائم في حين ان الحل السابق يقوم بإنشاء استعلام تحديد ويعرض المثال ( 1-2 ) شفرة ADO التي تنفذ نفس العمل Private Sub RunningSumDAO( ) Dim db As Database Dim rs As Recordset Dim lRunningSum As Long Set db = CurrentDb lRunningSum = 0 Set rs = db.OpenRecordset("SELECT * FROM Running ORDER BY Event") Do While Not rs.EOF rs.Edit rs!RunningSum = lRunningSum rs.Update lRunningSum = lRunningSum + rs!Duration rs.MoveNext Loop rs.Close End Sub المجالات المتقاطعة : Overlapping Interavl تشير الصفوف في الجدول ( 1-2 ) الى مجالات زمنية ، المشكلة هي تعيين من أجل كل ساعة من اليوم ، عدد المجالات التي تتضمن هذه الساعة . ولحل هذه المشكلة نستخدم جدول HOURS المبين في الجدول ( 1-3 ) الحل : Solution يمكن حل هذه المشكلة بإستخدام عبارة Select متشابكة ( أي بإستخدام استعلام فرعي ) والكود التالي يقوم بالعمل المطلوب : Private Sub OverlappingIntervals( ) Dim db As Database Set db = CurrentDb Dim qry As QueryDef Dim sSQL As String On Error Resume Next db.QueryDefs.Delete "temp" On Error GoTo 0 sSQL = "SELECT Hours.Hour, " & _ " (SELECT Count(Interval) AS CountOfIntervals" & _ " FROM Overlap" & _ " WHERE (StartTime <= Hours.Hour) And" & _ " (Hours.Hour < EndTime))" & _ " FROM Hours" Set qry = db.CreateQueryDef("temp", sSQL) DoCmd.OpenQuery qry.Name End Sub يتبع1 point