نجوم المشاركات
Popular Content
Showing content with the highest reputation on 11/22/15 in مشاركات
-
بعد المقدمه الحلوه فى الدرس السابق اليوم نقدر نتكلم عن الدرس بتاعنا وهو كيفية اضافه عناصر تحكم داخل الــ Frame عند فتح الفورم أو أثناء عمل الفورم وهو نشط مثال رقم 1 :- نشاهد الصوره التاليه ده فورم فى مرحلة التصميم وصممت عليه Frame وكما تلاحظون ان اسمه فى الخاصيه Name وهو Frame1 وهو الاسم اللى هنستخدمه فى كتابة الاكواد انا عايز اعرف ازاى اضيف عناصر تحكم اثناء فتح الفورم على سبيل المثال عايز اعمل كود فى حدث فتح الفورم لكى يظهر الفورم عند الفتح كالتالى شاهد الصوره طيب ايه هو الكود اللى انا عايز اكتبه فى حدث فتح الفورم ؟ حتى يكون الفورم عند الفتح بهذا الشكل عايز اكتب كود اضيف فيه Label واضيف فيه TextBox واضيف فيه ComboBox طيب ازاى نعمل ده ؟ تعالو نبدأ بأضافه ComboBox شاهد الكود ونشرحه Private Sub UserForm_Initialize() With Me.Frame1.Controls.Add("Forms.Combobox.1", "Combobox1") .Left = 20 .Top = 5 .Height = 40 .Width = 150 .BackColor = &HFFFFC0 .TextAlign = fmTextAlignCenter .FontSize = 20 .Font.Bold = True Dim a As Variant a = Array("ناجح", "راسب") .List = a End With End Sub الكود بكل بساطه يكمن فى السطر الاول استخدمنا With علشان اعرف الكود انى انا هتعامل مع الـ Frame1 فكتبت With Me.Frame1 طيب انا عايز ايه من الــ Frame1 عايز اضيف عنصر وهو ComboBox بداخله لذالك استخدمت Controls.Add طيب Controls.Add دى لها قاعدة ثابته اتكلمنا عنها قبل كدا (Controls.Add( ProgID , Name ,Visible ( "Controls.Add("Forms.Combobox.1" , "Combobox1 هنا Visible تكون التعبئة اختياريا وهى تحمل خيارين أما True أو False ويفضل عدم استخدامه ليه يا عمنا ؟ لان طالما فكرت تنشأ عنصر تحكم اثناء عملك على الفورم اذا انت اكيد عايز تظهره للمستخدم مش انك هتخفية ! بعد كدا عملت خصائص للكمبوبوكس الجديد اللى تم انشائه 1- الخاصيه Left ( وهى تعنى بعد هذا العنصر من الضلع الايسر للفريم بمقدار كذا ) انا قلت انه يبعد عن الضلع الايسر بمقدار 20 Left = 20. 2- الخاصيه Top ( وهى تعنى بعد هذا العنصر من الضلع الاعلى للفريم بمقدار كذا ) انا قلت انه يبعد عن الضلع الايسر بمقدار 10 Top= 10. 3- الخاصيه Height ( وهى تعنى كم يكون ارتفاع العنصر ) انا قلت ان ارتفاع العنصر 40 Height= 40. 4- الخاصيه Width ( وهى تعنى كم يكون عرض العنصر ) انا قلت ان عرضه العنصر 150 Width = 150. 5- الخاصيه BackColor( وهى خاصه بتحديد خلفية للعنصر) BackColor = &HFFFFC0. 6- الخاصيه TextAlign( وهى خاصه بتحديد المحاذاه للعنصر) TextAlign = fmTextAlignCenter. 7- الخاصيه Fontsize( وهى خاصه بتحديد حجم الخط للعنصر) FontSize = 20. 8- الخاصيه Font.Bold( وهى خاصه بتحديد سماكة الخط للعنصر) Font.Bold = True. 9- الخاصيه List( وهى خاصه بتعبئة الكمبوبوكس من خلال المصفوفه كما تلعمنا من قبل) طبعا ممكن تضيف خصائص اخرى للكمبوبوكس او تحذف خصائص من الامثله اللى ذكرناها كله حسب رئيتك انت وطبعا طالما فتحنا With أذن لازم نغلقها بــ EndWith ----------------------------------------------------------------------------------------------- بعد كدا عايز اضيف TextBox With Me.Frame1.Controls.Add("Forms.TextBox.1", "TextBox1") .Left = 180 .Top = 5 .Height = 40 .Width = 150 .TextAlign = 2 .FontSize = 20 .Font.Bold = True .BackColor = &HC0FFFF End With وطبعا الكود مش محتاج شرح لانه مفيش فى جديد ولكن هو عايز مهندس معمارى او شغال فى المساحه ليه ؟؟ لان لازم تحدد مكان العنصر فى الفريم وذالك سيكون من خلال الخاصيه Left كم يبعد التكست بوكس عن الضلع الايسر للفريم ؟؟؟؟ بكل بساطه انا فى الكمبوبوكس قلت يبعد 20 ثم عملت عرض الكمبوبوكس 150 اذن مجموعهم يساوى 170 يعنى المساحه بدأ من 0للضلع الايسر للفريم وحتى 170 مستغله أذن لازم يكون بعد التكست بوكس عن الضلع الايسر للفريم بمقدار اكبر من 170 فأنا عملت Left =180 ليكون هناك فاصل مقداره 10 بين نهاية الكمبوبوكس وبداية التكست بوكس الخاصيه Top اللى هى بعد التكست عن الضلع الاعلى للفريم خليتها=5 زى بالظبط الكمبوبوكس نفس البعد حتى يكون هناك تنسيق جمالى وكذالك الخاصيه Height ارتفاع التكست بوكس = 40 زى بالظبط ارتفاع الكمبوبوكس أما العرض Width جعلته 150 ( وتقدر تكبره او تصغره براحتك ) وباقى الخصائص معروفه ولا يوجد فيها شئ جديد ----------------------------------------------------------------------------------------------------- بعد كدا عايز اضيف Label With Me.Frame1.Controls.Add("Forms.Label.1", "Label1") .Left = 340 .Top = 5 .Height = 40 .Width = 150 .SpecialEffect = fmSpecialEffectEtched .TextAlign = 2 .FontSize = 24 .Font.Bold = True .BackColor = 8454016 .Caption = "الصقر" End With لازم تحديد مكان العنصر فى الفريم وذالك سيكون من خلال الخاصيه Left كم يبعد الليبل عن الضلع الايسر للفريم ؟؟؟ بكل بساطه انا عملت التكست بوكس يبعد عن الضلع الايسر بمقدار 180 وعملت عرضه 150 اذن 180+150=330 فأنا عملت Left =340 ليكون هناك فاصل مقداره 10 بين نهاية التكست بوكس وبين بداية الليبل الخاصيه Top اللى هى بعد الليبل عن الضلع الاعلى للفريم وجعلته = 5 نفس الكمبوبوكس والتكست بوكس لكى يكون هناك شكل منسق وجمالى وكذالك الخاصيه Height ارتفاع اليبل = 40 زى بالظبط ارتفاع الكمبوبوكس والتكست بوكس أما العرض Width جعلته 150 ( وتقدر تكبره او تصغره براحتك ) وباقى الخصائص معروفه ولا يوجد فيها شئ جديد شاهد الكود بشكله النهائى Private Sub UserForm_Initialize() With Me.Frame1.Controls.Add("Forms.Combobox.1", "Combobox1") .Left = 20 .Top = 5 .Height = 40 .Width = 150 .BackColor = &HFFFFC0 .TextAlign = fmTextAlignCenter .FontSize = 20 .Font.Bold = True Dim a As Variant a = Array("ناجح", "راسب") .List = a End With With Me.Frame1.Controls.Add("Forms.TextBox.1", "TextBox1") .Left = 180 .Top = 5 .Height = 40 .Width = 150 .TextAlign = 2 .FontSize = 20 .Font.Bold = True .BackColor = &HC0FFFF End With With Me.Frame1.Controls.Add("Forms.Label.1", "Label1") .Left = 340 .Top = 5 .Height = 40 .Width = 150 .SpecialEffect = fmSpecialEffectEtched .TextAlign = 2 .FontSize = 24 .Font.Bold = True .BackColor = 8454016 .Caption = "الصقر" End With End Sub وعند تشغيل الفورم ستجد الفورم كما هو بالصوره ---------------------------------------------------------------------------------------------------------------------- مثال رقم 2 :- لو انا عايز اعمل عدد 10 لليبل وعدد 10 تكست بوكس وعدد 10 كمبوبوكس داخل الفريم واتحكم فى الاسكرول بار شاهد الصوره التاليه أول خطوه لازم افعل خاصيه الاسكرول بار الرأسى للفريم من شاشة الخصائص فى مرحله الخطوه الثانيه هكتب كود فى حدث فتح الفورم واستخدم الحلقه التكراريه For Next Private Sub UserForm_Initialize() Dim Top As Integer Dim i As Integer Top = 5 For i = 1 To 10 هنا مكان كتابة الكود السابق Top = Top + 40 Next Me.Frame1.ScrollHeight = Top End Sub فى أول الكود عملت تعريف لعدد 2 متغير Top & i ثم كتبت ان الـ Top قيمتها = 5 لماذا تساوى 5 ؟؟ (أولا ممكن تكتب اى رقم كما يحلو لك) وهو قيمة الفرق بين الضلع الاعلى للفريم والصف الاول من العناصر لذالك كتبت الــ Top = 5 ثم عملت حلقه تكراريه وسميتها i وقلت ان i تساوى من 1 الى 10 الحلقة لما تشتغل هيكون فى اول لفه له قيمة i تساوى 1 ثم ينتقل الى السطر التالى وهو Top = Top + 40 اذن ناتج المعادله هيكون Top = 5+ 40 لماذا رقم 40؟رقم 40 هو ارتفاع العناصر ( الليبل والتكست بوكس والكمبوبوكس ) يعنى قيمة الــ Top حتى هذه للحظه بعد أول لفه تساوى 45 ثم يصل الكود الى Next يعنى التالى ارجع الى الحلقه For وخلى قيمة i تساوى 2 ثم ينتقل الى السطر التالى وهو Top = Top + 40 اذن ناتج المعادله هيكون Top = 45+40 يعنى قيمة الـ Top حتى هذه اللحظه تساوى 85 وهكذا الحلقه بتلف وكل مره قيمة الــ Top بتزيد حتى اخر لفه للحلقه سيكون 405 وبعد انتهاء الحلقه سياتى الكود الى اخر سطر وهو Me.Frame1.ScrollHeight = Top يعنى ارتفاع الاسكرول بار هو = Top اللى هو 405 طبعا الخاصيه ScrollHeight اتكلمنا عليها قبل كدا بالتفصيل وعرفنا ان وظيفتها تحديد ارتفاع الاسكرول بار طيب تعالو بقى نحط الكود السابق اللى بالمثال الاول مع تعديلات بسيطه جدا شاهد الكود Private Sub UserForm_Initialize() Dim Top As Integer Dim i As Integer Top = 5 For i = 1 To 10 With Me.Frame1.Controls.Add("Forms.Combobox.1", "Combobox" & i) .Left = 20 .Top = Top .Height = 40 .Width = 150 .BackColor = &HFFFFC0 .TextAlign = fmTextAlignCenter .FontSize = 20 .Font.Bold = True Dim a As Variant a = Array("ناجح", "راسب") .List = a End With With Me.Frame1.Controls.Add("Forms.TextBox.1", "TextBox" & i) .Left = 180 .Top = Top .Height = 40 .Width = 150 .TextAlign = 2 .FontSize = 20 .Font.Bold = True .BackColor = &HC0FFFF End With With Me.Frame1.Controls.Add("Forms.Label.1", "Label" & i) .Left = 340 .Top = Top .Height = 40 .Width = 150 .SpecialEffect = fmSpecialEffectEtched .TextAlign = 2 .FontSize = 24 .Font.Bold = True .BackColor = 8454016 .Caption = "الصقر" & i End With Top = Top + 40 Next Me.Frame1.ScrollHeight = Top End Sub ماذا تم تغييره فى الكود اللى كان بالمثال الاول ؟ 1- تغيير هذا السطر فى كل عنصر تحكم على سبيل المثال الكمبوبوكس (With Me.Frame1.Controls.Add("Forms.Combobox.1", "Combobox" & i هنا الخاصيه Name لكل عنصر اسمه ComboBox & i فى اللفه الاولى للحلقه التكرارية سيكون قيمة i تساوى 1 اذن الكمبوبوكس فى الصف الاول هيكون الخاصيه Name اسمه ComboBox1 وفى اللفه التانيه للحلقه التكرارية سيكون قيمة i تساوى 2 اذن الكمبوبوكس فى الصف الثانى هيكون الخاصيه Name اسمه ComboBox2 وهكذا وذالك لكى يكون لكل كمبوبوكس اسم مختلف عن الاخر ونفس الكلام على الليبل والتكست بوكس 2- Top = Top. جعلت قيمة الخاصيه Top ( بعد العنصر عن الضلع الاعلى للفريم ) يساوى Top اللى هو قيمته كل مره بتتغير مع الحلقه التكراريه فى البدايه بيكون قيمته 5 فالعنصر فى الصف الاول هيبعد عن الضلع الاعلى للفريم بمقدار 5 وفى اللفه التانية للحلقه سيكون الــ Top قيمته 45 اذن العناصر فى الصف الثانى يبعدو عن الضلع الاعلى للفريم بمقدار 45 وهكذا ---------------------------------------------------------------------------------------- ارجوا ان اكون وفقت بالشرح والى لقاء اخر ومثال عملى رقم 3 وهيكون مهم جدا جدا جدا انتظرونا تقبلوا تحياتى6 points
-
السلام عليكم ورحمة الله أخي الكريم، هذا حل آخر بتعديل المعادلات وإضافة "عمود إضافي" العمود G (بمعادلات) في كل من ورقتي الغياب (AbsenceProf و AbsenceEleve) أرجو أن يفيدك في عملك ويفي بالمطلوب.... بن علية repport help++.rar3 points
-
أخي الكريم أبو يوسف يبدو أنني تهت منك كما تاه أخي الغالي مختار يا ريت توضح المطلوب بشيء من التفصيل دون نسيان أي جزئية لكي يتم العمل بشكل صحيح ... في المرفقات مجلدين بنين وبنات ...بهما ملفات CSV .. ما هو شكل المخرج النهائي ؟؟؟ أعتقد أننا انتهينا من مرحلة تجميع البيانات في مصنف واحد في عدة شيتات وإخراج البيانات بشكل يسهل التعامل معه .. ننتقل للجزئية التالية (وأفضل التعامل مع نقطة واحدة وبالتفصيل .. لكي لا يطول الموضوع بدون داعي) تقبل تحياتي2 points
-
وعليكم السلام . تفضل ، المرفق في هذا الرابط يقوم بفتح النموذج عدة مرات ، بدون ان يعمل نسخ جديدة: http://allenbrowne.com/ser-35.html جعفر2 points
-
2 points
-
السلام عليكمهذه طريقة لتصفح الانترنت من داخل برنامجك على الاكسيلكلها امثلة بسيطة قابلة للتحسين لتصبح ذو فائدة web.rar2 points
-
السلام عليكم اعتقد ان هناك طريقة ابسط من هذه ,لكن هذا ما توصلت اليه جرب المرفق تحياتي repport help+.rar2 points
-
السّلام عليكم و رحمة الله و بركاته أخي الكريم "محمّد عبد السّلام" .. أشكر أستاذنا القدير " طلعت محمّد حسن " على الملف الرّائع و الكود الأروع جزاه اللّه خيرًا و زادها بميزان حسناته حاولت رّفع الملف في حينه .. لكن صدّقني لم أستطع بسبب خلل في الأنترنت .. حيث لا يمكنني رفع ولو صورة منذ عدّة أيّام ..لا يمكنني و لو المشاركة برسالة .. و بما أنّها فاتورة .. و الفواتير تلزمها الدقّة و الثّبات فأضفتُ لك قائمة إختيارات من الكومبوبوكس و رسالة تأكيد قبل حذف السّطر .. كإثراء للموضوع و تنويع في الأكواد .. و أضفت لك كود الدّخول على شيت INVOICE ..أتمنى أن تفي بالغرض .. فائق إحتراماتي الفاتورة.rar2 points
-
سابعا تسمية command Button الأول Search والثانى Back و كتابة إسم موقع فى الخلية D2 كما بالصورة الأتية ثامنا /الضغط دبل كليك على command Button وكتابة الكود الأتى Private Sub CommandButton1_Click() link_name = Sheets("sheet1").Range("d2") Call Sheets("sheet1").WebBrowser1.Navigate(link_name) End Sub أرجوا أن أكون وفقت فى الشرح معلشى بقى أخى الحبيب / ياسر خليل شرحى على قدى2 points
-
السلام عليكم وهذه طريقه اخرى العمليه تتم عبر زر تحياتي Ali_Hid.rar2 points
-
السلام عليكم ورحمة الله بعد إذن اساتذنا الأعزاء الافاضل الهاشمي وأبو البراء الأخ صالح إليك الملف إن شاء الله يكون المطلوب أبو الحسن والحسين اخفاء صفوف محددة.rar2 points
-
2 points
-
خامساً :- كيفية اضافه عناصر تحكم داخل الــ Frame مع التحكم فى الاسكرول بار وذالك عند فتح الفورم او اثناء العمل على الفورم وهو نشط العنوان يبدو انه غريب شوية ومعقد انا بس محتاج من حضرتك تشرب كوباية شاى وتفتح زهنك معايا لان ده شغل محترفين والحمد لله احنا مشينا مشوار طويل فلازم يكون عندك ثقه بنفسك وتقتحم الصعاب وميهمكش طالما انت فى جامعه اوفيسنا بص يا سيدى العنوان ده بختصار ماذا يعنى ؟ طبعا احنا عارفين ان علشان اصمم عنصر تحكم لازم يكون من شاشة التصميم لكن انت عمرك فكرة او خطر ببالك انك تخلق أو تنشئ عنصر تحكم وانت شغال على الفورم مش فى مرحلة التصميم !!!!!! طبعا انتو عارفين انى اناعملى وعلشان افهم لازم اعمل مثال عملى فبالمثال يتضح لنا المقال شوف الصوره دى وخليك معايا اوعى تغمض عنيك هو ده موضوعنا اليوم ازاى نصمم اى عنصر تحكم اثناء فتح الفورم بكود فى حدث فتح الفورم او اثناء عمل الفورم تعالو على سبيل المثال نعمل كود فى حدث فتح الفورم Initialize كدا انا عملت سطر الاعلان عن المتغير وقمت بتسميته Label ( وممكن تسميه اى اسم كيفما شئت ولكن كما قلت افضل تسميته طبقا لاسم عنصر التحكم ) وقلت ان نوع المتغير من النوع MSForms.Label وعايز احول المتغير ده الى كائن بحيث اعرفه واقدر اتعامل معاه فأستخدمت set وهذه الكلمة هى لتحويل المتغير الى كائن القاعده الخاصه بـ Set هى الكائن = المتغير set الكائن = Set Label ما هو الكائن ؟؟؟ هو عنصر تحكم هيتم اضافته على الفورم Controls.Add ( تعنى اضافه عنصر ) القاعدة العامه للـ Controls.Add هى (Controls.Add(ProgID, Name ,Visible الجزء الثالث , الجزء الثانى , الجزء الاول الجزء الاول :- ProgID يكون اجبارى الادخال وهو يكون احدى عناصر الفورم كالتالى الجزء الثانى :-Name هو اسم العنصر اللى هيتم استخدامه فى كتابة الاكواد وهو يقوم بدور الخاصيه Name فى شاشة الخصائص ويكون تعبئة اختياريا ولكن يفضل كتابتة اذا كنت تريد التعامل مع هذا العنصر فيما بعد الجزء الثالث:-Visible ويكون تعبئة اختياريا وهو يحمل خيارين أما True أو False ويفضل عدم استخدامه ليه يا عمنا ؟ لان طالما فكرت تنشأ عنصر تحكم اثناء عملك على الفورم اذا انت اكيد عايز تظهره للمستخدم مش انك هتخفية ! اذن لما نيجى نحول المتغير الى كائن لنستطيع التعامل معه هنستخدم قاعدة Set وهيكون كالتالى Set label = Controls.Add("forms.label.1", "label") هنا فى قاعدة Controls.Add قمت بتعبئة الجزء الاول ProgID وهو "forms.label.1" وتم وضعه بين علمتى تنصيص والجزء الثانى Name هو "label" وتم وضعه بين علامتى تنصيص وهو هيكون اسم العنصر فى كتابة الاكود الجزء الثالث Visible كما قلت انه اختيارى فلم اقم بتعبئته لذالك سيقوم الفيجوال بيسك باستخدام True بشكل افتراضى كدا وصلنا بالكود الى الان كالتالى Private Sub UserForm_Initialize() Dim label As MSForms.label Set label = Controls.Add("forms.label.1", "label") End Sub طيب انا كدا قمت بتصميم العنصر Label وعايز اعمل له خصائص على سبيل المثال اسم الليبل يكون " الصقر " يبعد عن الضلع الايسر للفورم بمقدار 100 عرضه يكون 120 يبعد عن الضلع الاعلى للفورم بمقدار 50 الخلفيه تكون حمراء محازة النص يكون بالمنتصف حجم الخط 20 سماكة الخط عريض التاثير يكون بارز طبعا الكلام ده شرحناه فى دروس الليبل وهيكون كالتالى فى الكود Private Sub UserForm_Initialize() Dim label As MSForms.label Set label = Controls.Add("forms.label.1", "label") With label .Caption = "ÇáÕÞÑ" .Left = 100 .Width = 120 .Top = 50 .BackColor = &HFF& .TextAlign = fmTextAlignCenter .Font = 20 .Font.Bold = True .SpecialEffect = fmSpecialEffectRaised End With End Sub شاهد الصوره عند تشغيل الفورم عايزك تجرب تنشئ عنصر تحكم او عناصر تحكم غير الليبل لازم تجرب بنفسك يا عبدالتواب ناخد مثال اخر مثلا الكمبوبوكس شاهد الكود كالتالى ولاحظ الفرق بنفسك Private Sub UserForm_Initialize() Dim Combobox As MSForms.Combobox Set Combobox = Controls.Add("forms.Combobox.1", "Combobox") With Combobox .Left = 100 .Width = 120 .Top = 50 .BackColor = &HFF& .TextAlign = fmTextAlignCenter .Font = 20 .Font.Bold = True .SpecialEffect = fmSpecialEffectRaised .RowSource = "A2:A10" End With End Sub شاهد الصوره عند فتح الفورم طبعا دى كلها مقدمه للدرس بتاعنا اللى لسه الى الان مبدأناش الشرح فيه ولكن كان لازم نعرف يعنى ايه نضيف عنصر تحكم اثناء عمل الفورم وليس من شاشة التصميم للدرس بقية انتظرونا2 points
-
2 points
-
ملف رائع أخي الغالي عبد العزيز لا حرمنا الله من إبداعاتك المتميزة والمميزة والفريدة1 point
-
أخي الكريم سابيك ..أعتقد أنه تم التنويه من قبل بتغيير اسم الظهور للغة العربية فيرجى الالتزام بالتعليمات إليك الملف التالي - بعد إذن أخي وحبيبي في الله - ياسر العربي ...عله يفي بالغرض UserForm As Keybad YasserKhalil.rar1 point
-
حبيبى الغالى أ / عبد العزيز الذى يسعدنى ويشرفنى ويشجعنى دائما بمرورة الدائم لموضوعاتى المتواضعة أشكرك على كلامك الرائع ودعائك الطيب تقبل خالص تحياتى وتقديرى لشخصكم الكريم1 point
-
1 point
-
1 point
-
1 point
-
ياحبيب قلبى كفايه ذوقك وأدبك وإن كان على الهزار مش هتلاقى حد فى هزارى بجد بجد انت نعم الاخ والصديق ومش هبطل طلبات1 point
-
جزيت خير الجزاء أخي الحبيب ياسر فتحي على المجهود المبذول في الموضوع وشرح رائع ..ومتميز بارك الله فيك وننتظر المزيد من موضوعاتك الشيقة والممتعة .. بس بلاش كروتة واشرح بالتفصيل زي المشاركة اللي فاتت (رغم إنك كروت فيها بردو زر التعامل مع Back بس هنعديها لك المرة دي)1 point
-
خذ نسخ من النموذج المراد فتحه مرتين وقم بعمل لصق وقم بتغير الاسم ههههههه واضحك ع البرنامج وافتح النموذج وكذلك فى التقرير ههههههه افتكر كلامى اضحك على البرنامج1 point
-
السلام عليكم أخي الحبيب ياسر ما شاء الله بارك الله...تطور ملحوظ راجيا لك التوفيق والسداد..1 point
-
1 point
-
الله عليك أستاذنا محمود طريقة سهلة جداً وسأستخدمها إن شاء الله ولكن أليس هناك من حل من خلال معادلة صفيف لنزداد علماً . واكرر شكرى مرة اخرى .1 point
-
اخي الكريم ياسر خليل ، اعجز عن الشكر لك عن هذا الجهد المتميز وجازلك الله عني خير فعلا هو المطلوب تماما الله يكرمك يارب واسف عن التاخير1 point
-
1 point
-
Sub AutoNumbering() ActiveCell = ActiveCelltiveCell NS: A = Application.InputBox("أدخل أول رقم فى السلسلة التى تريد إنشاؤها", "أول رقم") B = Application.InputBox("أدخل آخر رقم فى السلسلة التى تريد إنشاؤها", "آخر رقم") If A = False Or B = False Then Exit Sub ElseIf A = "" Or B = "" Then MsgBox "!تأكد من إدخال الأرقام بشكل صحيح", vbExclamation, "إدخال خاطئ" Else If [IV65536] = 1 Then ActiveCell = A Else: Columns(ActiveCell.Column).Rows(65536).End(xlUp).Select If ActiveCell = "" Then ActiveCell = A Else: ActiveCell.Offset(1, 0).Select Selection = A End If End If ActiveCell.DataSeries xlColumns, , , 1, B End If If Application.WorksheetFunction.CountA(Columns(ActiveCell.Column)) = 1 Then ActiveCell.ClearContents Beep If MsgBox("أول رقم فى السلسلة أكبر من آخر رقم ... هل تود إعادة المحاولة ؟", vbQuestion + vbYesNo, " إدخال خاطئ") = vbNo Then Exit Sub Else: GoTo NS End If End If Beep If MsgBox("هل تود إنشاء سلسلة رقمية أخرى ؟", vbYesNo + vbQuestion, "إنشاء سلسلة أخرى") = vbNo Then Exit Sub Else: GoTo NS End If End Sub حدد النطاق المراد دق السرى فيه بالماس ثم شغل الكود لتضع أول وآخر رقم فى المجموعة تحياتى1 point
-
السّلام عليكم و رحمة الله و بركاته أخي الكريم "عبد العزيز البسكري جزاك الله خيرا وشكر أستاذنا القدير " طلعت محمّد حسن جزاكم اللّه خيرًا و زادها بميزان حسناتكم1 point
-
أخي الحبيب عبد العزيز السلام عليكم جزاكم الله خيراً ...أنا مجرد ناقل للعلم ...ورب مبلَّغ أوعى من سامع أو ناقل وربّ حامل فقه إلى من هو أفقه منه هذه الخواطر ذكرتني بشيء كنت أتلذذ به عندما كان الأوفيس 2003 وكان الويندوز Xp حيث كنت أدربه على كلامي أنتقل إلى الإكسيل فيستجيب لكثير من الأوامر (طبعاً باللغة الإنكيزية) ولا أدري أين ذهبت هذه الميزة...التي كان يجب أن تمضي قدماً أو تتطور لتشمل لغتنا العربية الحبيبة.. وأكرر أنني ناقل علم لا أدعيه لنفسي والله خير الشاهدين. والسلام عليكم.1 point
-
1 point
-
السّلام عليكم و رحمة الله و بركاته بارك الله فيك أستاذنا القدير " محمّد حسن المحمّد " على الدّروس القيّمة .. عمل أكثر من رائع .. و أخيرًا ظهر المستخبّي .. أدعو الله ألاّ يحرمنا منك و من إطلالاتك المثمرة و المميّزة و المفيدة بارك الله فيك .. جزاك الله خيرا و زادها بميزان حسناتك فائق إحتراماتي و إعجاباتي1 point
-
1 point
-
السلام عليكم ورحمة الله وبركاته أخي الحبيب م /ياسر جزاكم الله خيراً على رفد المنتدى الكريم بما يفيد أعضاءه الكرام والسلام عليكم.1 point
-
يمكنك التعديل الى هذا الكود Private Sub Worksheet_Change(ByVal Target As Range) If Target.Count <> 1 Or Target.Column < 7 Or _ Target.Column > 11 Then Exit Sub If Target.Column = 11 Then Target.Offset(1, -4).Select: Exit Sub Target.Offset(0, 1).Select End Sub1 point
-
جرب On Error GoTo 10: DoCmd.OutputTo acOutputReport, "q1", acFormatPDF MsgBox "meeting report has been saved succefully", vbInformation, "saving confirmed" 10: بالتوفيق1 point
-
1 point
-
السلام عليكم ورحمة الله وبركاته أخى العزيز ناصر المصرى بارك الله فيك ... أشكرك أخى الكريم على هذا الكلام الكبير الذى أسعدنى كثيرا ..و مشكور أيضا على مرورك الكريم أخى و حبيبى و أستاذى الكبير ياسر خليل يعلم الله عز وجل أننى أعتز بأنك أحد أهم الذين تعلمت - ولا زلت أتعلم - منهم ... تقبل الله منا و منكم صالح الاعمال أخى و حبيبى الغالى ياسر فتحى بارك الله فيك ... أشكرك أخى الغالى على هذا التشجيع الكبير و المستمر تقبل الله منا و منكم صالح الاعمال أخى و حبيبى العزيز عبدالغزيز بارك الله فيك ... أشكرك أخى الغالى على كلامك الطيب و مرورك الكريم ... تقبل الله منا و منكم صالح الاعمال1 point
-
1 point
-
السلام عليكم ورحمة الله للاسف حاولت استخدام الدالة ولكن المحاولة فشلت لذلك اضطررت لاستخدام الاعمدة المساعدة عموما لو توصلت لفكرة اخرى بدون استخدام الاعمدة المساعدة لن اتأخر ان شاء الله1 point
-
1 point
-
جرب الأكواد بهذا الشكل (رغم أن الملف يعمل عندي على أوفيس 2013 بدون مشاكل) Sub TarhilByRegion() Dim WS As Worksheet Dim Cell As Range Dim strSheet As String Dim LR As Long Set WS = Sheets("الدفتر") Application.ScreenUpdating = False For Each Cell In WS.Range("J3:J" & WS.Cells(Rows.Count, "J").End(xlUp).Row) strSheet = Cell.Value On Error GoTo 1 LR = IIf(Sheets(strSheet).Cells(Rows.Count, "D").End(xlUp).Row < 3, 3, Sheets(strSheet).Cells(Rows.Count, "D").End(xlUp).Row + 1) Cell.Offset(, -8).Copy Sheets(strSheet).Range("D" & LR).PasteSpecial xlPasteValues Cell.Offset(, -6).Resize(, 8).Copy Sheets(strSheet).Range("E" & LR).PasteSpecial xlPasteValues 1 Next Cell WS.Activate Application.CutCopyMode = False Application.ScreenUpdating = True End Sub Sub ClearAllExceptMain() Dim SH As Worksheet For Each SH In ThisWorkbook.Worksheets If SH.Name <> "الدفتر" And SH.Name <> "كود" Then SH.Range("B3:L1000").ClearContents Next SH End Sub لا تنسى أخي الفاضل أن تحدد أفضل إجابة ليظهر الموضوع مجاب ومنتهي ولا تنسى أن تضغط على "أعجبني هذا" .. لاحظت أن الإعجابات ليست من صاحب الموضوع نفسه إنما من أعضاء وأخوة آخرين بمجرد إطلاعهم على الموضوع فعجباً1 point
-
الأخ الغالي محبوب ... إليك إصدار آخر من الملف ..عله ينال رضاك ..قمت ببعض الإضافات ليكون الملف شامل وكافي ووافي لكل السنوات ... جرب الملف التالي (ولو عجبك غير أفضل إجابة وحددها هنا ..ليسهل للباحث فيما بعد الوصول بسرعة للحل المطلوب) متنساش تدعي لي ..ومتنسناش بفردة كاوتش من معرض السيارات (أي مصلحة منك ..!!) Three Loops In Two Excel Files By YasserKhalil V2.rar1 point
-
الأخ الحبيب محبوب تعبت والله ..بقالي ساعتين عشان أعمل الكود الملعبك ده بس الحمد لله بفضل الله تم المطلوب .. افتح ملف "الأقساط الشهرية 2015" ستجد الكود بداخله .. في ورقة الفهرس يوجد زر امر انقر عليه لتنفيذ الكود .. Sub YasserKhalil() Dim WBK As Workbook Dim SH As Worksheet, WS As Worksheet, Cell As Range Application.ScreenUpdating = False Application.DisplayAlerts = False Set WBK = Workbooks.Open(ThisWorkbook.Path & "\حسابات العملاء 1.xlsx") For Each SH In ThisWorkbook.Sheets If SH.Name <> "الفهرس" Then SH.Range("C6:F99,H6:I99").ClearContents For Each WS In WBK.Sheets If WS.Name <> "الفهرس الرئيسى" Then With WS If IsEmpty(.Range("A6")) Then GoTo 1 For Each Cell In .Range("A6:A" & .Cells(Rows.Count, 1).End(xlUp).Row) If Month(Cell.Value) = MonthNumber(SH.Name) Then SH.Range("H" & SH.Cells(99, 8).End(xlUp).Row + 1) = Cell.Value SH.Range("C" & SH.Cells(99, 3).End(xlUp).Row + 1) = .Range("C2").Value SH.Range("E" & SH.Cells(99, 5).End(xlUp).Row + 1) = Cell.Offset(, 2) SH.Range("F" & SH.Cells(99, 6).End(xlUp).Row + 1) = Cell.Offset(, 3) SH.Range("I" & SH.Cells(99, 9).End(xlUp).Row + 1) = .Range("M8").Value End If Next Cell 1 End With End If Next WS End If Next SH WBK.Close SaveChanges:=False Application.DisplayAlerts = True Application.ScreenUpdating = True End Sub Function MonthNumber(MonthName As Variant) As Variant Select Case MonthName Case "": MonthNumber = "" Case "يناير": MonthNumber = 1 Case "فبراير": MonthNumber = 2 Case "مارس": MonthNumber = 3 Case "ابريل": MonthNumber = 4 Case "مايو": MonthNumber = 5 Case "يونيو": MonthNumber = 6 Case "يوليو": MonthNumber = 7 Case "اغسطس": MonthNumber = 8 Case "سبتمبر": MonthNumber = 9 Case "اكتوبر": MonthNumber = 10 Case "نوفمبر": MonthNumber = 11 Case "ديسمبر": MonthNumber = 12 End Select End Function تقبل تحياتي ولا تنسى أن تحدد المشاركة إذا أعجتك الإجابة كأفضل إجابة (ساعتين مني قصاد ثانيتين منك .. أظن كدا عدل والحمد لله) Three Loops In Two Excel Files By YasserKhalil.rar1 point
-
سؤال جميل وتكثر الحاجة اليه فقد تكون الاسماء خماسية او رباعية او ثلاثية .... وتكون حاجتنا في اظهار الاسم الاول واسم العائلة فقط مثلا لذا فنحن بحاجة الى عدد خانات الاسم كما تفضل به الاخ السائل لكي نختار ما نريد من اجل هذا سيكون التطبيق التالي داخل الاستعلام لاختيار الاسم الاول واسم العائلة مهما تعددت الخانات1 point
-
تفضل اخي محمد الدليمي بعد التعديل علي الملف Anas2_Up.rar1 point
-
وجدت المثال المرفق في جهازي لحل مشكلتك وهو من تصميم الاخت زهره واذا رغبت في معرفة بعض التفاصيل قم بزيارة هذة الصفحة المتعلقة بفصل الاسماء في اكسس http://support.microsoft.com/kb/286238/ar za_SplitName_UP.rar1 point
-
1 point
-
شكرا أستاذي رضوان على الرد السريع ولكن هناك ملاحظة أخرى على الكود: إكتب الإسم التالي في الجدول احمد محمد حازم الدوسري النتيجة في إسم العائلة كالتالي : وسري وهذا الخطا والصواب أن يكون الدوسري ملاحظة : حقل الإسم قد يحمل الإسم الثلاثي أو الرباعي أو الخماسي. تحياتي القلبية1 point