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

نجوم المشاركات

  1. محمد حسن المحمد

    • نقاط

      11

    • Posts

      2220


  2. ياسر العربى

    ياسر العربى

    الخبراء


    • نقاط

      9

    • Posts

      1510


  3. الصـقر

    الصـقر

    الخبراء


    • نقاط

      8

    • Posts

      1836


  4. Yasser Fathi Albanna

    Yasser Fathi Albanna

    06 عضو ماسي


    • نقاط

      6

    • Posts

      1313


Popular Content

Showing content with the highest reputation on 11/21/15 in all areas

  1. خامساً :- كيفية اضافه عناصر تحكم داخل الــ 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 شاهد الصوره عند فتح الفورم طبعا دى كلها مقدمه للدرس بتاعنا اللى لسه الى الان مبدأناش الشرح فيه ولكن كان لازم نعرف يعنى ايه نضيف عنصر تحكم اثناء عمل الفورم وليس من شاشة التصميم للدرس بقية انتظرونا
    4 points
  2. بســــــــــــــــم الله الرحمــــــــــن الرحـــــــــــــــــــــــيم الســــــلام عليكــــــــــــــــم و حمة الله و بركاته اخواننا الكرام ، نظرا لكثرة المشاركات حول تقريب الكسور الارقام ، حبيت اشارككم الوحدة النمطية بـ 3 دوال (RoundUp) (RoundHalf) ( RoundDown) دالة : RoundUp([Number],3) للتقريب رقم 33.3333 الى 3.334 او 3.3331 الى 3.334 و هكذا دالة: RoundHalf([Number],3) للتقريب رقم 33.3336 الى 3.334 او 3.3335 الى 3.333 و هكذا و السبب تسمية الدالة بهذالاسم ، وجود دالة باسم Round في الاكسس و انا سميتها RoundHalf دالة: RoundDown([Number],3) للتقريب رقم 33.3336 الى 3.333 او 3.2231 الى 3.223 و هكذا و المرفق يحوي ملفين الاول للعرض ارقام مقربة حسب تنسيق مثلا: عند اختيار اربع منازل أعشار 5.4400 ، 5.4444 ,5.2000 و الثاني بدون تنسيق مثلا : 5.4444 ، 5.44 , 5.2 ابو عارف Round-RowndUp-RowndDown.rar
    3 points
  3. السلام عليكم الاستاذ الفاضل / ابو سليمان شكرا جزيلا على مرور حضرتك المحفز .. جزاك الله خيرا اخى الكريم جرب المرفق فلترة.rar
    3 points
  4. استعمل هذا الكود Sub DeleteAllPics() Dim Pic As Object For Each Pic In ActiveSheet.Pictures Pic.Delete Next Pic End Sub
    3 points
  5. السلام عليكم - خاطرة: كيف نستخدم دالة الجمع باستخدام اختصارات لوحة المفاتيح بطريقة سلسة وسريعة:
    3 points
  6. اخى الفاضل / ياسر فتحى اولا اعتذر لحضرتك عن التاخر بالرد لكن لم ادخل الموقع من يومين شاكر لحضرتك مجهودك الطيب واسال الله تعالى ان يكون بميزان حسناتكم وان يكون علم نافع بخصوص الملاحظات لن ازيد عن ما قاله الاخ ياسر العربى ارجوا من حضرتك تداركها تقبل منى وافر الاحترام والتقدير
    3 points
  7. Sub CollectDataFromMultipleWorkbooks() Dim OpenFiles Dim crntfile As Workbook Set crntfile = Application.ActiveWorkbook Dim X As Integer Dim SH As Worksheet Dim Arr, Temp, I As Long, J As Long On Error GoTo ErrHandler Application.ScreenUpdating = False OpenFiles = Application.GetOpenFilename(FileFilter:="Microsoft Excel Files (*.csv;*.xlsx;.xlsm),*.csv;*.xlsx;*.xlsm", MultiSelect:=True, Title:="Select Excel File To Merge!") If TypeName(OpenFiles) = "Boolean" Then MsgBox "You Need To Select At Least One File" GoTo ExitHandler End If X = 1 While X <= UBound(OpenFiles) Workbooks.Open Filename:=OpenFiles(X) Sheets().Move After:=crntfile.Sheets(crntfile.Sheets.Count) X = X + 1 Wend Sheets("Master").Activate For Each SH In ThisWorkbook.Sheets With SH If .Name <> "Master" Then Arr = .Range("A1").CurrentRegion.Value For I = 1 To UBound(Arr) Temp = Split(Arr(I, 1), ";") For J = 1 To UBound(Temp) .Cells(I, J) = Temp(J) Next J Next I .Range("A1").CurrentRegion.Columns.EntireColumn.AutoFit End If End With Next SH ExitHandler: Application.ScreenUpdating = True Exit Sub ErrHandler: MsgBox Err.Description Resume ExitHandler End Sub أخي الحبيب مختار بارك الله فيك على الكود الرائع الذي قدمته لنا على طبق من ذهب أخي الكريم صاحب الموضوع ..يرجى تغيير اسم الظهور للغة العربية (راجع التوجيهات في الموضوعات المثبتة في المنتدى) جرب الملف التالي بعد إضافة بسيطة لكود الأخ المتميز مختار ليقوم بفصل العمود الواحد لعدة أعمدة تقبل تحياتي Collect Data From Multiple CSV Workbooks Mokhtar V1.rar
    2 points
  8. راجع كود "TextBox7_Change" لايوجد اي تعيين للعمود 9 في الليست بوكس لذا قم بإدراج السطر التالي ليأخذ عنوان خلية نتيجة البحث ويدرجها في العمود 9 لليست بوكس ListBox9.List(V, 9) = q.Address الصقه قبل السطر V = V +1 ثم الغي تحديد نوع القيم في كود "ListBox9_Click" مثال ComboBox3.Text حطيته يستقبل نص .Range(DADA).Value ويساوي قيمة ؟ Private Sub ListBox9_Click() Sheets("sheet2").Select Dim DADA As String Dim MySh As Worksheet 'On Error GoTo 1 DADA = ListBox9.List(ListBox9.ListIndex, 9) Set MySh = Sheets("sheet2") With MySh .Application.Range(DADA).Activate ComboBox3.Text = .Range(DADA).Value ComboBox2.Text = .Range(DADA).Offset(0, 1).Value TextBox4.Text = .Range(DADA).Offset(0, 2).Value TextBox5.Text = .Range(DADA).Offset(0, 3).Value TextBox6.Text = .Range(DADA).Offset(0, 4).Value TextBox7.Text = .Range(DADA).Offset(0, 5).Value ComboBox1.Text = .Range(DADA).Offset(0, 6).Value End With End Sub لذا ليس ضروري تحديد قيمة اتركه بدون وفعل سطر الخروج من الكود في حالة حدوث خطاء 'On Error GoTo 1 وهذا الكود حدث ListBox9_Click بعد تعديل الاخطاء المذكوره اعلاه Private Sub ListBox9_Click() Sheets("sheet2").Select Dim DADA As String Dim MySh As Worksheet On Error GoTo 1 DADA = ListBox9.List(ListBox9.ListIndex, 9) Set MySh = Sheets("sheet2") With MySh .Application.Range(DADA).Activate ComboBox3 = .Range(DADA) ComboBox2 = .Range(DADA).Offset(0, 1) TextBox4 = .Range(DADA).Offset(0, 2) TextBox5 = .Range(DADA).Offset(0, 3) TextBox6 = .Range(DADA).Offset(0, 4) TextBox7 = .Range(DADA).Offset(0, 5) ComboBox1 = .Range(DADA).Offset(0, 6) End With 1 End Sub
    2 points
  9. السلام عليكم ورحمة الله وبركاته لقد تناولت فى موضوعى السابق " إزالة أو إبقاء آثار التنسيق الشرطى " على الرابط التالى http://www.officena.net/ib/topic/64950-%D8%A5%D8%B2%D8%A7%D9%84%D8%A9-%D8%A3%D9%88-%D8%A5%D8%A8%D9%82%D8%A7%D8%A1-%D8%A2%D8%AB%D8%A7%D8%B1-%D8%A7%D9%84%D8%AA%D9%86%D8%B3%D9%8A%D9%82-%D8%A7%D9%84%D8%B4%D8%B1%D8%B7%D9%89/ كيفية ازالة التنسيق الشرطى و تبعاته من تنسيقات ... أو الابقاء على تلك التبعات والتنسيقات و تحويلها من تنسيقات شرطية الى تنسيقات عادية و اليوم بإذن الله تعالى أقدم لكم كودا بسيطا لكن يمكن أن تكون آثاره و نتائجه من وجهة نظرى المتواضعة جميلة و مبهرة و الرأى لكم فى النهاية الكود : Sub creatingFormats() On Error Resume Next For Each cell In Range("data") Range("formats").Cells(cell.Value).Copy cell.PasteSpecial Paste:=xlPasteFormats Next cell On Error GoTo 0 Application.CutCopyMode = False End Sub الكود يقوم بعمل تنسيقات عادية فى نطاق محدد هو data طبقا لتنسيقات يمكنك تعييرها فى خلايا نطاق آخر هو formats يمكن تطويع هذا الكود فى حال الرغبة فى عمل تنسيقات عادية متعددة داخل نطاق . تحياتى لكم و الى اللقاء بإذن الله تعالى مع كل جديد ومفيد كن حذرا ... أبو ضحكة جنان قاعد لك فى الملف أخوكم مختار حسين محمود الصعيدى تنسيقات بلا حدود.rar تنسيقات بلا حدود.rar
    2 points
  10. السلام عليكم ورحمة الله وبركاته أخى العزيز ناصر المصرى بارك الله فيك ... أشكرك أخى الكريم على هذا الكلام الكبير الذى أسعدنى كثيرا ..و مشكور أيضا على مرورك الكريم أخى و حبيبى و أستاذى الكبير ياسر خليل يعلم الله عز وجل أننى أعتز بأنك أحد أهم الذين تعلمت - ولا زلت أتعلم - منهم ... تقبل الله منا و منكم صالح الاعمال أخى و حبيبى الغالى ياسر فتحى بارك الله فيك ... أشكرك أخى الغالى على هذا التشجيع الكبير و المستمر تقبل الله منا و منكم صالح الاعمال أخى و حبيبى العزيز عبدالغزيز بارك الله فيك ... أشكرك أخى الغالى على كلامك الطيب و مرورك الكريم ... تقبل الله منا و منكم صالح الاعمال
    2 points
  11. السلام عليكم و رحمة الله و بركاته و تحية خاصة للاستاذ جعفر الأخ حسين : اضافة سطر بسيط في الكود السابق ستنحل المشكة ان شاء الله DoCmd.OpenReport "medicine", acViewPreview, , , acHidden DoCmd.SelectObject acReport, "medicine" DoCmd.PrintOut , , , , Me.t3 DoCmd.Close acReport, "medicine" بالتوفيق
    2 points
  12. السلام عليكم ورحمة الله وبركاته جزاكم الله خيراً..وكما يقال :(إيدك معي ) وإن شاء الله سيكون متجدد ..بمشاركاتكم الطيبة. إن صار لي مجال اليوم سأعرض طريقة الفرز حسب الصفوف - فرز أفقي - بالتفصيل إن شاء الله تعالى فكر بحاجة تانية يا عربي ..والسلام عليكم.
    2 points
  13. الله يبارك فيك ياعم الحاج والله ياراجل حاجات مكناش بنبص ليها خالص وعجبتني الفكرة ايه رأيك كل يوم تطبيق اختصار او اتنين
    2 points
  14. تتسم دائما بالموضوعات القيمة بارك الله فيك وفى انتظار كل ماهو جديد من شخصية تتسم بالهدوء والعطاء وافر تقديرى واحترامى
    2 points
  15. السلام عليكم Private Sub ListBox1_Click() ''********************* '' الذهاب الى الورقة المسماه ورقة1 Sheets("ورقة1").Select '' متغير لحفظ قيمة نصيه Dim DADA As String ''MySh متغير لورقة في المصنف للتعبير عن الورقة في الكود بمسمى Dim MySh As Worksheet 'On Error GoTo 1 '' اخذ القيمة من العمود الـ 9 في الليست بوكس والتي هيا عنوان الخليه من السطر المحدد في الليست بوكس DADA = ListBox1.List(ListBox1.ListIndex, 9) ''كتعبير عن الورقة المسماه "ورقة1" MySh تعين المتغير Set MySh = Sheets("ورقة1") ''With ادرج في اطار Myshلتعدداستخدام متغير '' للتعبير عن المتغير بأكثر من سطر دون ذكر المتغير بكل سطر '' . مع التعبير بعلامة With MySh ''للذهاب للخليه المعنيه في البحث Range في تعبير DADA ادراج متغير '' Range.address حفظ فيه عنوان الخليه DADA اعتباراً ان متغير .Application.Range(DADA).Activate ''ComboBox3 وحقظه في DADA اخذ قيمة الخليه من متغير ComboBox3.Text = .Range(DADA).Value ''ComboBox2 مع ازاحه بقدر عمود وحقظه في DADA اخذ قيمة الخليه من متغير ''B1 مع ازاحة عمود ستصبح الخليه المعنيه A1 اي اذا فرضنا الخليه هيا ComboBox2.Text = .Range(DADA).Offset(0, 1).Value ''TextBox4 مع ازاحه بقدر عمودين وحقظه في DADA اخذ قيمة الخليه من متغير TextBox4.Text = .Range(DADA).Offset(0, 2).Value ''TextBox5 مع ازاحه بقدر 3 اعمده وحقظه في DADA اخذ قيمة الخليه من متغير TextBox5.Text = .Range(DADA).Offset(0, 3).Value ''TextBox6 مع ازاحه بقدر 4 اعمده وحقظه في DADA اخذ قيمة الخليه من متغير TextBox6.Text = .Range(DADA).Offset(0, 4).Value ''TextBox7 مع ازاحه بقدر 5 اعمده وحقظه في DADA اخذ قيمة الخليه من متغير TextBox7.Text = .Range(DADA).Offset(0, 5).Value ''ComboBox1 مع ازاحه بقدر 6 اعمده وحقظه في DADA اخذ قيمة الخليه من متغير ComboBox1.Text = .Range(DADA).Offset(0, 6).Value '' Myshالخروج من اطار متغير End With ''********************* End Sub
    2 points
  16.  خواطر إكسيلية أساتذتي الكرام إخوتي الأحبة السلام عليكم ورحمة الله وبركاته: بدا لي أن أكتب موضوعاً لا يقف حكراً على أحد – بل بإمكان كلٍّ منا أن يجود بما يخطر له من مواضيع الإكسيل التي يريد أن يفيد بها - وهنا أنطلق من كلمة إكسل التي تعني البراعة أو كما يحلو لنا أن نسميها في بلدي المكلوم "برنامج الجداول الإلكترونية" : ولذلك فإنني سأنطلق من خاطرة أولى تتحدث عن بعض اختصارات برنامج الإكسيل التي نصادفها بشكل يومي كما يلي: اختصارات لوحة المفاتيح في الإكسيل: إظهار(عرض) الصيغ في الخلايا بدلاً من نتائجها المحتسبة CTRL + ~ سابقة أثر(الخلايا التي أثرت في قيمة الخلية الحالية CTRL + [ تاريخ اليوم CTRL+ ; اختيار(تحديد كل) الجدول الحالي CTRL+ * الوقت الحالي CTRL+SHIFT+ ; نسخ من الخلية المجاورة بالأعلى CTRL+ ' هذا ما استطعت عرضه في عجالة من أمري وسيتبع إن شاء الله تعالى بمواضيع أخرى والسلام عليكم خواطر إكسيلية.rar
    1 point
  17. الظاهر ان الامر Docmd.Printout يطبع النموذج/التقرير اللي في الامام ، ولما كان التقرير مخفي ، فالتقرير هو اللي اصبح ظاهر ، فطبعه طيب ، هذه حيلة استخدمها بعض الاوقات: بعض الاوقات لما اريد اعمل شئ وما اريد المستخدم يشوفه ، فاطلب من اكسس ان: يوقف صورة الشاشة ، يعمل المطلوب (بينما المستخدم يشاهد الشاشة التي لم تتجدد ، يقوم البرنامج بعمل المطلوب) ، يعطينا الشاشة الجديدة جرب هذه الطريقة: Application.Echo False DoCmd.OpenReport "medicine", acViewPreview, , , acHidden DoCmd.PrintOut , , , Me.t3 DoCmd.Close acReport, "medicine" Aplication.Echo True جعفر
    1 point
  18. اخى الفاضل خالد الرشيدى ... هذا هو المطلوب بالضبط ..شكرا لك .. وزاذك الله علما
    1 point
  19. النفس تبكي علي الدنيا و قد عـلـمـت ***** ان الـسـعادة فـيهـا تـرك مــا فـيـهـا لا دار للمـرء بعـد الموت يـســكـنه ***** الا التي كان قبـل الـمـوت بـا نـيـهـا فان بـنـاها بــخــيـر طــاب مســــكــنـه ***** و ان بـنـاهـا بـشـــر خـاب بـانـيـهـا امـوالـنـا لـذوي المـيـــراث نـجــمـعــه ***** و دورنـا لـخـراب الـدهــر نـبـنـيـهـا ايـن المــلـوك التـي كانـت مســلطــنـة ***** حتـي سـقاها بكأس المـوت سـاقيهـا فـكــم مدائــن فـي الآفـاق قـد بـنـيـــت ***** امســت خرابا و أفني الموت اهليهـا لا تـركـنــن الــي الدنـيـا و مـا فـيــهــا ***** فالمـوت لا شــك يفـنـيـنـا يـفـنـيـهـا لـكـل نـفــس و ان كانـت عــلـي وجــل ***** مـــن الـمـنـيــة آمــــال تـقــويـــهـا الـمـرء يبســطها و الدهــر يـقـبـضـهـا ***** و النفس تنشرها و الموت يطويها انــمـا الـمــكـــارم اخــلاق مــطــهـــرة ***** الـديــن اولـهــا و الـعـقــل ثـانـيـهـا والـعــلـم ثــالـثـهـا والحـــلـم رابـعـهــا ***** و الجود خامسها و الفضل سادسها والـبـر ســـابـعـهـا والشـــكـر ثـامـنهـا ***** و الصــبر تاســعها و اللـين باقـيهـا الـنـفــس تـعــلـم أنــي لا أصــــادقـهـا ***** و لســت أرشـد الا حيـن أعـصـيـهـا وأعــمـل لـدار غـدا رضــوان خـازنهـا ***** و الـجـارأحـمـد والرحـمـن ناشـيـهـا قــصــورها ذهـب والمســك طـيـنـثـهـا ***** و الـزعـفـران حشـيـش نـابـت فـيهـا أنـهـارهـا لبـن مـحـض و مـن عســــل ***** و الخـمـر يـجري رحيقا في مجاريها والطـير تجـري علي الأغصـان عاكفـة ***** تـســبـح الله جـهــرا فــي مـغــانـيـهـا من يشتري الدار في الفردوس يعمرها ***** بـركـعـة فــي ظـلام الــليـل يـحيــيـهـا
    1 point
  20. من الصعب ان يتم فك حماية ملفات محمية بكلمة مرور اخي الغالي سليم مشكور لارفاق هذا الحل الذي هو بالاساس عبارة عن كود ماكرو يتم وضعه داخل ملف بالفعل هو يدعم الماكرو ولكن نحن الان امام ملف xlsx محمي بكلمة مرور للملف نفسه ولا يمكن فتحه لوضع اي كود به ناهيك عن ان الملف لا يدعم الماكرو من الاساس ولكم كل الشكر والتقدير وان شاء الله نجد طريقة لكسر مثل تلك الحماية
    1 point
  21. بارك الله بك أستاذي العزيز رمهان الذي نتعلم منه دائما ونرجو لك دوام التقدم والعطاء ..شكرا على كلماتك الطيبة راجيا أن أكون عند حسن ظنكم..
    1 point
  22. السلام عليكم استفسار : لماذا تصدر التقرير للاكسل ؟ الهدف !! تحياتي
    1 point
  23. السّلام عليكم و رحمة الله و بركاته ألف شكر سيّدي الكريم على التّنسيقات و الابداعات المميّزة التي ليس لها حدود بإذن الله بارك الله فيك أستاذي القدير " مختار حسين محمود " على الابداع المكتمل جزاك الله خيرًا و زادك من علمه و فضله فائق إحتراماتي و إعجاباتي
    1 point
  24. أسعد الله أوقاتكم بكل خير فيما يلي الدرس الثامن عشر من دورة "إكسيل 2013 المستوى المتقدم" بعنوان الرسومات البيانية المتقدمة -الجزء الثاني المخططات الدائرية ومن نوع دائرة من دائري ملاحظة/ ينصح بشدة متابعة الدرس الخاص بالرسومات البيانية من دورة (مهارات اكسيل 2013) على الرابط التالي قبل متابعة هذا الدرس حيث أننا نفترض بالمشاهد الكريم معرفة مسبقة بأساسيات الرسم البياني في اكسيل أساسيات الرسومات البيانية في إكسيل 2013 أتمنى لكم مشاهدة ممتعة ومفيدة يمكنكم تحميل ملفات التمارين الخاصة بهذه الدورة من خلال الرابط التالي: http://www.4shared.com/rar/QvwJQLddce/_-__.html لمتابعة الموضوع الرئيسي للدورة يمكنكم فتح الرابط التالي حيث جميع الدروس موجودة: دورة اكسيل 2013 المستوى المتقدم دمتم بخير
    1 point
  25. بارك الله فيك أستاذي القدير " ياسر العربي " على التّنبيه و التّنويه .. و لو أنّي لا أعتقد إطلاقًا أنّ النّص المتحرك غير ظاهر .. أنا الذي نظر الأعمى إلى نصوصي .. و أسمعت حركة بروصاراتي منْ به صمَمُ هذا البيت هديّة للأخ .. أخونا فائق إعجاباتي و احتراماتي سيدي الكريم " ياسر العربي "
    1 point
  26. ** ترقية مستحقة ومباركة استاذ محمد **
    1 point
  27. تنسيقات بلا حدود وإبداع بلا حدود إبداع لا يتوقف وما زال هناك المزيد والمزيد .. ربنا يبارك ويزيد يا مختار يا أبو اليزيد .. على كل ما تقدمه من جديد وممتع ومفيد واضرب ع الحديد يا راجل يا شديد
    1 point
  28. السّلام عليكم و رحمة الله و بركاته أخى الغالى المهندس ياسر فتحى بارك الله فيك وجعل فى ميزان حسناتك ... الدال على الخير كفاعله
    1 point
  29. السلام عليكم ورحمة الله وبركاته البغض منا قد يرغب فى ازالة التنسيق الشرطى عن خلية أو نطاق لسبب ما مع ازالة أو ابقاء آثاره من تنسيقات مثل لون الخلايا و لون و حجم الخط .... الخ و بإذن الله تعالى سأعرض عليكم ــ اخوتى ــ كودين يؤديان هذه المهمة الأول : يقوم بازالة التنسيق الشرطى مع ازالة آثاره من نطاق محدد : Sub RemovingCFandEffects() ' Removing Conditional Formats and the Effects Dim Rng As Range Set Rng = Sheets("Sheet1").Range("A1:C10") Application.ScreenUpdating = False Rng.FormatConditions.Delete Application.ScreenUpdating = True MsgBox ("The Conditional Formats in The Range " & Rng.Address & vbCrLf & " has been Removed and The Effects") End Sub الثانى : يقوم بازالة التنسيق الشرطى من نطاق محدد مع ابقاء آثاره من تنسيقات كما هى أو بعبارة أخرى تحويل التنسيقات الشرطية الى تنسيقات عادية : Sub RemovingCFbutNotEffects() ' Removing Conditional Formats but not the Effects Dim Rng As Range, C As Range Set Rng = Sheets("Sheet1").Range("A1:C10") Application.ScreenUpdating = False For Each C In Rng ' Rng.SpecialCells(xlCellTypeAllFormatConditions) With C .Interior.Color = .DisplayFormat.Interior.Color .Font.FontStyle = .DisplayFormat.Font.FontStyle .Font.Color = .DisplayFormat.Font.Color .FormatConditions.Delete End With Next Application.ScreenUpdating = True MsgBox ("The Conditional Formats in the Range " & Rng.Address & vbCrLf & "has been removed but Not the Effects ") End Sub أتمنى أن يكون موضوعا سهلا وخفيفا ونافعا لكم ... تقبل الله منا و منكم صالح الأعمال والسلام عليكم ورحمة الله وبركاته Removing Conditional Formats.rar
    1 point
  30. السلام عليكم إخوتي وأساتذتي الأجلاء أشكركم جميعا على مروركم العطر وإثرائكم للموضوع ..وكأنني ألقيت بشبكة فجمعت كل هذه الدرر..ومن أنا حتى أقف أمام هؤلاء العمالقة الذين يخوضون عباب بحر الإكسل الواسع ..لكن هذه الخواطر التي ذكرت قد تفتح أفقا جديدا أو تذكر بما هو مخزن في أعماق الذاكرة لتنفض عنه غبار السنين من المشاغل....كلكم عظماء باﻹكسيل ولديكم خواطر هامة فالميدان ميدانكم والخيل خيلكم. كان لي رصيد كبير من الأحباب الذين وجدتهم نعم الأخوة في كل شيء بفضل الله ومنته وهم أغنياء عن التعريف ..واليوم أرى أستاذا فاضلا أكن له كل محبة وتقدير يساهم في تشجيعي فلكم وله كل الشكر والامتنان.تقبلوا تحياتي العطرة والسلام عليكم
    1 point
  31. السلام عليكم اخى الحبيب / زيزو العجوز .. جزاك الله خيراً اخى الكريم يمكنك استخدام المعادلة التالية.. ضعها فى الخلية B5 ثم قم بالسحب..بدون اعمدة مساعدة ولكن بالنسبه للشرط الثانى.. اين تكتب كلمة مرتجع =SUMPRODUCT(RawData!$H$6:$H$1000*(RawData!$I$6:$I$1000=$A$2)*(RawData!$C$6:$C$1000=B$4)*(MONTH(RawData!$A$6:$A$1000)=MONTH($A5)))
    1 point
  32. بعض الإختصارات المفتاح. الوظيفة. أو الأمر.Tab تنشيط شريط القوائم بالتعلم على قائمة FileAlt+F لفتح قائمة FileAlt+E لفتح قائمة EditAlt+V لفتح قائمة ViewAlt+I لفتح قائمة InsertAlt+O لفتح قائمة FormatAlt+T لفتح قائمة ToolsAlt+D لفتح قائمة DataAlt+H لفتح قائمة Window- +Alt لفتح قائمة التحكم في النافذة الخاصة بالمصنف Alt+spacebar لفتح قائمة التحكم في نافذة البرنامجAlt+F4 لإغلاق البرنامجAlt+F11 لإظهار النافذة الخاصة بأوامر لغة الفيجوال بيسكAlt+page Down للانتقال صفحة إلى اليمينAlt+Page Up للانتقال صفحة إلى اليسارالسهم لا سفل+Alt لعرض قائمة ببيانات خلايا العمود الموجودة فيه الخلية المحددة لاختيار أيامنها للنسخPage Down للانتقال صفحة إلى أسفلPage Up للانتقال صفحة الى أعلىمفاتيح الأسهم للانتقال خلية واحدة حسب اتجاه السهمCtrl+0 لإخفاء العمود الخالي أو الأعمدة المظللةCtrl+1 لفتح مستطيل الحوار Format CellsCtrl+6 لإخفاء وإظهار الكائناتCtrl+7 لإخفاء وإظهار شريط الأدوات القياسيةCtrl+9 لإخفاء الصف الحالي أو الصفوف المظللةCtrl+F3 لعرض مستطيل الحوار Define NameCtrl+F4 لإغلاق النافذة النشطCtrl+F5 لإستعادة حجم النافذة للحجم الطبيعىCtrl+F6 لاستدعاء النافذة التاليةCtrl+F7 لتحريك النافذة (أمر Move الموجود بقائمة التحكم في النافذة)Ctrl+F8 لتغيير حجم النافذة (أمر Size الموجود بقائمة التحكم في النافذة)Ctrl+F9 لتصغير النافذة للحد الأدنىCtrl+F10 لتكبير النافذة إلى الحد الأقصىCtrl+F11 لإضافة ورقة الماكروCtrl+A لتظليل ورقة العمل بأكملهاCtrl+B لجعل خط الكتابة ثقيل (Bold)أو إعادته للوضع العاديCtrl+D للنسخ في الخلية نسخة مماثلة للخلية التي فوقهاCtrl+F لفتح مستطيل خيارات FindCtrl+H لفتح مستطيل خيارات ReplaceCtrl+I لجعل خط الكتابة مائلا أو إزالة الإمالةCtrl+N لفتح كتاب عمل جديدCtrl+O لاستدعاء كتاب عمل تم تخزينه من قبلCtrl+P لفتح نافذة أمر الطباعةCtrl+R لنسخ الخلية نسخة مماثلة للخلية التي على يسارهاCtrl+S للحفظCtrl+U لجعل خط الكتابة مسطراCtrl+V للصقCtrl+X للقصCtrl+Z للتراجع عن أخر أمر أو عمليةCtrl+Home للانتقال إلى الخلية الأولى فى ورقة العملCtrl+End للإنتقال إلى أخر خلية في الورقةالأسهم+Ctrl للانتقال إلى أخر الورقة في اتجاه السهمCtrl+Esc لفتح قائمة البداية Start; +Ctrl لإدخال التاريخ الحالي في الخلية;+Ctrl+Shift لإدخال الوقت الحالي في الخليةCtrl+Page Down للانتقال إلى الورقة التالية في كتاب العملCtrl+Page Up للانتقال إلى الورقة السابقة في كتاب العمل&+Ctrl+Shift لتسطير الخلايا المظللة- +Ctrl+Shift لإزالة تسطير الخلايا المظللة#+Ctrl+Shift لتحويل التاريخ إلى الطريقة التالية(يوم/شهر/سنة)$+Ctrl+Shift لتنسيق الأرقام بوضع علامة العملة%+Ctrl+Shift لتنسيق الأرقام بوضع علامة النسبة المئوية)+Ctrl+Shift لإظهار الصفوف المختفية(+Ctrl+Shift لإظهار الأعمدة المختفيةCtrl+Shift+End لزيادة التظليل إلى حواف ورقة العملأو Ctrl+Shift+Homeمفاتيح الأسهم+Ctrl+Shift لزيادة التظليل حتى حافة ورقة العمل حسب اتجاه السهم= +Ctrl+Shift لعرض مستطيل حوار InsertCtrl+Shift+F3 عرض مستطيل حوار Create NamesCtrl+Spacebar لتظليل العمود الحالي بالكاملDelete لمسح النطاق المظللEsc لإلغاء عملية F1 لاستدعاء مجموعة الخيارات الخاصة بالتعليمات المساعدةF2 لتعديل بيانات الخلية الحاليةF3 لاستدعاء أسماء الخلايا أثناء كتابة المعادلاتF4 لتكرار أخر عمليةF5 لتنفيذ أمر Go toF6 للانتقال إلى القسم الأخر من ورقة العمل في حالة تقسيمهاF7 للتدقيق الإملائيF9 لإتمام العمليات الحسابية في كافة أوراق العملF10 تنشيط شريط القوائمF11 لإنشاء رسم بياني خاص بالبيانات المظللةF12 للحفظHome للانتقال إلى بداية الصفShift Backspace لتقليل التظليل وقصره على الخلية الحالية فقطShift Enter للانتقال خلية إلى أعلىShift Tab للانتقال خلية جهة اليسارTab للانتقال خلية جهة اليمين
    1 point
  33. المفاتيح الوظيفية المفتاح الوصف F1 عرض جزء المهام تعليمات Microsoft Office Excel . يستخدم CTRL+F1 لعرض الشريط أو إخفائه، وهو مكوّن في واجهة مستخدم Microsoft Office Fluent. ينشىء ALT+F1 مخطط للبيانات الموجودة في النطاق الحالي. يدرج ALT+SHIFT+F1 ورقة عمل جديدة. F2 تحرير الخلية النشطة ووضع نقطة الإدراج في نهاية محتويات الخلية. ونقل نقطة الإدراج إلى "شريط الصيغة" في حالة إيقاف تشغيل التحرير في إحدى الخلايا. يضيف SHIFT+F2 تعليق إلى خلية أو يحرره. يعرض CTRL+F2 إطار المعاينة قبل الطباعة. F3 عرض مربع الحوار اسم اللصق. يعرض SHIFT+F3 مربع الحوار إدراج دالة. F4 تكرار الأمر أو الإجراء الأخير إذا كان ممكناً. عند تحديد مرجع خلية أو نطاق في صيغة، يؤدي الضغط على F4 إلى التنقل عبر المجموعات المختلفة من المراجع المطلقة والنسبية. يغلق CTRL+F4 إطار المصنف المحدد. F5 عرض مربع الحوار الانتقال إلى. يستعيد CTRL+F5 حجم إطار المصنف المحدد. F6 يستخدم للتبديل بين ورقة العمل والشريط وجزء المهام وعناصر تحكم التكبير والتصغير. ففي ورقة العمل التي تم تقسيمها (القائمة عرض، الأمر إدارة هذا الإطار وتجميد الأجزاء وتقسيم الإطار)، يتضمن F6 الأجزاء المقسمة عند التبديل بين الأجزاء وناحية الشريط. يستخدم SHIFT+F6 للتبديل بين ورقة العمل وعناصر تحكم التكبير والتصغير وجزء المهام والشريط. يستخدم CTRL+F6 للتبديل إلى إطار المصنف التالي عند فتح أكثر من إطار مصنف. F7 عرض مربع الحوار تدقيق إملائي لإجراء تدقيق إملائي في ورقة العمل النشطة أو النطاق المحدد. ينفذ CTRL+F7 الأمر نقل ضمن إطار المصنف عندما يكون غير مكبر. يمكن استخدام مفاتيح الأسهم لنقل الإطار وعند الانتهاء، اضغط ENTER أو ESC لإلغاء الأمر. F8 تشغيل وضع التوسيع أو إيقاف تشغيله. في وضع التوسيع، يظهر تحديد موسع في سطر المعلومات وتوسع مفاتيح الأسهم التحديد. تمكنك SHIFT+F8 من إضافة خلية أو نطاق غير متجاور إلى تحديد من الخلايا باستخدام مفاتيح الأسهم. ينفذ CTRL+F8 الأمر حجم (الموجود في القائمة تحكم الخاصة بإطار المصنف) عندما يكون أي مصنف غير مكبر. تعرض ALT+F8 مربع الحوار ماكرو لإنشاء ماكرو أو تشغيله أو تحريره أو حذفه. F9 حساب كافة أوراق العمل الموجودة في كافة المصنفات المفتوحة. تحسب SHIFT+F9 ورقة العمل النشطة. تحسب CTRL+ALT+F9 كافة أوراق العمل الموجودة في كافة المصنفات المفتوحة، بغض النظر عما إذا كان تم تغييرها منذ آخر عملية حساب. يعيد CTRL+ALT+SHIFT+F9 فحص الصيغ المعتمدة ثم يحسب كافة الخلايا الموجودة في كافة المصنفات المفتوحة، بما في ذلك الخلايا التي لم يتم تحديدها لحاجتها للحساب. يستخدم CTRL+F9 لتصغير إطار المصنف إلى رمز. F10 تشغيل تلميحات المفاتيح أو إيقاف تشغيلها. يعرض SHIFT+F10 القائمة المختصرة للعنصر المحدد. يعرض ALT+SHIFT+F10 القائمة أو الرسالة للعلامة الذكية. إذا كان هناك أكثر من علامة ذكية، يستخدم للتبديل إلى العلامة الذكية التالية ويعرض القائمة أو الرسالة. يكبر CTRL+F10 إطار المصنف المحدد أو يقوم باستعادته. F11 إنشاء مخطط للبيانات الموجودة في النطاق الحالي. يدرج SHIFT+F11 ورقة عمل جديدة. يفتح ALT+F11 محرر Microsoft Visual Basic الذي يمكن إنشاء ماكرو به باستخدام Visual Basic for Applications (VBA) . F12 عرض مربع الحوار حفظ باسم.
    1 point
  34. موضوع جميل وفكرة اجمل تفضل بعض الاختصارات مفاتيح الاختصار التي تستخدم المفتاح CTRL المفتاح الوصف CTRL+PGUP للتبديل بين علامات تبويب ورقة العمل، من اليمين إلى اليسار. CTRL+PGDN للتبديل بين علامات تبويب ورقة العمل، من اليسار إلى اليمين. CTRL+SHIFT+( إظهار أية صفوف مخفية داخل التحديد. CTRL+SHIFT+) إظهار أية أعمدة مخفية داخل التحديد. CTRL+SHIFT+& تطبيق حدود خارجية للخلايا المحددة. CTRL+SHIFT_ إزالة الحدود الخارجية من الخلايا المحددة. CTRL+SHIFT+~ تطبيق تنسيق الأرقام "عام". CTRL+SHIFT+$ تطبيق التنسيق "عملة" بمنزلين عشريتين (تظهر الأرقام السالبة في أقواس). CTRL+SHIFT+% تطبيق التنسيق "نسبة مئوية" دون منازل عشرية. CTRL+SHIFT+^ تطبيق تنسيق رقم "أسي" بمنزلين عشريين. CTRL+SHIFT+# تطبيق التنسيق "تاريخ" باليوم والشهر والسنة. CTRL+SHIFT+@ تطبيق التنسيق "وقت" بالساعة والدقيقة و"ص" أو"م". CTRL+SHIFT+! تطبيق التنسيق "رقم" بمنزلين عشريين وفواصل آلاف وعلامة الناقص (-) للقيم السالبة. CTRL+SHIFT+* تحديد المنطقة الحالية الموجودة حول الخلية النشطة (تحاط منطقة البيانات بصفوف وأعمدة فارغة). في PivotTable، يحدد تقرير PivotTable بأكمله. CTRL+SHIFT+: إدخال الوقت الحالي. CTRL+SHIFT+" نسخ القيمة من الخلية الموجودة أعلى الخلية النشطة إلى الخلية أو إلى "شريط الصيغة". CTRL+SHIFT+Plus (+) عرض مربع الحوار إدراج لإدراج خلايا فارغة. CTRL+Minus (-) عرض مربع الحوار حذف لحذف الخلايا المحددة. CTRL+; إدخال التاريخ الحالي. CTRL+` التبديل بين عرض قيم الخلايا وعرض الصيغ في ورقة العمل. CTRL+' نسخ صيغة من الخلية الموجودة أعلى الخلية النشطة إلى الخلية أو إلى "شريط الصيغة". CTRL+1 عرض مربع الحوار تنسيق خلايا. CTRL+2 تطبيق تنسيق غامق أو إزالته. CTRL+3 تطبيق تنسيق مائل أو إزالته. CTRL+4 تطبيق تسطير أو إزالته. CTRL+5 تطبيق تنسيق يتوسطه خط أو إزالته. CTRL+6 التبديل بين إخفاء الكائنات وعرض الكائنات وعرض العناصر النائبة للكائنات. CTRL+8 عرض رموز التخطيط التفصيلي أو إخفاؤها. CTRL+9 إخفاء الصفوف المحددة. CTRL+0 إخفاء الأعمدة المحددة. CTRL+A تحديد ورقة العمل بأكملها. إذا احتوت ورقة العمل على بيانات، تحدد CTRL+A المنطقة الحالية. ويؤدي ضغط CTRL+A للمرة الثانية إلى تحديد المنطقة الحالية وصفوف التلخيص. أما ضغط CTRL+A للمرة الثالثة يؤدي إلى تحديد ورقة العمل بأكملها. يتم عرض مربع الحوار وسيطات الدالة، عندما تكون نقطة الإدراج إلى يمين اسم الدالة في صيغة. يؤدي ضغط CTRL+SHIFT+A إلى إدراج أسماء الوسيطات والأقواس، عندما تكون نقطة الأدراج إلى يمين اسم الدالة في صيغة. CTRL+B تطبيق تنسيق غامق أو إزالته. CTRL+C نسخ الخلايا المحددة. يؤدي الضغط على CTRL+C متبوعاً بـ CTRL+C إلى إظهار الحافظة. CTRL+D استخدام الأمر تعبئة لأسفل لنسخ محتويات وتنسيق أعلى خلية في نطاق محدد إلى الخلايا الموجودة بأسفل. CTRL+F عرض مربع الحوار بحث واستبدال، مع تحديد علامة التبويب بحث. تعرض SHIFT+F5 أيضاً علامة التبويب هذه، بينما تكرر SHIFT+F4 إجراء بحث الأخير. يفتح CTRL+SHIFT+F مربع الحوار تنسيق الخلايا مع تحديد علامة التبويب خط. CTRL+G عرض مربع الحوار الانتقال إلى. تعرض F5 أيضاً مربع الحوار هذا. CTRL+H عرض مربع الحوار بحث واستبدال مع تحديد علامة التبويب استبدال. CTRL+I تطبيق تنسيق مائل أو إزالته. CTRL+K عرض مربع الحوار إدراج ارتباط تشعبي للارتباطات التشعبية الجديدة أو مربع حوار تحرير ارتباط تشعبيللارتباطات التشعبية المحددة الموجودة. CTRL+N إنشاء مصنف فارغ جديد. CTRL+O عرض مربع الحوار فتح لفتح ملف أو العثور عليه. يحدد CTRL+SHIFT+O كافة الخلايا التي تحتوي على تعليق. CTRL+P عرض مربع الحوار طباعة. يفتح CTRL+SHIFT+P مربع الحوار تنسيق الخلايا مع تحديد علامة التبويب خط. CTRL+R استخدام الأمر تعبئة لليمين لنسخ محتويات وتنسيق الخلية الموجودة أقصى اليسار في النطاق المحدد في الخلايا ناحية اليمين. CTRL+S حفظ الملف النشط باسم الملف الحالي وموقعه وتنسيقه. CTRL+T عرض مربع الحوار إنشاء جدول. CTRL+U تطبيق تسطير أو إزالته. يستخدم CTRL+SHIFT+U للتبديل بين توسيع شريط الصيغة أو طيه. CTRL+V إدراج محتويات "الحافظة" في نقطة الإدراج واستبدال أي تحديد. يتوفر فقط بعد قص كائن أو نص أو محتويات خلايا أو نسخها. تقوم CTRL+ALT+V بعرض مربع الحوار لصق خاص. ويكون متاحًا بعد قص أو نسخ كائن أو نص أو محتويات خلية على ورقة العمل أو في برنامج آخر. CTRL+W إغلاق إطار المصنف المحدد. CTRL+X قص الخلايا المحددة. CTRL+Y تكرار الأمر أو الإجراء الأخير إذا كان ممكناً. CTRL+Z استخدام الأمر تراجع لعكس الأمر الأخير أو لحذف الإدخال الأخير الذي كتبته. يستخدم CTRL+SHIFT+Z الأمر تراجع أو إعادة لعكس التصحيح التلقائي الأخير أو استعادته عند عرض "العلامات الذكية للتصحيح التلقائي".
    1 point
  35. أخي الحبيب م/ياسر السلام عليكم ورحمة الله وبركاته جزاكم الله خيراً على ماقدمتم فكرة رائعة ...
    1 point
  36. مجهود رائع اخي الغالي ياسر فتحى ومبادرة كنت انوي ان اقوم بها ولكنك سبقتنا للخير المهم اخي الغالي هرخم عليك شوية التنسيقات كانت عاوزه تظبيط الكلام من الشمال لليمين ولكم مني كل الشكر والتقدير
    1 point
  37. ما شاء الله ا جمتع اجتماع المحبة بين الاخوه ياسر و الاخ حسام خلصت الى ابداع متكامل بارك الله فيكم جميعا
    1 point
  38. السّلام عليكم و رحمة الله و بركاته مجهود رائع من أستاذيْن أكثر من رائعيْن بارك الله فيك أستاذنا القدير " حسام عيسى " على الموسوعة العلميّة القيّمة و الثّمينة و النّادرة جزاك االله خيرًا و زادك من علمه و فضله بارك الله فيك أستاذنا الغالي " ياسر فتحي البنّا " على العمل المتقن .. و الاجتهاد الجبّار .. الذي قمت به .. من أجل إفادتنا و تسهيل أمورنا جزاك الله خيرًا و جعل كل حرف ممّا كتبتَه بألف حسنة .. هذا إحسان منكَ و إنّ الله لا يضيع أجرَ المحسنين فائق إحتراماتي
    1 point
  39. اخي ياسر السلام عليكم ورحمه الله وبركاته يسعدني ان اكون اول من يحمل الملف مجهود ليس بالهين جزاك الله خيرا انت واخي صقر علي مجهوداتكم
    1 point
  40. وامثلة اخرى على استعمال الوحدة النمطية ومناداتها من الاستعلام: http://www.officena.net/ib/topic/64880-كيفية-جمع-قيمه-اكثر-من-حقل-ب-استعلام/?do=findComment&comment=422306 و http://www.officena.net/ib/topic/64683-خلل-في-تقريب-حقل-محسوب-في-استعلام/?do=findComment&comment=421364 جعفر
    1 point
  41. والآن الى الكنز المخزون في صفحة كود الاكسس ، والذي يحتوي على جميع اوامر الاكسس ، و VBA ، و..... افتح صفحة الكود: . إما تضغط على الايقونه الموضحة بالدائرة الحمراء في الصورة اعلاه ، او تضغط على الزر F2 في لوحة المقاتيح ، وستظهر لك هذه الشاشة: . في الشاشة التاليه: 1. اختر اي الاوامر تريد ، VBA او اكسس او ... ، فسترى انواع الاوامر المتوفرة لها في النافذة 2 ، انا اخترت VBA ، 2. ثم اختار نوع الامر الذي تريده ، انا مثلا اردت جميع اوامر التاريخ والوقت ، فسترى جميع اوامر التاريخ والوقت في النافذة 3 ، 3. اختار الامر الذي تريده وانقر عليه ، انا مثلا اخترت الامر DateAdd ، فسترى في الاسفل (4) طريقة كتابة الامر : . وتستطيع كتابة اي امر تريد في خانة البحث (Recordset مثلا) ، وستحصل على جميع الاوامر التابعة له وإخواننا الصعايدة على راسنا جعفر
    1 point
  42. الى هنا والحديث كله عن API ، ولكن استخدام الوحدات النمطية بشكل يومي يتعدى هذه المعلومة ، فمعظم برامجنا تحتاج الى حساب او معادلات او ... ، فهنا يأتي الوحدة النمطية ، وبالذات عند مناداتها من الاستعلام (او النموذج او التقرير)، ففي الاستعلام قد تكون محتاج الى اجراء عملية حسابية لحقل معين ، وقد تكون خطوات هذه العملية كثيرة ، ولا يمكنك عملها في سطر واحد في الاستعلام ، مثلا: الحقل items في الجدول tbl_AHF يحتوي على 3 معلومات مكررة وهي A, H, F نريد ان نقسم الحقل qty على عدد معين (يعتمد على قيمة الحقل items) ، نقسم qty على 7 ، اذا كانت قيمة items تساوي A ، نقسم qty على 6 ، اذا كانت قيمة items تساوي H ، نقسم qty على 5 ، اذا كانت قيمة items تساوي F ، هنا من الصعوبة ان نضع كود العملية كلها في الاستعلام في سطر واحد ، واذا وضعناه ، فلن نستطيع تعديله بسهولة لاحقا ، لأنه سيكون معقدا ، فالطريقة المثلى هنا ، هي عمل وحدة نمطية ، وارسال قيم الحقول items , qty اليها ، وعمل الكود بها ، واسترجاع النتائج منها ، الوحدة النمطية ستكون هكذا: Function Get_Values(i, q) 'i = items 'q = qty If i = "A" Then Get_Values = q / 7 ElseIf i = "H" Then Get_Values = q / 6 ElseIf i = "F" Then Get_Values = q / 5 End If End Function . والاستعلام يكون بهذه الطريقة: . والنتيجة: . وهنا نلاحظ من النتيجة ان تنسيقها للجهة اليسار ، مما يعني ان النتيجة نص وليست رقم ، لذا نرجع للوحدة النمطية (ودون المساس بالاستعلام) ونجري عليها التعديل المطلوب ، وبكل سهولة ، لتغيير النتيجة من نص الى رقم ، وتصبح الوحدة النمطية: Function Get_Values(i, q) As Double 'i = items 'q = qty If i = "A" Then Get_Values = q / 7 ElseIf i = "H" Then Get_Values = q / 6 ElseIf i = "F" Then Get_Values = q / 5 End If End Function . والنتيجة جعفر 258.modulesANDcommands.mdb.zip
    1 point
  43. شكرا أخي الاستاذ رمهان على هذا الشرح والان الى الجانب العملي لا تستطيع ان تنادي هذه الوحدات بالطرق التقليدية ، وكل لغة (مثل VB, VBA, C++, ...) لها طريقتها الخاصة في مناداة هذه الوحدات ، وبالنسبة الى اكسس ، فالرابط التالي يعطينا امثلة في كيفية استخدامها: http://access.mvps.org/access/index.html وملك الوحدات النمطية وبالذات للرسومات في الاكسس: http://lebans.com/ جعفر
    1 point
  44. تقبل خالص تحياتى وتقديرى وإحترامى أخى الحبيب abouelhassan لمرورك العطر
    1 point
  45. اهلا بك ابو عبدالله عايزك تفهم ان موضوعك موضوع مفتوح نوعا ما ! او للاجابة يحتاج وقت وشرح ولابد من التطرق للاساسيات علشان نكمل ! وبرضه يا اشرح شي بشكل علمي لانه سيكون مرجع لكل من يمر هنا ! لذلك مثل هذه الاشياء خذها من مصادرها الصحيحة والموثوقة افضل مثل : كتب - موقع ميكروسوفت ! انصحك ان تاخذ كتاب في الاساسيات وبتسلسل المواضيع بدون القفز من فصل لاخر ! الشي الذي ممكن اضيفه هنا هو : عايزك تتخيل ان هذا البريمج (الاكسس) به قاعدة بيانات مصغرة - اداة تصميم وتطوير - بيئة لكتابة اكواد ! كلها هذا ونحن نعرف ان كل منها موجود كمنتج مستقل من شركات اخرى ! بينما هذه كلها موجودة في ملف واحد ! وملف ايه ؟ ملف بيانات ! بل كل وحدة عبارة عن كائن داخل هذا الملف ! بمعنى انتي الوحدة النمطية اللي نكتب فيك الاكواد ماخذه شكل مصغر من عمل ادوات التطوير المستقلة مثل الترجمة وتتبع الاخطاء وغيرها وتحويل الكود الى لغة الكمبيوتر ! وهية مع هذا كله مازالت كائن في ملف الاكسس ! فمش عارف هل ننظر للموضوع استخفاف بعقولنا ام انه ابداع في هذا المنتج ؟!!!!! وهنا انا حجيبك على استفساراتك ولكن اتمنى ان لاتكون حلقة مفتوحة باستفسار عن جواب لاستفسار سابق وهكذا ! وصدقني ابداية مع كتاب وبتسلسل منطقي افضل بكثير من المواضيع التي تكتب بالانترنت وذلك لاسباب عدة منها انت لاتعرف مستوى كاتب الموضوع او صحة مايكتب عكس الموجود بالكتب والمعتمدة ! ** كلمة private تحدد مدى حياة المتغيرscope ! فبها يكون حي فقط في المكان الذي ولد به اي عرف به ! فمثلا ولد في وحدة نمطية عامة فانه يعرف وحي في تلك الوحدة فقط ! ولدة في وحدة فئة نموذج فانه حي ويعرف هنا فقط ! بمعنى لو ناديته منكا اخر ستجده ميت ولا يستجيب ! عكس public ** byval و byref تستخدم لتحديد نوع او اسلوب تمرير المتغيرات للاجراءت والدوال ! بالعربي : بالقيمة او المرجع ! فاذا مررت قيمة متغير من نوع قيمة فانه للرغبة او عدم الاستطاعة في تغيير قيمة المتغير الاساسية عكس بالمرجع التي يمكن تغيير قيمة المتغير من خلال الاجراء او الدالة ! كما ان الموضوع يطول حول مسالة تعريف المتغيرات نفسها بانها من نوع قيمة ام مرجع ! فهل ممكن امرر قيمة متغير معرف انه مرجع لدالة تستقبل بالقيمة ؟ !! ** رابط لل api : https://msdn.microsoft.com/en-us/library/windows/desktop/ff818516(v=vs.85).aspx http://allapi.mentalis.org/apilist/apilist.php طبعا تاكد من توافق الدالة مع اصدار الويندوز! هذا متمنيا ان حصل لو جزء من ما تريد ! كما انبه على ان الشرح لا بد ان ياتي من استاذ فهو علم بحد ذاته فليس المقصود بالاستاذ بقدر مايملك من معلومة ولكن بقدر رضا تلاميذه في ايصال المعلومة ! تحياتي
    1 point
  46. بارك الله فيك معلمنا الفاضل انت بالنسيه لنا مع هذه الصحبه الجميله من المعلمين الذين يقدمون يد العون والمعلومه لوجه الله تعالى وبصدق احاول المحافظه على اعمالهم الجميله وكنت اتمنى ان استطيع نقل جميع مواضيع الاساتذه هنا للحفظ ولتكن مرجع للجميع
    1 point
  47. بسم الله الرحمن الرحيم منذ ان حملت المرفق و انا افكر في طريقة لشرح الفرق بينهما و ساحاول ان اشرح عسى ان يستفاد منها اولا : الكود يتم وضع الكود في زر امر او عند تحميل نموذج او اغلاقه و يكون الكود خاصا بمعنى ينفذ عند حدث الضغط على زر الامر ( oopen ) مثلا private sub oopen_click docmd.openform"11" end sub نلاحظ في بداية الكود كلمة ( private ) اي خاص و الكود هنا ينفذ فقط عند الضغط على زر ( oopen ) ثانيا : الوحدات النمطية تحتوي الوحدات النمطية على اكواد او وظائف و على عكس ( الكود ) يمكن استدعاء الوحدة النمطية في اي نموذج وهي لا تتحس بالأحداث مثلا Public Sub openform() DoCmd.openform "ff" End Sub نلاحظ وجود كلمة ( public ) اي عمومي يقوم هذا الكود بفتح النموذج ( ff ) و يتم استدعائه بهذا الشكل Private Sub Command0_Click() Call openform End Sub حيث نضع هذا الكود في اي زر موجود ضمن اي نموذج فائدة : لا يجوز تسمية الوحدة النمطية بنفس اسم احد الكودات الموجود داخلها ( مثلا لا يجوز تسمية الوحدة النمطية السابقة باسم openform بل يجب اعطائها اي اسم آخر ) فائدة : لا يمكن ان تكتب في الوحدة النمطية ( oopen_click ) لان الوحدة النمطية لا تتحسس بالأحداث ثالثا : الوحدة النمطية للفئة الوحدة النمطية للفئة تجمع بين الوحدة النمطية و الكود بمعنى آخر الكود التالي ينفذ عند فتح النموذج private sub form_open Set Anim = New clsFormAnimate end sub و عملية فتح النموذج فعليا هي حدث ولكن لا يمكن ان نكتب الكود السابق ضمن وحدة نمطية حتى لو استعملنا كلمة ( public ) لان الوحدة النمطية لا تتحس بالأحداث ( كما ذكرنا سابقا ) انما تخزن كودا عاما يتم تعريفه باسمه و ضمن اسمه نكتب ما نريد ان ينفذ لكن الوحدة النمطية للفئة يمكن ان تتحس بالأحداث و تتعامل معها مثلا يمكن ان تكتب ضمن الوحدة النمطية للفئة Private Sub mForm_Load() MsgBox "hi", vbInformation End Sub الكود السابق يعطي رسالة ( hi ) عند تحميل نموذج و لكن اي نموذج !!!! الجواب هو اي نموذج نرغب به فقط علينا استدعاء الوحدة النمطية للفئة لتنفيذ هذا الكود فائدة : الوحدة النمطية للفئة تستدعى باسمها على عكس الوحدات النمطية كيف يتم استدعاء الوحدة النمطية للفئة ؟؟ 1 - ننشئ وحدة نمطية للفئة و نسميها ( open1 ) نكتب الكود التالي في قسم التصريحات العامة للوحدة النمطية للفئة Public withevents mform As Access.Form حيث يتم تعريف المتغير ( mform ) كنموذج 2 - نكتب هذا الكود في الوحدة النمطية للفئة Private Sub Class_Initialize() mForm_Load Beep End Sub عند تحميل الوحدة النمطية اذهب الى ( mform_load ) 3 - نضيف هذا الكود الى الوحدة النمطية للفئة Private Sub mForm_Load() MsgBox "hi", vbInformation End Sub عند تحميل ( mform ) اظهر رسالة ( hi ) و طبعا ( mform ) تم تعريفه سابقا كنموذج اكسس 4 - نكتب هذا الكود في قسم التصريحات العامة للنموذج الذي نرغب ان يتم استدعاء الوحدة النمطية للفئة فيه و ليكن مثلا ( 123 ) Dim Anim As open1 تم تعريف متغير ( anim ) كوحدة نمطية للفئة 5 - نكتب هذا الكود في حدث تحميل النموذج ( 123 ) Set Anim = New open1 تم ضبط المتغير ليستدعي الوحدة النمطية للفئة فائدة : لايمكن كتابة الكود التالي لاستدعاء الوحدة النمطية للفئة Private Sub Form_Load() Call open1 End Sub الكود المكتوب ضمن الوحدة النمطية للفئة السابقة يقوم باصدار صوت تنبيه و يظهر رسالة مكتوب فيها ( hi ) الكثير يسأل هل يجب ان اكتب كل هذه الجريدة من اجل صوت تنبيه و رسالة ترحيب الجواب هو لا ولكن يتم انشاء الوحدات النمطية للفئة من اجل عدد نماذج اكبر و عمليات كودات اكبر و في النهاية ربما يستطيع المرفق ان يشرح افضل مني وارجو ممن يستطيع ان يشرح افضل مني ان يسهم في شرح الموضوع و اعتذر على الإطالة مثال عن انشاء الوحدات النمطية و الوحدات النمطية للفئة.rar
    1 point
×
×
  • اضف...

Important Information