ياسر خليل أبو البراء قام بنشر أكتوبر 29, 2014 قام بنشر أكتوبر 29, 2014 كلمة روعة أشعر أنها قليلة مقارنة بما تقدمه بوركت وجزيت خيراً لا أدري لما التأخر في تثبيت موضوع هام مثل هذا الموضوع
saad abed قام بنشر أكتوبر 29, 2014 قام بنشر أكتوبر 29, 2014 اخى محمود الشريف جزاك الله خيرا نداء الى مديرى الاقسام والمشرفين نرجو تثبيت الموضوع ... لماذا.. لان الشروحات تقدم جهدا كبيرا من الشارح للموضوع تخلق جيلا جديدا فى المنتدى من المثقين برمجيا تشجيع للشارح على جهده سهولة المتابعة للمتعلمين الشرح اقضل من الحل لاى موضوع وكلاهما مهم ولكن الاولى للشروحات والدورات الى االخ الخ...... اعذرونا فهذا ليس تدخل ولكن محبه فيكم وفى المنتدى اكرمكم الله 1
إبراهيم ابوليله قام بنشر أكتوبر 29, 2014 قام بنشر أكتوبر 29, 2014 اخى محمود احييك على هذا المجهود الكبير وهذا الموضوع الشيق بارك الله فيك وزادك من فضله وعلمه تقبل تحياتى
محمد الريفى قام بنشر أكتوبر 29, 2014 قام بنشر أكتوبر 29, 2014 وانا اضم صوتى لصوت الاستاذ الفاضل سعد عابد
محمد الورفلي1 قام بنشر أكتوبر 29, 2014 قام بنشر أكتوبر 29, 2014 (معدل) السلام عليكم كما قل اﻻستاذ عابد واظم صوتي الي اﻻخين . اﻻستاذ عابد و اﻻستاذ محمد تم تعديل أكتوبر 29, 2014 بواسطه محمد الخازمي
محمد القمجي قام بنشر أكتوبر 29, 2014 قام بنشر أكتوبر 29, 2014 سبحان الله العظيم وبحمده سبحان الله وبحمده رائع رائع رائع استفدنا كثيرا
ياسر خليل أبو البراء قام بنشر أكتوبر 29, 2014 قام بنشر أكتوبر 29, 2014 ألا من ملبي لنداء التثبيت .. جزاكم الله خيرا أيها المشرفون 1
rami.gamal قام بنشر أكتوبر 30, 2014 قام بنشر أكتوبر 30, 2014 اخي الكريم شكرا جدا على المجهود الرائع و الشرح فوق الجيد و الممتاز و جزاك الله خيرا عنا جميعا . و لكن عندي استفسار من حضرتك بالنسبة لتعريف الخلية داخل الكود هل يمكن استبدال اسم الخلية بدلا من الرقم يعني اكتب d8 بدلا من (4,8 )
محمود_الشريف قام بنشر أكتوبر 30, 2014 الكاتب قام بنشر أكتوبر 30, 2014 إخوانى فى الله الأستاذ القدير // ياسر خليل الأستاذ القدير// سعد عابد الأستاذ القدير// ابراهيم ابو ليله الأستاذ الكبير // محمد الريفى الأستاذ الكريم // مستخدم جديد 9 الأستاذ الكريم // محمد لطفى الأستاذ الكريم // محمد القمجى بارك الله فيكم وزادكم الله من فضله على مروركم الكريم ودعواتكم الطيبة وتقبلوا منى وافر الاحترام والتقدير
محمود_الشريف قام بنشر أكتوبر 30, 2014 الكاتب قام بنشر أكتوبر 30, 2014 أخى الكريم الأستاذ // رامى جمال بارك الله فيكم على مروركم الكريم فيما يختص بإستفساركم عن أمر كتابة الخلية يمكن كتابة الخلية بإسمها المعتاد مثلا (( D8)) ويمكن كتابتها بشكلها ( 4 , 8 ) حيث تمثل 8 رقم الصف و 4 رقم العمود فالشكل الثانى يكتب فى حالات الترحيل والإستدعاء والإستعلام ويستخدم مع الدالات عموما وتوضع بين قوسين ( , ) وبينهم فاصله بهذا الشكل أما الشكل الأول يكتب مثلا عند الاشارة الى مسح خليه معينه وتوضع بين قوسين " " بهذا الشكل أو اضافة داله عدديه مثل D8+D4 وتوضع كل خليه بين قوسين [ ] بهذا الشكل بإختصار كل كيفية لها استخدام معين مرتبط بمعنى السطر المشار فيه الى تلك الخليه وتقبل منى وافرالإحترام والتقدير 1
ا بو سليمان قام بنشر أكتوبر 31, 2014 قام بنشر أكتوبر 31, 2014 سوف احاول ان ارجع للبدايه واطبق ما استطيع وان شاء الله نستطيع ذلك بارك الله في جهودكم الرائعة
محمود_الشريف قام بنشر أكتوبر 31, 2014 الكاتب قام بنشر أكتوبر 31, 2014 أخى فى الله الأستاذ الكريم // زمزم بارك الله فيكم وجزاكم الله خيرا وتقبل منى وافر الاحترام والتقدير
محمود_الشريف قام بنشر أكتوبر 31, 2014 الكاتب قام بنشر أكتوبر 31, 2014 نستكمل الدروس التطبيقية العملية 2 البحث والإستعلام ( 2 ) حاليا لقد طلب منى المدير معرفة متى بدأ عقد عمل موظف ما ماذا نفعل ؟ خاصة لو لدينا قاعده بيانات ضخمه لعدد كبير من الموظفين والوقت يداهمنا والمدير يتحدث معى مباشرة على الهاتف الداخلى هناك طريقة خاصة يتيح الاكسل عملية البحث بالضغط على CTRL+F فيظهر لنا مربع حوار نكتب فيه مثلا اسم الموظف ونستمر فى البحث بشرط ان نكون واقفين على عمود اسم الموظف ولكن ما أبحث عنه هل هناك طريقة من خلال الفيجوال بيسك للقيام بذلك ؟ هناك الكثير من الطرق التى تؤدى هذا الغرض اذا المطلوب منى ان نقوم بعمل احتياط من ذلك الطلب المفاجىء من قبل المدير حتى لا نفاجىء بذلك ندخل لمرحله تنفيذ هذا الامر والكيفية التى نريد تنفيذ بها ذلك نجلس مع أنفسنا ونحلل الشيت الذى به جدول تجميعى لبيانات الموظفين ونسأل أنفسنا عده أسئلة س / ماذا لو قمت بالبحث من خلال الاسم ؟ ج / طبعا سنصل للنتيجة س / ماذا لو قمت بالبحث من خلال رقم الموظف أى كود الموظف ؟ ج / سنصل للنتيجة .. بل ستكون دقيقة مائة بالمائة لأننا نعرف أن رقم الموظف لن يتشابه مع موظف آخر ولكن هل أنا سأحفظ جميع أكواد الموظفين بأساميهم لدرجه لو سألنى أحد عن موظف هعرف رقمه الوظيفى س / ماذا لو طلب منى تجهيز كشف جميع العاملين بفرع ما أو مشروع ؟ اذن يجب أن يكون البحث مرتبط بإسم مشروع أو الفرع السؤال الذى يطرح نفسه كيف ننفذ ما سبق ؟ نبدأ بالبحث بكود الموظف بالإستعانه بالمثال العملى السابق والخاص بالترحيل نجهز شيت آخر ونسمية استعلام مثلا خاص بالاستعلام عن موظف ما من خلال الرقم الكودى للموظف بهذا الشكل نريد الاستعلام حاليا عن الموظف صاحب الكود رقم 1 اذا نقوم بالحفظ ونفتح محرر الأكواد وندخل الى محرر الاكواد الخاص بحدث الصفحة نفسها ونبدأ بكتابه الكود كما أشرنا سابقا بالدروس السابقة شكل الكود كاملا Private Sub Worksheet_Change(ByVal Target As Range) Application.EnableEvents = False If Target.Address = [h2].Address Then [A2:f65000].ClearContents Dim Lr As Integer Lr = Sheets("list").Cells(Rows.Count, 2).End(xlUp).Row For Each cl In Sheets("list").Range("A2:A" & Lr) If cl = [h2] Then cl.Offset(0, 1).Resize(1, 6).Copy Range("A" & [A65000].End(xlUp).Row + 1).PasteSpecial xlPasteValues Application.CutCopyMode = False Application.EnableEvents = True End If Next End If End Sub ماذا يعنى هذا الكود ؟ نبدأ بتبسيط الأمر ثم شرح الكود عندما أردت ان أقوم بعمليه الاستعلام بكود الموظف جهزنا الشيت ووضعنا شرط ألا وهو الاستعلام بكود الموظف اذا عند تجهيز الشيت لا نحتاج الى عمود كود الموظف لأننا نبحث عن موظف معين من خلال الرقم الكودى الخاص به ولكننا نريد كافه البيانات الأخرى لذلك قمنا بوضعها كما هو موضح بشكل الشيت ونريد عند كل استعلام ان يتم مسح محتويات خلايا شيت الاستعلام تجهيزا للإستعلام عن موظف آخر هنا عندما تقوم بعملية البحث العادية التى يتيحها برنامج اكسل داخل شيت البحث أى شيت جدول كامل بيانات الموظفين من خلال الضغط على CTRL+F وتقوم بالوقوف على عمود كود الموظف قبل الضغط تظهر لك نافذة تكتب فيها رقم الموظف ثم تضغط موافق الى ان تجد الرقم المراد البحث عنه قد يكون هناك تكرار أو رقمين متشابهين فى بدايتهم فأحيانا تبدأ اكواد الموظفين بنظام معين تتشابه فيه الأرقام الأولى اذن توصلنا لتوضيح الفكرة لكى نكتب الكود · سنكتب الكود بحدث الشيت مع اختيار كل تغيير كما اشرنا سابقا · سنضع شرط كتابه الكود بالخلية المعنية بذلك · سنستخدم متغير لكى ننبه الجهاز أن يقوم بعملية تخزين البيانات ومن ثم جلبها لشيت الاستعلام · سنستخدم حلقة تكرارية لعملية البحث · سنطلب جلب بيانات كل موظف ماعدا الكود · سنقوم بمسح محتويات الكشف فى كل مرة سنستعلم فيها · ننبه الجهاز ألا تقوم بعمليه قص ولصق بل نريد نسخ فقط · نضع فى اعتبارنا انه لابد من البحث فى كافة أسطر شيت البحث فكيف نكتب الكود بما يتوافق مع تلك الأفكار الأمر ليس معقدا بل بعد توضيح المطلوب أصبح كتابه الكود أمرا يسيرا وستجد ان كل الأفكار السابقة هى الموجوده بالكود فقط شرح الكود - السطر الأول بداية الكود بحدث الشيت مرتبط بكل تغيير يحدث والمقصود بالتغيير اى ادخال بيانات جديده بالخلية H2 . - السطر الثانى يستعمل هذا السطر عندما يكون هناك اكثر من كود للصفحة الواحدة ، ويعمل هذا السطر على تجميد الاكواد الاخرى ويتم تنفيذ الكود في هذا الحدث فقط . - السطر الثالث هذا يعنى لو حصل اى تغيير بالخليه المعنيه بإدخال شرط البحث قم بتنفيذ التالى ولا ننسى إنهاء IF بنهاية الكود. - السطر الثالث قم بمسح المدى تجهيزا لإستقبال بيانات جديدة . - السطر الرابع اضافة وتسمية متغير لتخزين البيانات . - السطر الخامس المتغير يساوى بدءا من الصف الثانى بشيت البحث وحتى آخر صف . - السطر السادس حلقة تكرارية لكل خليه بشيت البحث بالمدى المحدد حتى آخر صف . - السطر السابع نضع الشرط من خلال قاعده IF ولا ننسى إنهائها بنهاية الكود - السطر الثامن وضعنا داله Offset مع الحلقة التكرارية C1 على أساس انه فى حال الحلقة التكرارية تعادل خليه البحث استخدم داله اوفيست التى تعين الخليه فى ورقة البحث وتقوم بنقل بيانات الأعمده بدءا من العمود التالى لعمود البحث ونسخ الأعمدة السته التاليه لعمود البحث بما يتوافق مع البيان داخل خلية H2 - السطر التاسع نسخ بدءا من العمود الأول + الصف الثانى فى المدى المحدد بالعمود A و ذكرنا الصف + 1 حتى لا ينسخ على صف رأس الجدول بشيت الاستعلام - السطر العاشرننبه البرنامج على ألا تقوم بعمليه قص ولصق - السطر الحادى عشر استخدمنا هذه الامر لإعادة تفعيل الاكواد الاخرى وذلك بوضع هذا السطر في نهاية الكود وذلك إرتباطا إلزاميا بالسطر الثانى ببداية الكود أى عند كتابة السطر الثانى بالكود يجب كتابة هذا السطر فى نهاية الكود - السطر الثانى عشر انهاء IF الأولى - السطر الثالث عشر تنفيذ الجزء التالى بعد IF - السطر الرابع عشر انهاء IF الثانية ثم إغلاق الكود نذهب لتطبيق الجزء الخاص بالإستعلام عن طريق اسم المشروع للإستفادة القصوى من الكود السابق يمكن الاستعانه به فى تنفيذ هذا الاستعلام كل ما عليك فقط التغيير بدلا من جعل الخليه H2 مرتبطه بكود الموظف نجعلها مرتبطه باسم المشروع وهكذا مجرد تباديل بسيطه بالكود نغير هذا السطر من : For Each cl In Sheets("list").Range("A2:A" & Lr) حيث أن عمود A يمثل عمود كود الموظف إلى : For Each cl In Sheets("list").Range("G2:G" & Lr) حيث أن عمود G يمثل عمود الفرع ونغير هذا السطر من : cl.Offset(0, 1).Resize(1, 6).Copy حيث أن مدى البحث والجلب للبيانات يبدأ من بعد العمود الأول بشيت البحث (0, 1) الى : cl.Offset(0, -6).Resize(1, 6).Copy حيث أن مدى البحث والجلب للبيانات يبدأ من قبل عمود الفرع او المشروع الى اول عمود بشيت البحث (0, -6) وبذلك اصبح الكود يقوم بالإستعلام بالمشروع مع تغيير شكل الشيت بإضافة عمود لكود الموظف فى بداية الشيت والإستغناء عن عمود الفرع والذى يمثل المشروع بالمثال العملى المرفق ليس به تطبيق للإستعلام بإسم المشروع تركته لمن يريد التطبيق والإستفاده ولكن به تطبيق آخر للإستعلام بإسم المشروع من خلال كود آخر وبطريقة أخرى وشكل الشيت كما بالصورة التالية والكود الخاص به مضاف بموديول مستقل مربوط من خلال زر بشيت الاستعلام واليكم الكود المستخدم Sub MZM_1() Dim iNm As String Dim Lr As Long, i As Long Dim R As Integer Dim M1 As Integer, M2 As Integer '''''''''''''''' iNm = Range("D2").Value M1 = Range("D3").Value2 M2 = Range("D4").Value2 '''''''''''''''' Range("C7:I500").ClearContents '''''''''''''''' Application.ScreenUpdating = False With æÑÞÉ2 Lr = .Cells(.Rows.Count, "G").End(xlUp).Row For i = 2 To Lr If iNm = CStr(.Cells(i, "G")) Then Select Case .Cells(i, "A").Value2 Case M1 To M2 R = R + 1 Cells(R + 6, "B").Value = R Cells(R + 6, "C").Resize(1, 7).Value = .Cells(i, "A").Resize(1, 2).Value Cells(R + 6, "D").Value = .Cells(i, "B").Value Cells(R + 6, "E").Value = .Cells(i, "C").Value Cells(R + 6, "F").Value = .Cells(i, "D").Value Cells(R + 6, "G").Value = .Cells(i, "E").Value Cells(R + 6, "H").Value = .Cells(i, "F").Value Cells(R + 6, "I").Value = .Cells(i, "G").Value End Select Application.ScreenUpdating = True End If Next End With End Sub بالمثال العملى تجد داخل الكود السابق الشرح الخاص به وتقبلوا منى وافر الاحترام والتقدير تطبيق 2.rar
صلاح الصغير قام بنشر أكتوبر 31, 2014 قام بنشر أكتوبر 31, 2014 ا / ياسر يا ريت ملف pdf مجمع لكل الدروس
محمود_الشريف قام بنشر أكتوبر 31, 2014 الكاتب قام بنشر أكتوبر 31, 2014 أخى الكريم الأستاذ // صلاح الصغير ان شاء الرحمن عندما أنتهى من كامل الدروس سأرفق ملف مجمع به كامل الدروس لأنى ما زلت بالجزء الأول الأساسيات وكيف نطبقها وكل جزء سأرفقه ان شاء الرحمن كاملا بعد الانتهاء منه والله المستعان وتقبل منى وافر الاحترام والتقدير 1
rami.gamal قام بنشر نوفمبر 1, 2014 قام بنشر نوفمبر 1, 2014 أخى الكريم الأستاذ // رامى جمال بارك الله فيكم على مروركم الكريم فيما يختص بإستفساركم عن أمر كتابة الخلية يمكن كتابة الخلية بإسمها المعتاد مثلا (( D8)) ويمكن كتابتها بشكلها ( 4 , 8 ) حيث تمثل 8 رقم الصف و 4 رقم العمود فالشكل الثانى يكتب فى حالات الترحيل والإستدعاء والإستعلام ويستخدم مع الدالات عموما وتوضع بين قوسين ( , ) وبينهم فاصله بهذا الشكل أما الشكل الأول يكتب مثلا عند الاشارة الى مسح خليه معينه وتوضع بين قوسين " " بهذا الشكل أو اضافة داله عدديه مثل D8+D4 وتوضع كل خليه بين قوسين [ ] بهذا الشكل بإختصار كل كيفية لها استخدام معين مرتبط بمعنى السطر المشار فيه الى تلك الخليه وتقبل منى وافرالإحترام والتقدير شكرا اخي الكريم على الاهتمام أولا ثم على التوضيح ثانيا و اتمنى من الله عز و جل ان يجعل هذا العملي في ميزان حسناتك
صلاح الصغير قام بنشر نوفمبر 2, 2014 قام بنشر نوفمبر 2, 2014 ا \ محمود شكرا لاستجابتك و فى انتظار المزيد
خالد حدادة قام بنشر نوفمبر 19, 2014 قام بنشر نوفمبر 19, 2014 لكم سعدت بهذه الملفات أخى محمود الشريف التى أستفادت منها أبنتى وأرجو لك مزيدا من التألق خالد حدادة
islammahmoud قام بنشر ديسمبر 11, 2014 قام بنشر ديسمبر 11, 2014 السلام عليكم ورحمة الله وبركاته تسلم على هذا المجهود الرائع ولكني استخدمت هذا الكود (كود الترحيل) من قبل وهو يعمل ببطئ شديد بين أوراق العمل
الصـقر قام بنشر ديسمبر 11, 2014 قام بنشر ديسمبر 11, 2014 استاذى الفاضل محمود الشريف بارك الله فيك والله مجهود اكثر من رائع جعله الله فى ميزان حسناتكم والله لو الاخوة تعلمو واستفادو من هذه الدروس سيقل طلبات الاستفسار والمساعده بنسبة 50% على الاقل ارجوا ان يكون هذا الجهد الجبار منفعه للجميع وفى ميزان حسناتك ولى رجاء من ادارة المنتدى تثبيت الموضوع مالا نهاية : 1 For then لو الموضوع غير مثبت if "الرجاء تثبيت الموضوع"msgbox end if next
ا بو سليمان قام بنشر ديسمبر 12, 2014 قام بنشر ديسمبر 12, 2014 لم استطيع ا ن ابداء بشكل صحيح ( من بدايه الدرس لاول فهمت نظري ولكن لم استطيع تطبيق ذلك عملي ) بسبب عامل اللغة
الردود الموصى بها