اذهب الي المحتوي
أوفيسنا

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

  1. ياسر خليل أبو البراء

    ياسر خليل أبو البراء

    المشرفين السابقين


    • نقاط

      7

    • Posts

      13165


  2. ibn_egypt

    ibn_egypt

    الخبراء


    • نقاط

      6

    • Posts

      764


  3. Yasser Fathi Albanna

    Yasser Fathi Albanna

    06 عضو ماسي


    • نقاط

      5

    • Posts

      1313


  4. ابو تراب

    ابو تراب

    الخبراء


    • نقاط

      4

    • Posts

      393


Popular Content

Showing content with the highest reputation on 01/09/15 in مشاركات

  1. اخى الفاضل أولاً : أنشئ ملف إكسل جديد واحفظه باى اسم وليكن باسم الإستمارة CS017001 ... تمام ثانيا: من قائمة Data (بيانات ) ومن المجموعة Get External Data (احضار بيانات خارجية ) ... اضغط على From Access ... ثم اختر قاعدة البيانات الخاصة بك من الجهاز كما في الصورة 1 بالمرفقات ثالثا: من الإطار الذي أمامك اختر الإستمارة أو جدول الأكسيس الذي تريد وضع بياناته بشيت الإكسل وهنا سنختار جدول CS017001 كما بالصورة 2 في المرفقات رابعاً: سيظهر لك اطار تحدد من خلاله اين سيتم وضع البيانات هل في هذا الشيت ام شيت جديد وبداية من اى خلية ... هنا في الصورة اخترت من هذا الشيت وبداية من الخلية A1 كما في الصورة 3 بالمرفقات خامساً: ستجد ان كافة البيانات بالجدول أصبحت موجودة لديك بالشيت ... يلزمنا النقطة الأخيرة وهى تزبيط خصائص الاتصال لجعل تحديث البيانات يتم كل فترة وجيزة وكذلك تحديث البيانات يتم عند فتح ملف الإكسل دائما .... وذلك من قائمة Data (بيانات) ثم اختر اتصالات Connections .. ثم حدد قاعدة البيانات واضغط Properties (خصائص ) من اليمين ومن الإطار الظاهر أمامك اجعل فترة تحديث البيانات كما تريد انا هنا في الصورة 4 بالمرفقات جعلتها دقيقة واحدة وكذلك تحديث البيانات عند فتح الملف أرجو من الله أن أكون وفقت في ايصال المعلومة وأن يكون هذا طلبك .... وجمعه مباركة تحياتي Access-Excel-Pic.rar
    2 points
  2. السلام عليكم تفقيط محدث بدالتي جديدتين واحدة للعربي ArbNum2Text وأخرى للإنجليزي EngNum2Text وتم الفصل بينهما بعد إن كانتا في دالة واحدة وذلك لوجود فرق في عدد المدخلات تصل إلى 4 مدخلات . والتحديث الآن تركز على تسهيل استخدام الدوال وخصوصا العربي مع استخدام المدخلات الإختيارية والتي كانت سابقا كلها مدخلات مطلوبة . لي ملاحظة واحدة فقط وتحتاج إلى آرائكم وهي تفقيط الكسر للدالة الإنجليزي وخصوصا أن الدالة تبدأ بالعملة أولا ثم تحويل الأرقام إلى حروف وعند الكسر يكون العكس ، الشيء الذي لا يروق لي .. فمن له دراية بالموضوع أرجو التكرم بتقديم مالديه من معلومات ولكم جزيل الشكر سلفا . الكود معمول لللأكسس والأكسل معا . تحياتي . الملفات المرفقة Num2Text20030725.zip ( 74.73ك ) عدد مرات التنزيل: 626
    1 point
  3. السلام عليكم ورحمة الله وبركاته يا من تعشقون سيرته، ويا من ترجون شفاعته، صلوا عليه وسلموا تسليما صلى الله عليك ياحبيبى يارسول الله كل عام وانتم بخير بمناسبة المولد النبوى الشريف ========================================================= اساتذتى فى هذا الصرح العظيم اوفيسنا اخواتى فى الله اقدم اليكم دالة HYPERLINK بدون استخدام اى دوال وسيطه مثل ال VLOOKUP اوINDIRECT او اى داله من دوال البحث الاخرى ====================================================== تقبلوا منى خالص تحياتى تعلم دالة hyperlink.rar
    1 point
  4. للهم لك الحمد ... واسعدتنى باضافته للمكتبة، جزاك الله كل خير استاذي وجعل عملك في ميزان حسناتك تحياتى
    1 point
  5. تمت العملية بنجاح بعد تنصيب الأداة جزاكم الله خيراً أخي الحبيب ابن مصر وتمت الإضافة للمكتبة وهذا ما أخرني في الرد .. عملت كل الأكواد بنجاح بعد تنصيب الأداة مشكور على تعبك معايا تقبل تحياتي القلبية :fff:
    1 point
  6. استاذ ياسر ليس هنا ما يدعو للاعتذار اطلاقا ...فالخطأ هو خطئي فقد كان من المفترض ان اختر مثال افضل من الدالة Sum ان شاء الله في المرة القادمة ساضع ملاحظتك القيمة في الاعتبار تقبل تحياتي و تقديري
    1 point
  7. جزيت خيراً أخي الغالي أبو تراب على المعلومات القيمة .. واعذرني أني لم أفهم مقصودك من الدالة إذ أن الموضوع كما تعلم ليس موضوع تعليمي بقدر ما هو أكواد جاهزة .. فلم يخطر ببالي أنك تقصد هذا المقصد من الدالة .. تقبل اعتذاري عن سوء فهمي لك وجزيت خير الجزاء على المعلومات المفيدة جداً
    1 point
  8. اولا تقبل شكري على الاهتمام بهذا الكود للتوضيح الغرض من الدالة ليس الدالة نفسها (فالدالة SUM تكفي و زيادة) و لكن الغرض الاساسي هواعطاء مثال على عمل اي دالة قادرة على قبول و سيط او اكثر دون تحديد عددها. على كلا اذا كان هناك ميزة للدالة فربما في ال VBA فالدالة WorksheetFunction.Sum تقبل الى حد 30 وسيط. من ناحيت الخطأ فسبب ان الدالة سترجع خطأ اذا وجدت اي وسيط ليس برقم حتى لوكان NULL. في رايي انه يمكن القياس على هذه الدالة لانشاء دوال اكثر ملائمة .. مثلا ;كتبت دالة مستفيدا من فكرة الكود بحيت تعمل على تعبئة الخلاياء باي نوع من البيانات الكود مع كود الاختبار Sub Fill(R As Range, ParamArray Values() As Variant) Dim i As Integer For i = LBound(Values) To UBound(Values) R.Offset(0, i).Value = Values(i) Next i End Sub Sub test() Fill [A1], 100, "This", True, -25.5 End Sub
    1 point
  9. اذا كنت تستخدم اكسيس 2007 او 2007 SP1 فقم بتحميل التحديث التالي http://www.microsoft.com/en-us/download/details.aspx?id=5
    1 point
  10. كود لإلغاء الحماية Sub UnrotectAll() Dim sh As Worksheet Dim myPassword As String myPassword = "password" For Each sh In ActiveWorkbook.Worksheets sh.Unprotect Password:=myPassword Next sh End Sub
    1 point
  11. كود حماية شيت الإكسل Sub ProtectAll() Dim sh As Worksheet Dim myPassword As String myPassword = "password" For Each sh In ActiveWorkbook.Worksheets sh.Protect Password:=myPassword Next sh End Sub
    1 point
  12. كود لعمل نسخة من الشيت الأصلى Sub Copy_ActiveSheet_1() 'Working in Excel 97-2013 Dim FileExtStr As String Dim FileFormatNum As Long Dim Sourcewb As Workbook Dim Destwb As Workbook Dim TempFilePath As String Dim TempFileName As String With Application .ScreenUpdating = False .EnableEvents = False End With Set Sourcewb = ActiveWorkbook 'Copy the sheet to a new workbook ActiveSheet.Copy Set Destwb = ActiveWorkbook 'Determine the Excel version and file extension/format With Destwb If Val(Application.Version) < 12 Then 'You use Excel 97-2003 FileExtStr = ".xls": FileFormatNum = -4143 Else 'You use Excel 2007-2013 Select Case Sourcewb.FileFormat Case 51: FileExtStr = ".xlsx": FileFormatNum = 51 Case 52: If .HasVBProject Then FileExtStr = ".xlsm": FileFormatNum = 52 Else FileExtStr = ".xlsx": FileFormatNum = 51 End If Case 56: FileExtStr = ".xls": FileFormatNum = 56 Case Else: FileExtStr = ".xlsb": FileFormatNum = 50 End Select End If End With ' 'Change all cells in the worksheet to values if you want ' With Destwb.Sheets(1).UsedRange ' .Cells.Copy ' .Cells.PasteSpecial xlPasteValues ' .Cells(1).Select ' End With ' Application.CutCopyMode = False 'Save the new workbook and close it TempFilePath = Application.DefaultFilePath & "\" TempFileName = "Part of " & Sourcewb.Name & " " & Format(Now, "yyyy-mm-dd hh-mm-ss") With Destwb .SaveAs TempFilePath & TempFileName & FileExtStr, FileFormat:=FileFormatNum .Close SaveChanges:=False End With MsgBox "You can find the new file in " & TempFilePath With Application .ScreenUpdating = True .EnableEvents = True End With End Sub
    1 point
  13. كود تحويل إمتداد Xlsx إلى Xls Sub SaveAllAsXLSX() Dim strFilename As String Dim strDocName As String Dim strPath As String Dim wbk As Workbook Dim fDialog As FileDialog Dim intPos As Integer Dim strPassword As String Dim strWritePassword As String Dim varA As String Dim varB As String Dim colFiles As New Collection Dim vFile As Variant Set fDialog = Application.FileDialog(msoFileDialogFolderPicker) With fDialog .Title = "Select folder and click OK" .AllowMultiSelect = True .InitialView = msoFileDialogViewList If .Show <> -1 Then MsgBox "Cancelled By User", , "List Folder Contents" Exit Sub End If strPath = fDialog.SelectedItems.Item(1) If Right(strPath, 1) <> "\" Then strPath = strPath + "\" End With If Left(strPath, 1) = Chr(34) Then strPath = Mid(strPath, 2, Len(strPath) - 2) End If Set obj = CreateObject("Scripting.FileSystemObject") RecursiveDir colFiles, strPath, "*.xls", True For Each vFile In colFiles Debug.Print vFile strFilename = vFile varA = Right(strFilename, 3) If (varA = "xls" Or varA = "XLS") Then Set wbk = Workbooks.Open(Filename:=strFilename) If wbk.HasVBProject Then wbk.SaveAs Filename:=strFilename & "m", FileFormat:=xlOpenXMLWorkbookMacroEnabled Else wbk.SaveAs Filename:=strFilename & "x", FileFormat:=xlOpenXMLWorkbook End If wbk.Close SaveChanges:=False obj.DeleteFile (strFilename) End If Next vFile End Sub Public Function RecursiveDir(colFiles As Collection, _ strFolder As String, _ strFileSpec As String, _ bIncludeSubfolders As Boolean) Dim strTemp As String Dim colFolders As New Collection Dim vFolderName As Variant 'Add files in strFolder matching strFileSpec to colFiles strFolder = TrailingSlash(strFolder) strTemp = Dir(strFolder & strFileSpec) Do While strTemp <> vbNullString colFiles.Add strFolder & strTemp strTemp = Dir Loop If bIncludeSubfolders Then 'Fill colFolders with list of subdirectories of strFolder strTemp = Dir(strFolder, vbDirectory) Do While strTemp <> vbNullString If (strTemp <> ".") And (strTemp <> "..") Then If (GetAttr(strFolder & strTemp) And vbDirectory) <> 0 Then colFolders.Add strTemp End If End If strTemp = Dir Loop 'Call RecursiveDir for each subfolder in colFolders For Each vFolderName In colFolders Call RecursiveDir(colFiles, strFolder & vFolderName, strFileSpec, True) Next vFolderName End If End Function Public Function TrailingSlash(strFolder As String) As String If Len(strFolder) > 0 Then If Right(strFolder, 1) = "\" Then TrailingSlash = strFolder Else TrailingSlash = strFolder & "\" End If End If End Function
    1 point
  14. تفضل اخي ابو الاء مثال علي الصلاحيات صلاحيات اخر تحديث.rar
    1 point
  15. أنت أيضا أخي الفاضل، ياسر خليل ما رأيت منك إلا الإستجابة وحسن التعامل وعدم البخل بالمعرفة. زادكم الله فضلا جميعـا ورزقكم من حيث لا تحتسبون وجعلكم خدمة لإخوانكم تجدون لذتها في الآخرة.
    1 point
  16. الأخ الفاضل شكيب (بالمناسبة يعني ايه شكيب) تسهيلاً عليك قمت بتجميع حلول الأخ الحبيب والأستاذ الكبير بن عليه في المرفق 4 أوراق عمل الورقة الأولى والثانية بالأكواد ، والثالثة بمعادلات الصفيف (حل الكبير بن عليه) ، والورقة الرابعة (الرابحة) بالمعادلات لابن عليه حاجي أيضاً .. تفضل المرفق ومتنساش الدعوة تشملنا إحنا الاتنين Populate According To Number.rar
    1 point
  17. أخي الفاضل أبو سليمان يرجى بعد ذلك وضع الكود بين علامتي الكود عند وضع مشاركة من هذه العلامة <> تفضل شرح مبسط للكود / Private Sub Worksheet_Change(ByVal Target As Range) 'يوضع الكود في حدث ورقة العمل ، كليك يمين على اسم الورقة ثم الأمر View Code. 'تعريف المتغير Dim I As Integer 'النطاق الذي سيتم فيه تنفيذ الكود في حالة التعديل في أي خلية من خلاياه If Not Intersect(Target, Range("B2:D27")) Is Nothing Then 'المتغير الذي تم الإعلان عنه يساوي رقم صف الخلية الهدف أي الخلية التي يت التعديل فيها I = Target.Row 'الخلية في العمود الخامس تساوي حاصل ضرب الخلية في العمود الثالث في الخلية في العمود الرابع Range("E" & I).Value = Range("C" & I).Value * Range("D" & I).Value 'إذا كانت الخلية في العمود الثاني ليست فارغة If Range("B" & I).Value <> "" Then 'فإن قيمة الخلية في العمودالثامن تساوي قيمة الخلية في العمود الخامس Range("H" & I).Value = Range("E" & I).Value 'أما إذا كانت فارغة Else 'فإن قيمة الخلية في العمود الثامن تساوي فراغ أي تترك فارغة Range("H" & I).Value = "" End If End If End Sub
    1 point
  18. اكواد التعامل مع جداول الاكسل مرفق ملف للتوضيح Sub btnCreateTable() ' انشاء جدول و تعيين اول سطر كـ اسماء للحقول و اعطاء اسم للجدول ليسهل الوصول اليه Sheet1.ListObjects.Add(xlSrcRange, Range("A1:D9"), , xlYes).Name = "tblStudents" ' الغي الوان الخلفية و اعتمد تنسيق الجدول Range("tblStudents").Interior.ColorIndex = 0 ' الغي فلتر الجدول Range("tblStudents").AutoFilter End Sub Sub btnResetTable() ' الغي الجدول و عده لحالته الاولى (مدى) On Error Resume Next Sheet1.ListObjects("tblStudents").Unlist End Sub Sub btnSortTable() ' ترتيب اسطر الجدول على حسب الاسم With Sheet1.ListObjects("tblStudents").Sort .SortFields.Clear .SortFields.Add _ Key:=Range("tblStudents[[#ALL],[الاسم]]"), _ SortOn:=sortonvalues, _ Order:=xlAscending, _ DataOption:=xlSortNormal Range("tblStudents[#ALL]").Select .Header = xlYes .MatchCase = False .Orientation = xlSortColumns .SortMethod = xlPinYin .Apply End With End Sub Sub btnFilterTable() ' فلترة الحقل الاول (الاسم) و اظهار جميع الطلاب الذين اسمائهم عمر Range("tblStudents").AutoFilter Field:=1, Criteria1:="عمر" End Sub Tables.zip
    1 point
  19. نفس الموضوع لكن بكود اقصر Sub othermethod() Dim taba As Range, tabb As Range Set ws = Sheet1 lra = ws.Cells(Rows.Count, 1).End(xlUp).Row lrb = ws.Cells(Rows.Count, 2).End(xlUp).Row Set taba = Range("a2:a" & lra): Set tabb = Range("b2:b" & lrb) Set ct = Application.WorksheetFunction i = 1 For Each x In taba If ct.CountIf(tabb, x) >= 1 Then Cells(i + 1, 4) = x: i = i + 1 End If Next End Sub
    1 point
  20. السلام عليكم استاذ ياسر هذا كود لتنفيد التغييرات على الشيت في حالة حماية الشيت و مشاركة الملف...ارجوا ان يكون مفيدا تنفيذ الكود في حالة مشاركة ملف الاكسل Sub Button1_Click() بداية الجملة With علي الملف الحالي With ActiveWorkbook .الغاء ظهور رسائل اكسل Application.DisplayAlerts = False .تفعيل الوصول الحصري للملف .ExclusiveAccess .تفعيل ظهور رسائل اكسل Application.DisplayAlerts = True ازالة الحماية للورقة ActiveSheet.Unprotect 111 نسخ الخلية A1 في الخلية A2 [A2] = [A1] حماية الورقة ActiveSheet.Protect 111 . Application.DisplayAlerts = False .تفعيل متابعة التغييرات في الملف المشارك .KeepChangeHistory = True .تفعيل مشاركة الملف .SaveAs Filename:=ActiveWorkbook.FullName, AccessMode:=xlShared . Application.DisplayAlerts = True نهاية الجملة With End With End Sub تشغيل ماكرو في ملف مشارك.zip
    1 point
  21. استاذى الحبيب والعزيز //ياسر خليل جزاكم الله خيرا على مشاركتكم وعلى تشجعيكم المستمر الذى لاحدود له . فعلا انت روح المنتدى. وبما انك من اوائل المشجعين لهذا الاول فساعرض عليك وعلى الجميع خطتى فى هذا الموضوع . ============================================================================================================= بدات بمقدمة كان لابد منها( عن بديات محتويات اى معادله او صيغه مهما كانت) ثم ساطرح موضوع عن عن مجموعة دوال مثلا دول الجمع او البحث او المرجع او الدوال المنطقيه ............الخ ساتناول الموضوع بثلاث مستويات ( سهل ثم وسط ثم متقدم) وساحاول قدر الامكان الابتعاد عن التعقيد . او كتابة اى كلام فى اى شىء سيكون المرفقات عباره عن ملفين الاول وهو الدرس الحالى والثانى هو اخر تحديث للمكتبه ارجو من الجميع مشاركتى واضافة مالديهم . على ان يكون فى نفس موضوع الطرح او المعادله . وهذا مااطلبه منك استاذى ياسر خليل على استحياء من استاذ كبير مثلك ============================================================================================================== وارجو ان تسمح لى وتتقبل منى هذه الاضافه لنفس المعادله حيث يمكنك الاستغناء عن كتابة الرقم (9.99999999999999E+307) ب 10^10 او 100^100 زى ماتحب ============================================================================================================== استاذى ياسر وكل اساتذتى اطلب منكم ان تشاركونى الاجر والثواب فى هذا العمل . ولايحرمنا احدكم من رأيه ومقترحاته واضافاته . فهذا العمل خالص لله تعالى لايخص محمد الريفى او شخص بعينه تقبل منى خالص التحيه والاحترام والتقدير
    1 point
  22. اخى الفاضل بعد إذن أستاذنا الكريم أ.سليم، ولإثراء الموضوع مرفق ملف به مقارنة العمودين باستخدام الكود البرمجي ووضع المكرر في العمود الثالث تحياتي CompareA&B.rar
    1 point
  23. أخي الحبيب أترك لابن مصر الغالي صاحب اللمسات السحرية في التنسيقات عمل اللازم ... المهم أن تكون جربت الملف على قيم مختلفة وأدى العمل بكفاءة .. هذا هو المهم ..أما التنسيقات فتعتبر أمر فرعي .. يمكنك تسجيل ماكرو بالتنسيقات اللازمة وتنفيذ الماكرو في آخر الكود المرفق بالملف أعتقد لن يكون بالأمر الصعب أخي وحبيبي ابن مصر الغالي ..جريت خيراً على كلماتك الطيبة ..تقبل تحياتي والكود للأمانة ليس لي ولكنه بعد مجهود طويل في بعض المنتديات للوصول به إلى هذا الشكل النهائي
    1 point
  24. يمكنك ذلك من خلال: فتح مستند جديد فارغ ثم الوصول للصندوق الحواري خط font ثم اختيار نوع الخط وحجمه ولنه وأي اعدادات أخرى مطلوبة ثم الضغط على تعيين كافتراضي set as default ثم موافق ok
    1 point
  25. اخى الفاضل مرفق الملف به طلبك بدون معادلات وباستخدام الكود البرمجي ... اكتب في F1 علامة التمييز التى تريدها واختر من F2 جارى او خاص .. ثم اضغط زر احضار البيانات تحياتي استخراج أوجلب البيانات المميزة بشرط .rar
    1 point
  26. ايه الجمال والحلاوة دي ... كود ولا أروع ولا أجمل ولا أحلى .. تسلم إيدك تحياتي أستاذي الفاضل
    1 point
  27. بسم الله ما شاء فعلاً خير البر عاجله ماكنتش متوقع هذه الاستجابة أن تكون بهذه السرعة أستاذى الفاضل أشعر وكأن الموضوع كان بخلدك ومستنى تكه ويطلع الحمد لله ربنا يجعله فى ميزان حسناتك لى اقتراح أستاذى الفاضل وهى أن نمسك الدوال مجموعة مجموعة أقصد عمل تصنيف لها نبدأ مثلاً بالدوال الرياضية ثم دوال الوقت والتاريخ ثم دوال التحويل والتفاعل والنصوص وهكذا ونخلص مجموعة مجموعة حتى لا نتتشتت كيف نتناول الدالة ؟ أقترح اسم الدالة نوعها ( تبع أى مجموعة ) الوظيفة صورتها البسيطة صورتها المركبة مع دالة غيرهاأو أكثر تطبيقات متنوعة بين السهل والصعب أين نضع الدوال فى مكتبة كمكتبة الأكواد او فى ملف اكسل ؟ الأمران سيان عند البعض والبعض الآخر وهو كثير يميل الى التطبيق ( وأنا أفضل العمل على ملف اكسل ) لان الرياضيات أصلا مش حفظ قانون فقط ولكن تطبيق هذا 1 2 بعض المعادلات يصعب على البعض كتابتها وخاصة لما تكون المعادلة مركبة من كذا دالة . 3 عمل نوع من الاختلاف بين المكتبتين فلا يقال هناك ثمة تقليد لكم :fff: منى
    1 point
  28. بارك الله فيكم استاذى الفاضل اذن على بركة نبدأ فى عمل مكتبة الدوال والمعادلات فى أقرب وقت ونترك لحضرتك وضع اللبنة الأولى وأساسيات المشروع ثم نكمل معا باذن الله تعالى تقبل منى هذه
    1 point
  29. أؤيد هذا الاقتراح بشدة ، وقد اقترحته من قبل يا ريت الأخوة تأخذ الاقتراح محمل الجدية وأعتقد إن المعادلات هتكون أسهل .. المعادلة وشرح مبسط ليها في سطر أو سطرين مشكور أخي مختار على تأكيد الاقتراح
    1 point
  30. أستاذى الفاضل محمد الريفى بارك الله فيك على ما تقدمه لنا جعله المولى عزوجل فى ميزان حسناتك لو تسمح لى باقتراح الأكواد واخده حقها وزيادة فى المنتدى وحضرتك أعلم منى بذلك وأقترح عليكم ( إن سمح وقتكم ) عمل مكتبة متخصصه فى الدوال والمعادلات نضع فيها المعادلات البسيطة ثم المعادلات والدوال المركبة مع تطبيقات متنوعة على غرار مكتبة الأستاذ ياسر خليل خاصةً وان حضرتك لديك ملكة الابداع فى المعادلات والدوال من خلال متابعتى لأعمال حضرتك . ويبقى عندنا مكتبة الأكواد ومكتبة المعادلات والدوال فما رأيكم فى هذا ؟ تحياتى لك أستاذى الكريم
    1 point
  31. بارك الله فيك أخي الحبيب الجموعي هكذا يكون العمل ويكون النشاط .. بالإضافة إلى وضع الكود في المشاركة يرجى تحميل المرفق من أول مشاركة ووضع الأكواد بعنوان مناسب ، وليكن العنوان مثلاً (تغيير عنوان الفورم) وعمل شرح لها بشكل مبسط . كما يرجى وضع الكود في الحدث المناسب حتى لا يختلط الأمر على الباحث فيما بعد بهذا الشكل مثلاً Private Sub UserForm_Initialize() UserForm1.Caption = ThisWorkbook.ActiveSheet.Name End Sub
    1 point
  32. الاستاذ / حميدو السلام عليكم ورحمة الله وبركاته يمكنك استخدام هذا الملف يتم حساب العلاوات الخاصة للموظق الذي لم يتم تعينية علي مربوط الدرجة حتي يدخل الموظف في الخدمة يتم حساب العلاوات الخاصة علي الاساسي الفعلي لا يستحق الموظغف علاوات دورية الا بمرور سنة علي تاريخ تعينة مجموع العلاوات المضافة حتي 1 / 7 /2013 هي 265% بالاضافة الي 36 جنية +30 جنية حد ادني عام 2008 و 2009 Salary scale 4.07.rar
    1 point
  33. السلام عليكم ما هي الطريقه لربط مربع تحرير وسرد مع التقرير .. نموذج RequestHolidays يشرح ذلك . مع الشكر تعديل2.rar
    1 point
  34. تفضل اليك التعديل كما طلبت تعديلع2.rar
    1 point
  35. لنصمم الآن جدول الموردين Suppliers و الذي يتألف من الحقول التاليه : اسم العميل CompanyName بقية البيانات التفصيليه المشابهة لجدول العملاء مثل العنوان و الهاتف و اسم الموظف المسؤول .. الخ و يجدر الملاحظه أننا لانكتفي باسم المورد و البيانات الخاصه به , بل نضع رقما معرفا لذلك الجدول ( و هذه ناحيه يهملها البعض ) , اذ أن الرقم المعرف للمورد هو الذي سيتم التعامل معه طيلة البرنامج , أم اسم المورد فما هو الا بيان تفصيلي لهوية ذلك المورد , فاذا تغير اسم المورد مثلا من اسم شركه الى اسم شركة أخرى نتيجة تصفيه أو نقل ملكيه أو ماشابه , يسهل تغيير اسم المورد مع الحفاظ على جميع سجلات حركته السابقه . أما لو جعلنا اسم المورد هو المفتاح الرئيسي و هو الرابط مع الجداول الآخرى فسوف لن يتم التعرف على أي من حركاته السابقه في حال تغير اسمه . الآن نعود الى جدول البضائع , و ننشأ حقل رقم المورد SupplierID و نحوله الى قائمه كما فعلنا في الدرس السابق . بنفس الخطوات , ثم نفتح جدول البضائع في وضع ادخال البيانات و عند الوصول الى حقل رقم المورد نجد يظهر لنا اسم المورد للاختيار منه يبقى لدينا حقلين في هذا الجدول و هما : رصيد الصنف في المستودع UnitsInStock الكميه تحت الطلب من هذا الصنف UnitsOnOrder و الحقيقه ليس هناك أي داعي لوجود هذين الحقلين , لسببين : الأول : حسب القاعده الآولى التي شرحناها في بناء الجداول الحقول المحسوبه ( أي التي تعتمد قيمتها على قيمة حقل آخر ) تستخرج من خلال معادله رياضيه في النموذج أو من خلال استعلام , و لاداعي لعمل حقل لها ضمن الجدول الثاني : حتى لو تم عمل حقل لها في الجدول , فان قيمتها لن تتحدث الا من خلال كود في النموذج يتم تفعيله في زمن ادخال بيانات الفاتوره , و لكن لو عاد اي شخص للجدول فانه سيتمكن من تغيير تلك القيمه بدون أي قيد أو شرط لذلك سنحاول ان شاء الله استخراج قيمة رصيد الصنف - الكميات تحت الطلب لدى وصولنا الى النماذج . درسنا القادم سيكون حول تصميم جدول الطلبيات باذن الله , و ليضع كل منكم تصوره حول هذا الجدول ريثما نبدأ الدرس التالي عمليا الطلبيات تتم على الشكل التالي : يقوم مندوب المبيعات أو الموظف بتسجيل بيانات الطلبيه من العميل مباشره , بحيث يضع في بيانات الطلبيه المعلومات التاليه : اسم العميل - عنوانه - تاريخ الطلبيه - التاريخ المطلوب لشحن الطلبيه - تاريخ تسليم الطلبيه اسم وكيل الشحن - عنوانه - الأصناف المطلوبه - الكميات - سعر الوحده - قيمة الصنف القيمة الاجماليه للفاتوره - الخصم - أضافات ( ضرائب و رسوم ) - القيمة الصافيه للفاتوره نلتقي في الدرس القادم ان شاء الله
    1 point
  36. الخطوه الأهم في تصميم اي قاعدة بيانات هي وضع مخطط العمل , و لكي نعرف مخطط العمل لابد من الاحاطه بالهدف المطلوب من انشاء قاعدة البيانات . لدينا شركة NorthWind أو الرياح الشماليه , شركة تقوم بشراء وبيع البضائع , عملية الشراء غير مطروقه في هذه القاعده , و انما الاهتمام كله موجه لعملية البيع ( و طبعا بالامكان تصميم مايلزم لعمليات الشراء ) . عملية البيع تتم بناء على طلبيات مسبقه من العملاء , بحيث يتم تحديد الأصناف المطلوب ارسالها للعميل و الأسعار ووسيلة الشحن وموعد الشحن المطلوب و رقم الموظف الذي قام بتسجيل بيانات الطلبيه . بالنسبه للبضائع لابد من مراعاة أن يكون هناك مخزون متوفر حيث أن البضائع التي تم بيعها للعملاء ستخفض الرصيد الموجود بالمخازن , و طبعا في حال انخفاض هذا الرصيد عن حد اعادة الطلب , فيجب اعداد طلبية شراء لتغذية المخزون , و لكن كما ذكرنا عملية الشراء غير متطرق اليها في هذه القاعده . اذا يمكننا الآن أن نضع تصورا للجدول التي ينبغي انشاؤها حيث : - طالما لدينا بضائع يتم بيعها اذا لابد من انشاء جدول خاص بالبضائع Product - لدينا عملاء اذا نحتاج الى جدول للعملاء Customers - لدينا طلبيات اذا نحتاج الى جدول خاص للطلبيات اذ لكل عميل طلبيه مستقله Orders هذه هي الجداول الرئيسيه التي نحتاجها و سنقوم بتصميمها الآن . قبل البدء بتصميم الجداول لابد من الاشاره الى بعض التوصيات في بناء الجداول و هي : أولا : الجدول هو المادة التخزينيه للبيانات الرئيسيه , اذ يجب أن يحتوي على القيم التي لاتتأثر بغيرها اي على سبيل المثال اذا كانا نريد حساب المعادله التاليه القيمه = الكميه * سعر الوحده يمكن أن نضع حقلا للكميه المباعه و حقلا لسعر الوحده أما القيمة و التي هي عباره عن سعر الوحده * الكميه , فلا يجب أن يكون حقلا ضمن الجدول وذلك لأنه يتأثر بقيمة كل من الكمية و السعر فاذا تغير سعر الوحده فان الجدول لايستطيع حساب القيمه من تلقاء نفسه الا من خلال تشغيل كود معين , لذلك يستعاض عن هذا باستخراج القيمة من خلال استعلام يحوي حقل محسوب يساوي الكميه * السعر ثانيا : يجب فصل البيانات الخاصه بجزئيه معينه عن بعضها , مثلا الجدول الرئيسي لدينا هو جدول الطلبيات , و حيث أننا نريد أن ندخل اسم العميل في الطلبيه , و حيث أننا نحتاج بنفس الوقت لمعرفة بيانات كامله عن هذا العميل , فاذا كنا سنقوم بادخال بيانات العميل هذه كل مره في جدول الطلبيات فسيكون هذا عملا مرهقا , لذلك احتجنا أن تكون بيانات العميل في جدول مستقل تجتمع فيه بياناته الكامله , و نكتفي في جدول الطلبيات بوضع حقل واحد لرقم العميل , و بعملية الربط بين الجدولين نستطيع معرفة مانريد من بيانات عن هذا العميل . ثالثا : يفضل أن تكون استخدام الأسماء الانكليزيه لكل مكونات قاعدة البيانات و خاصة اسماء الجداول و الحقول , لأن استخدام الأسماء العربيه يسبب ارباكات أثناء العمل بالمعادلات و أكواد الفيجوال بيسيك رابعا : تجنب وضع مسافات في التسميات , مثلا اذا كنت تريد تسمية Product List فالأفضل وصلها هكذا ProductList لنبدأ الآن بتصميم الجدول الأسهل في هذه القاعده و هو جدول العملاء , و لنتصور أنه يحتوي الحقول التاليه : اسم العميل CompanyName العنوان Address المدينه City الدوله Country المنطقه Region الرمز البريدي PostalCode الهاتف Phone الفاكس Fax و سنحتاج اضافة لذلك بيانات عن الشخص الذي سنتصل به مثل اسمه ContactName و عمله الوظيفي ContactTitle و طبعا قبل كل ذلك نحتاج الى كود العميل CustomerID و هو الذي سيكون صلة الربط مع الجداول الأخرى و المفتاح الرئيسي لهذا الجدول قاعدة البيانات هذه موجوده بشكل جاهز مع الأكسس من قائمة الأدوات - أمثله , يمكن تنزيلها للاطلاع عليها , و لكن من أراد أن يستفيد أكثر فليحاول التصميم بنفسه لزيادة مهارته و ليبدأ بتصميم جدول العملاء و سنتابع ان شاء الله بقية الجداول في الدرس التالي
    1 point
×
×
  • اضف...

Important Information