اذهب الي المحتوي
أوفيسنا
بحث مخصص من جوجل فى أوفيسنا
Custom Search

عبد الفتاح كيرة

الخبراء
  • Posts

    3015
  • تاريخ الانضمام

  • تاريخ اخر زياره

  • Days Won

    4

كل منشورات العضو عبد الفتاح كيرة

  1. أخانا المحبوب الباشمهندس طارق جزاك الله خيرا و هذا يدل على سعة صدرك و صبرك و فى ميزان حسناتك بإذن الله تعالى
  2. أستاذى الفاضل خبور هذه بعض أفضالكم علينا بضاعتكم ردت إليكم أخى الفاضل أحمد شكرا لمتابعتك بارك الله فيك
  3. السلام عليكم لاحظت يا إخوة أن هذا الموضوع طال جدا جدا وتأتينى رسائل منه يوميا
  4. نعم المخطط كنت أسجل الفديو على الملف للشرح مفتاح f10 ينهى التسجيل فى برنامج الشرح كمتاسيا ستوديو فى نفس الوقت هو اختصار لإنشاء صفحة مخطط جزاك الله خيرا لكن ما سر إضافة مربعات الاختيار لحاوية أو إطار وليس للفورم مباشرة
  5. السلام عليكم كل عام أنتم بخير دفعنا الأستاذ الفاضل خبور للمذاكرة دفعا بسبب ما يطلع به علينا من أفكار تثير الذهن و تفتح آفاق العلم هذا ملف فديو أهديه إليه عندك شيت به 10 أعمدة فيها بيانات الفورم يرسم عليه بالكود 10 مربعات نصوص و 10 لافتات " تسميات " ويمكنك استعراض الصفوف و التعديل عليها لو غيرت عدد الأعمدة بالشيت إلى 15 مثلا تتغير أعداد مربعات النصوص و التسميات إلى نفس العدد شاهدوا الفديو الملف المستخدم بالشرح و به الكود الديناميكى التام لاستعراض السجل وحفظ التغييرات.zip
  6. بارك الله فيك وقد ذهبت إلى هناك و كتبت كلمات ونحن نتابع معك ونلتقط كلماتك كما يبتقط الدر من باطن البحار
  7. أخى خبور أثناء المذاكرة و البحث توصلت لكود مشابه لإضافة تسميات و مربعات نصوص للفورم ما رأيك فيه 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
  8. الفاضل خبور معادلة التسلسل =SUBTOTAL(3;$B$6:B8) معلومة قيمة لكن هل المعادلة =row()-5 و نسحبها لأسفل تقوم بنفس المهمة ؟ أم أن للأولى ميزة عليها ؟
  9. أشكر لك كريم خلقك و سعة صدرك لنبدأ بهذا Private Sub UserForm_Initialize() Dim MyTop As Integer, i As Integer Dim MyCBox As Control '======================== kh_MyRngSet '======================== MyTop = 0 For i = 1 To Num Set MyCBox = Frame1.Controls.Add("Forms.CheckBox.1") With MyCBox .Move 12, MyTop, , , True .Alignment = 0 .Font.Bold = True .Caption = MyRng.Cells(1, i).Value .Value = True .TextAlign = fmTextAlignRight End With MyTop = MyTop + 24 Next '======================== With Me If Num <= Mycount Then .Height = 60 + (24 * Num) .Frame1.Height = (24 * Num) Else .Height = 60 + (24 * Mycount) .Frame1.Height = (24 * Mycount) .Frame1.ScrollBars = 2 .Frame1.ScrollHeight = (Num) * 24 End If End With '======================== End Sub الفورم أثناء التصميم بدون مربعات اختيار كيف ظهرت أثناء التشغيل وكيف تم ربطها مع أسماء الأعمدة فى الشيت و الباقى ربنا يسهل علينا فيه وشكرا لك
  10. جزاك الله خيرا أستاذنا سيفيدنا كثيرا هذا التقرير و إن كان الأفضل أن تتفضل بمزيد من الشرح إن كان وقتك يسمح بذلك عملا بالمثل القائل بدلا من أن تعطينى سمكة علمنى صيد السمك و التلاميذ مستعدون و منصتون تماما لما تقول و كل عام أنتم بخير
  11. السلام عليكم شكرا لجميع الإخوة و هذه معادلة بدون دوال خارجية =1*MID(A1;MATCH(TRUE;ISNUMBER(1*MID(A1;ROW($1:$9);1));0);COUNT(1*MID(A1;ROW($1:$9);1))) لا تنس أن تضغط ctrl+alt+enter و النصوص فى العمود a و المعادلة فى العمود b سحب الأرقام عن طريق دالة.zip
  12. نعم واضح أخى بارك الله فيك
  13. ما شاء الله أعمال و إبداعات عظيمة ممكن شرح لهذا السطر .Range(Me.Tag)
  14. مرحبا بالشروح القيمة ننتظر المزيد ويثقل ميزان حسناتك بإذن الله تعالى شكرا لك أخانا عماد
  15. لقد تعلمت الكثير من جراء هذه المقالب التى تضيع الوقت و الجهد و أنا لا أكتفى بحفظ الملف و نسخ منه على الجهاز أ الفلاشى أو غيره هناك مخازن مجانية على الإنترنت تنفع بإذن الله فى مثل هذه الأحوال من هذه المخازن أولا : بريد جي ميل هذا البريد سعته 7 جيجا قابلة للزيادة وفيه ميزة مهمة أنه لا يحذف الرسائل أبدا و تبقى مع مرفقاتها ما لم تحذفها أنت ثانيا : سكاى درايفر مساحة 25 جيجا ( ضخمة ) لمن يستخدمون هوتميل و يمكنك قراءة ملفات أوفيس من نفس الموقع ثالثا : موقع posterous و هذا موقع رفعت عليه ملفات من سنوات وما زالت روابطها شغالة ربما شرحت التعامل مع هذه المواقع فهى مفيدة جدا
  16. منقول في هذا الدرس سنتعرف على الفرق طرق تمرير البيانات بين الاجراءت و التي تتمثل في الأساس في طريقتين : -التمرير بالقيمة By Value باستخدام ByVal. -التمرير بالمرجع By Refrence باستخدام ByRef. عند تمرير قيمة إلى إجراء ما يوجد 4 حالات يمكن أن تصادفنا: 1/ أن يكون المتغير المرسل من النوع ذو القيمة value Type و يكون الاجراء يستقبل بالقيمة ByVal. 2/ أن يكون المتغير المرسل من النوع المرجعي Refrence Type و يكون الاجراء يستقبل بالقيمة ByVal. 3/ أن يكون المتغير المرسل من النوع ذو القيمة value Type و يكون الاجراء يستقبل بالمرجعByRef. 4/ أن يكون المتغير المرسل من النوع المرجعي Refrence Type و يكون الاجراء يستقبل بالمرجع ByRef. قبل شرح الفرق بين هذه الحالات الأربع يجب أن تعرف أنني عندما أتحدث عن الأنواع ذات القيمة فإني أقصد الأنواع المعرفة من سجلات Structures باستثناء الأنواع الأساسية Primitiv Types (Integer,Double...)، صحيح أنها من الأنواع ذات القيمة إلاّ أنها تختلف قليلا عن الأنواع المعرفة من Structures في ما يخص تمرير البيانات بين الاجراءت. أما المتغيرات المرجعية فأقصد بها كل المتغيرات المعرفة من الفئات Classes. 1/تمرير متغير من النوع ذو القيمة إالى إجراء يستقبل بالقيمة: في هذه الحالة يقوم المترجم بنسخ قيمة المتغير المرسل و التعامل مع هذه النسخة الجديدة دون أن يغير شيئا في المتغير الاصلي. 2/تمرير متغير من النوع المرجعي إلى إجراء يستقبل بالقيمة: في هذه الحالة يقوم المترجم بانشاء مؤشر جديد في القسم Heap يشير إلى نفس الكائن الذي يشير إليه متغير المرسل أي يقوم بانشاء نسخة من المؤشر و ليس الكائن.إذا جعلنا هذا المؤشر الجديد يشير إلى كائن آخر فإن المتغير الأصلي لن يتأثر بهذا بل سيبقى مشيرا إلى نفس الكائن.لكن الاجراء بإمكانه تغيير قيمة الكائن. الخلاصة: يمكن للاجراء تغيير قيمة الكائن لكن لا يمكنه تغيير الكائن الذي يشير إليه المتغير. 3/تمرير متغير من النوع ذو القيمة إلى إجراء يستقبل بالمرجع: في هذه الحالة يقوم المترجم بانشاء مؤشر يشير الى الكائن المرسل و يتعامل مع هذا الكائن من خلال هذا المؤشر و ليس مباشرة كما الحال عادة مع المتغيرات ذوات القيمة Value Types. و هنا يحدث ما يسمى بالصندقة Boxing و هي عملية اسناد متغير من النوع ذو القيمة إلى متغير مرجعي و هي عملية بطيئة و يجب تفاديها كل ما أمكن. 4/تمرير متغير من النوع المرجعي إلى اجراء يستقبل بالمرجع: هنا لا يقوم المترجم بانشاء نسخة من المؤشر إنما يقوم يتعامل مباشرة مع المؤشر المرسل و بذلك يمكنه ليس فقط تغيير قيم الكائن المرسل اليه إنما أيضا يمكنه جعله يشير إلى كائن آخر. أرجو أن تكون الصورة قد اتضحت و من وجد خطأ فلا يبخل بتصحيحه.
  17. شكرا أبا عبد الله على هذه الإبداعات كل عام أنتم بخير
  18. أعتقد أخى مصطفى لو تم فصل كل صف على حدة بملف لكان الأمر أسهل فى كل شىء
  19. أخى الفاضل AHMADHAMOOR هل أنت شاعر ؟ كلمات رقيقة مشكلتها الوحيدة أننى لا تستطيع الرد عليها بمثلها أخى من فيض عطاء هذا المنتدى و علمائه استفدنا الكثير و هذا بعض من محاولات رد الجميل بارك الله فيك و كل عام أنت بخير أخى DVB Software ملفك ممتاز تحياتى لك
  20. السلام عليكم هذا شرح فديو لطريقة إنشاء قائمة فرعية تابعة لقائمة أساسية و طبعا مع الفديو لا نحتاج لكلام كثير ولا تقديم كم أتمنى أن أشاهد فديوهات يشرح فيها عمالقة هذا المنتدى ما لديهم من خبرات أعتقد هذا مشروع مهم جدا لهم خاصة أن الله من عليهم بالمادة العلمية فيمكنهم بها الوصول لأكبر عدد من البشر عن طريق يوتيوب كل عام أنتم بخير هاكم الفديو وهو بصيغة WMV كى تعمل على أى جهاز ربما شرحت قريبا بإذن الله طريقة تحميل الفديوهات التى على يوتيوب إلى جهازك الخاص لتشاهدها وقتما تريد قائمة فرعية من قائمة أساسية.zip
×
×
  • اضف...

Important Information