عبدالله باقشير قام بنشر أغسطس 18, 2010 قام بنشر أغسطس 18, 2010 اعداد كشوفات مدرسية باختيار روؤس الاعمدة عن طريق فورم بطريقة ابسط للفهم وسهولة نقلها الى اي ملف مع تضبيط الطباعة مع الشرح اعداد كشوفات مدرسية باكواد سهلة التغيير والتي تجعل استخدامه ونقلة الى ملف آخر للعمل عليه بشكل مبسط وتتم التغييرات في مكان واحد في اول الكود هنا : '====================================================== ' اول صف للتقرير Private Const iRow As Integer = 4 '------------------------------------------------------ ' اسم ورقة التقارير Private Const Sh_Report As String = "التقرير" '------------------------------------------------------ ' اسم ورقة البيانات Private Const Sh_MyDate As String = "بيانات اساسية" '------------------------------------------------------ ' تعيين نطاق الخلايا في ورقة البيانات ' ويشمل رؤوس الاعمدة Private Const MyRng_MyDate As String = "A5:X1000" '====================================================== ويمكن يستخدم لاي كشوفات وتقارير او غيره و ساقوم بشرح هذا العمل على شكل دفعات رويدا رويدا وسوف نبدأ اليوم بارفاق الملف وسيتبعه الشرح ان شاء الله خبور خير اعداد تقارير مدرسية.rar 4
عبدالله باقشير قام بنشر أغسطس 18, 2010 الكاتب قام بنشر أغسطس 18, 2010 السلام عليكم const هو عبارة عن ثابت خاص بالمستخدم const اسم الثابت as نمط البيانات = تعبير Const iRow As Integer = 4 يحب الانتباه للتالي: 1 -- لا يمكن ان يكون عرضا ونمطا خاصا بالمستخدم 2 -- لا يمكن ان يكون تابعا معرفا من قبل المستخدم او تابعا محجوزا في Visual Basic 1
عبدالله باقشير قام بنشر أغسطس 18, 2010 الكاتب قام بنشر أغسطس 18, 2010 السلام عليكم شرح لكيفية اضافة عناصر الى فورم Private Sub UserForm_Initialize() Dim MyOptionButton As Control Dim MyTop As Integer, i As Integer ' اول توب للاضافة MyTop = 18 For i = 1 To 5 ' اضافة شيك بوكس بعدد السلسلة في المتغير ' i Set MyOptionButton = Me.Controls.Add("Forms.OptionButton.1") With MyOptionButton ' اين يوضع الشيك بوتن ' '.Move Left, Top, witdh, Height .Move 18, MyTop 'موقع التشييك باليمين .Alignment = 0 'اللون .BackColor = &HFFC0C0 'عرض الخط .Font.Bold = True 'ما يكتب عليه .Caption = "خبور " & i 'الكتابة من اليمين .TextAlign = fmTextAlignRight 'يشيك الشيك بوتن i=1 اذا كانت If i = 1 Then .Value = True End With 'يتغير الموقع بمقدار 30 MyTop = MyTop + 30 Next End Sub في المرفق مثالين لذلك مع الشرح داخل الكود تقبلوا تحياتي وشكري Add_Controls.rar 1
عبد الفتاح كيرة قام بنشر أغسطس 18, 2010 قام بنشر أغسطس 18, 2010 (معدل) الفاضل خبور معادلة التسلسل =SUBTOTAL(3;$B$6:B8) معلومة قيمة لكن هل المعادلة =row()-5 و نسحبها لأسفل تقوم بنفس المهمة ؟ أم أن للأولى ميزة عليها ؟ تم تعديل أغسطس 18, 2010 بواسطه kemas
عبد الفتاح كيرة قام بنشر أغسطس 18, 2010 قام بنشر أغسطس 18, 2010 (معدل) أخى خبور أثناء المذاكرة و البحث توصلت لكود مشابه لإضافة تسميات و مربعات نصوص للفورم ما رأيك فيه Private Sub UserForm_Initialize() k = ScrollBar1.Value label55.Caption = "ÑÞã : " & k lcol = Sheets(1).Range("ff1").End(xlToLeft).Column Dim chkbox As Control Dim txtbox As Control For i = 1 To lcol Set chkbox = Me.Controls.Add("Forms.label.1", "label" & i, True) chkbox.Left = Me.Width - 70 chkbox.Top = 1 + (i * 20) chkbox.Width = 60 chkbox.Height = 15 chkbox = True Set txtbox = Me.Controls.Add("Forms.textbox.1", "textbox" & i, True) txtbox.Left = Me.Width - 160 txtbox.Top = (i * 20) txtbox.Width = 90 txtbox.Height = 20 Next i ScrollBar1.Value = 1 k = ScrollBar1.Value For j = 1 To lcol With Me.Controls("label" & j) .Caption = Sheets(1).Cells(1, j).Value .TextAlign = fmTextAlignCenter .Font.Bold = True .Font.Size = 10 .FontName = "Times New Roman" .ForeColor = vbRed End With With Me.Controls("textbox" & j) .Text = Sheets(1).Cells(k, j).Offset(1, 0).Value .TextAlign = fmTextAlignCenter .Font.Bold = True .Font.Size = 10 .FontName = "Times New Roman" End With Next j End Sub لو سمحت شاهد المرفق وقل رأيك فيه جارى رفع فديو أيضا الديناميكى التام لاستعراض السجل وحفظ التغييرات.zip تم تعديل أغسطس 18, 2010 بواسطه kemas
عبدالله باقشير قام بنشر أغسطس 18, 2010 الكاتب قام بنشر أغسطس 18, 2010 الفاضل خبور معادلة التسلسل =SUBTOTAL(3;$B$6:B8) معلومة قيمة لكن هل المعادلة =row()-5 و نسحبها لأسفل تقوم بنفس المهمة ؟ أم أن للأولى ميزة عليها ؟ المعادلة: =SUBTOTAL(3;$B$6:B8) ستعطيك تسلسل تلقائي من العدد واحد اثناء الفلترة علشان يظهر التسلسل في التقرير بشكل مرتب من 1 الى آخر رقم
عبدالله باقشير قام بنشر أغسطس 18, 2010 الكاتب قام بنشر أغسطس 18, 2010 أخى خبور أثناء المذاكرة و البحث توصلت لكود مشابه لإضافة تسميات و مربعات نصوص للفورم ما رأيك فيه جميل جدا ولكن لكي يعمل الملف بشكل صحيح اجعل ورقة1 هي الاولى في الترتيب اسحبها الى اليمين او احذف ورقة مخطط شاهد التعديل الديناميكى التام لاستعراض السجل وحفظ التغييرات.rar
عبد الفتاح كيرة قام بنشر أغسطس 18, 2010 قام بنشر أغسطس 18, 2010 نعم المخطط كنت أسجل الفديو على الملف للشرح مفتاح f10 ينهى التسجيل فى برنامج الشرح كمتاسيا ستوديو فى نفس الوقت هو اختصار لإنشاء صفحة مخطط جزاك الله خيرا لكن ما سر إضافة مربعات الاختيار لحاوية أو إطار وليس للفورم مباشرة
عبدالله باقشير قام بنشر أغسطس 18, 2010 الكاتب قام بنشر أغسطس 18, 2010 لكن ما سر إضافة مربعات الاختيار لحاوية أو إطار وليس للفورم مباشرة اذا كان عدد الشيك بوكس اكثر من الكم الذي سيظهر في واجهة الفورم ماذا ستفعل حينها؟ يجب ان تظهر شريط التمرير للفورم واذا كان شريط التمرير في الفورم ونزلت الى الاسفل سيختفي زر الاضافة لذا قمنا باضافة فرمة للخروج من الاشكالات لمذكورة اعلاة وجعلنا اضافة الشيك بوكس داخلها
عبدالله باقشير قام بنشر أغسطس 18, 2010 الكاتب قام بنشر أغسطس 18, 2010 السلام عليكم شاهد الملفين في المرفق التالي ايهما افضل لقد قمت بعملهما من سابق وهما لاضافة اوراق المصنف لفورم خبور خير اضافة اسماء الاوراق الى فورم.rar
عبد الفتاح كيرة قام بنشر أغسطس 19, 2010 قام بنشر أغسطس 19, 2010 (معدل) أستاذى القدير خير جواب على كلامك أننى نفذت نفس الملف لكن مع فريم نحن نذاكر ونعمل الواجب بالمرفق السؤال التالى كيف نجعل الفريم مطاطا حسب عدد اللافتات و مربعات النصوص ؟ كلما زادت مربعات النصوص زاد ارتفاع الفريم حسب الحاجة يخيل لى هذا تحدى لنا كى نفهمه جزاك الله خيرا الديناميكى التام لاستعراض السجل وحفظ التغييرات مع الفريم.zip تم تعديل أغسطس 19, 2010 بواسطه kemas
عبدالله باقشير قام بنشر أغسطس 19, 2010 الكاتب قام بنشر أغسطس 19, 2010 السلام عليكم الاخت الفاضلة ايناس __________ حفظها الله رمضان كريم وكل عام وأنت بألف خير جزاك الله خبرا شكرا جزيلا ------------------------------ السؤال التالى كيف نجعل الفريم مطاطا حسب عدد اللافتات و مربعات النصوص ؟ كلما زادت مربعات النصوص زاد ارتفاع الفريم حسب الحاجة شاهد المرفق بثلاثة امثلة للبيانات باعمدة مختلفة وقد قمت ببعض التعديلات في الكود ليفهم سريعا خبور خير الديناميكى التام لاستعراض السجل وحفظ التغييرات مع الفريم1.rar
عبد الفتاح كيرة قام بنشر أغسطس 20, 2010 قام بنشر أغسطس 20, 2010 أستاذنا الفاضل جارى دراسة الملف والله يعين تم فهم جزئية كيف نجعل الحاوية مطاطة بهذا السطر Frame1.ScrollHeight = (lcol * MyTop) + MyFrame_Top فما فائدة هذا السطر If Frame1.ScrollHeight > Frame1.Height Then Else Frame1.SpecialEffect = 0 ثانيا لماذا وضعنا هذه المتغيرات هنا Option Explicit Private lcol As Integer Private k As Integer و جزاك الله خيرا
عبدالله باقشير قام بنشر أغسطس 20, 2010 الكاتب قام بنشر أغسطس 20, 2010 فما فائدة هذا السطر If Frame1.ScrollHeight > Frame1.Height Then Else Frame1.SpecialEffect = 0 في ورقة مثال2 افتح الفورم وشاهده ثم اعمل شرطة امام هذا السطر حتى لا يستخدم في الكود وافتح الفورم مره اخرى ستجد ان حدود الفرمة موجودة هذا السطر من الكود يقوم بعدم اظهارها هذه من النواحي الجمالية ثانيا لماذا وضعنا هذه المتغيرات هنا Option Explicit Private lcol As Integer Private k As Integer اولا عندما نستخدم Option Explicit في اي وحدة نمطية يجب ان نصرح على جميع المتغيرات فيها (dim , public ,private.....الخ) وعندما نجعلها في بداية الوحدة النمطية لن نعيد تكرارالتصريح عنها في اي كود من اكواد الوحدة النمطية نفسها ولكن ممكن نعيد ربطها بالقيمة مرة اخرى بسبب تغير هذه القيمة ومثال على ذلك المتغير k ولكن المتغير lcol قمنا بربطة بالقيمة في الكود الافتتاحي للفورم وقمنا باستخدامة في باقي الاكواد بدون اعادة ربطه بالقيمة
عبد الفتاح كيرة قام بنشر أغسطس 20, 2010 قام بنشر أغسطس 20, 2010 السلام عليكم -- أولا : هذا السطر هناك مشكلة لدى فى فهم الجملة الشرطية If Frame1.ScrollHeight > Frame1.Height Then Else Frame1.SpecialEffect = 0 أقصد هذا الجزء بالتحديد Then Else تعودنا - أو أنا تعودت على الأصح - أن يأتى بعد then جواب الشرط و ليس else فما ترجمة هذا ؟ يعنى متى يكون SpecialEffect = 0 ؟ ---- ثانيا : سؤال عن ارتفاع اللافتة و مربع النص هل هى افتراضية = 20 يعنى لما نطلب بالكود إدراج لافتة فإن ارتفاعها افتراضيا يكون 20 ؟ لأنى لم أجد أى ذكر لهاهنا فى الكود -----
عبدالله باقشير قام بنشر أغسطس 20, 2010 الكاتب قام بنشر أغسطس 20, 2010 السلام عليكم تعودنا - أو أنا تعودت على الأصح - أن يأتى بعد then جواب الشرط و ليس else فما ترجمة هذا ؟ if الشرط then جواب الشرط else عكس جواب الشرط انا اريد عكس جواب الشرط احيانا في بعض الاكواد ( ليس في كودنا هذا ) لا تجد الا شرطا واحدا ولكنك تريد عكسه فممكن استخدام الجملة اعلاة وايضا يمكنك استخدام التعبير التالي: If Not (Frame1.ScrollHeight > Frame1.Height) Then Frame1.SpecialEffect = 0 ================================================================== ثانيا : سؤال عن ارتفاع اللافتة و مربع النص هل هى افتراضية = 20 يعنى لما نطلب بالكود إدراج لافتة فإن ارتفاعها افتراضيا يكون 20 ؟ لأنى لم أجد أى ذكر لهاهنا فى الكود الارتفاع الافتراضي هو 18 والعرض الافتراضي هو 72 انا لم اذكر الارتفاع لانني اريد القيمة الافتراضية شاهد المرفق فيديو يوضح القيمة الافتراضية اثناء الاضافة خبور خير Add_le.rar
عبد الفتاح كيرة قام بنشر أغسطس 20, 2010 قام بنشر أغسطس 20, 2010 (معدل) ما شاء الله أستاذنا لقد تحول هذا الموضوع لما يشبه المدرسة معلمها قدير غزير العلم و على فكرة أكثر الناس ليس لديهم صبر على تعلم مثل هذا حتى أننى وجدت متخصصين من خريجى كليات الحاسب لا يعرفون معنى فجوال بيسك للتطبيقات و هذا أمر عجيب لك أن تتخيل النقلة الكبيرة التى سننتقل إليها فى عالم البرمجة بفضل الله ثم بفضلك بعد كل غامضة تزيل غموضها و نفهمها بعد أن كانت طلاسم وأنا أكتب هذه السطور 4 أعضاء يشاهدون الموضوع و13 زائرا ( هؤلاء الذين أخبرتك عنهم) لك أن تحتسب الأجر عند الله ولك منا الدعاء -- نرجع للعمل --- قد فهمت كل ما تفضلت به إذن then else = if not تمام لو أحببنا زيادة ارتفاع الكنترولات عن 18 لازم نرفع mytop و نساوى كل ارتفاعات الكنترولات صحيح وقد جربت ذلك و فهمته و الحمد لله جارى مشاهدة الفديو وجزاك الله خيرا تم تعديل أغسطس 20, 2010 بواسطه kemas
عبد الفتاح كيرة قام بنشر أغسطس 20, 2010 قام بنشر أغسطس 20, 2010 الفديو ممتاز إدراج كنترولات عن طريق النقر المزدوج و ليس برسمها افتراضيا ارتفاعها 18 تمام وقد رأيت أنك سجلت الفديو خصيصا لتوضح لنا وهذا كرم منك جزاك الله خيرا
عبد الفتاح كيرة قام بنشر أغسطس 21, 2010 قام بنشر أغسطس 21, 2010 (معدل) السلام عليكم نواصل العمل ---- هناك مشكلة فى ظهور التاريخ فى مربع نص حيث يظهر بترتيب التاريخ الأميركي من اليمين سنة - يوم - شهر مع أن الحروف عربية يمكننا استخدام الأمر format قبل ملء مربع النص بقيمة التاريخ الموجود بخلية فى الشيت لكن المشكلة أن مربع النص هذا يملأ عن طريق حلقة مع أكثر من عشرين مربع نص فلا نستطيع استخدام أمر format داخل الحلقة لأن مربعات النصوص ليست كلها تواريخ كيف نعدل مربع النص هذا وحده بحيث تكون صيغة التاريخ فيه من اليمين يوم - شهر - سنة ==== جزاك الله خيرا أستاذنا خبور و هذه هى الحلقة التى تملأ مربعات النصوص Me.Controls("Textbox" & j).Value = Worksheets("all").Cells(k + 3, j).Offset(1, 0).Value تم تعديل أغسطس 21, 2010 بواسطه kemas
عبدالله باقشير قام بنشر أغسطس 21, 2010 الكاتب قام بنشر أغسطس 21, 2010 السلام عليكم كيف نعدل مربع النص هذا وحده بحيث تكون صيغة التاريخ فيه من اليمين يوم - شهر - سنة بعد الخروج من الحلقة كرر اضافة التاريخ بالفورمات التي تريدها في التاكست الذي تريد اظهار التاريخ فيه يعني لوكان رقم التاكست 5 Me.Controls("Textbox5").Value = Format(Worksheets("all").Cells(k + 3, 5).Offset(1, 0), "yyyy/mm/dd") جرب واشعرنا بالنتائج خبور خير
عبد الفتاح كيرة قام بنشر أغسطس 21, 2010 قام بنشر أغسطس 21, 2010 (معدل) من غير ما أجرب يكفى نصاعة الفكرة وجمالها هذه هى خبرات و حيل المبرمجين التى نحتاجها جارى التجربة و هذه هى النتائج و إن كانت بالأرقام العربية ( المتعارف عليها أنها إنجليزية ) لكن التاريخ مرتب جزاك الله خيرا و هذه حيلت لتعريب الأرقام أى جعل الأرقام هندية Me.Controls("Textbox3").Value = "الحمد لله" Me.Controls("Textbox3").Value = Format(Worksheets("all").Cells(k + 3, 3).Offset(1, 0), "yyyy/mm/dd") يعنى جعلت النص فى المربع حروفا عربية قبل جملة تغيير الفورمات انظر النتائج مازلنا نتعلم منك الكثير بارك الله فيك أرجو من كل شخص يمر على الموضوع و لا يكتب ردا أن يدعو لك تم تعديل أغسطس 21, 2010 بواسطه kemas
mhrrd قام بنشر أغسطس 22, 2010 قام بنشر أغسطس 22, 2010 الملف خرافه الله يغفر ذنبك عايزين تذييل للصفحة عشان المدير والوكيل وشئون طلبه يوقعوا على صحة هذه البيانات
عبد الفتاح كيرة قام بنشر أغسطس 22, 2010 قام بنشر أغسطس 22, 2010 كلام الأستاذ مضبوط نريد درسا مبسطا فى رأس و تذييل الصفحة طبعا بالأكواد فى انتظار أن يعود المعلم
عبد الفتاح كيرة قام بنشر أغسطس 22, 2010 قام بنشر أغسطس 22, 2010 (معدل) هذا كود ينفذ الآتى 1 - رأس الصفحة الأيسر = رقم الكشف 2 - التذييل الأيمن = كلمة " اللجنة " 3 - التذييل الأيسر = كلمة " مدير المدرسة " + مرجع لاسم المدير نفسه ضع الكود فى workbook -- open Private Sub Workbook_Open() With Sheets("هنا اسم الشيت الذى فيه البيانات").PageSetup .LeftHeader = "&""-,غامق""&12كشف رقم : &P" .LeftFooter = "&""-,غامق""&16مدير المدرسة" & " / " & Sheets(1).Range("f7") .RightFooter = "&""-,غامق""&16اللجنة :" End With End Sub تم تعديل أغسطس 22, 2010 بواسطه kemas
inas aly قام بنشر أغسطس 23, 2010 قام بنشر أغسطس 23, 2010 شكرا لكم بعضنا اخي الكريم لايجيد وضع الاكواد فهل تكرمت بوضع الكود لكي يعمل
الردود الموصى بها
Join the conversation
You can post now and register later. If you have an account, sign in now to post with your account.