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

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

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

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

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


    • نقاط

      17

    • Posts

      13165


  2. jjafferr

    jjafferr

    أوفيسنا


    • نقاط

      5

    • Posts

      9927


  3. أبوعيد

    أبوعيد

    الخبراء


    • نقاط

      4

    • Posts

      1609


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

    • نقاط

      3

    • Posts

      2220


Popular Content

Showing content with the highest reputation on 03/14/16 in مشاركات

  1. أخي الكريم ماجد ماجد أهلاً بك في المنتدى ونورت بين إخوانك يرجى تغيير اسم الظهور للغة العربية ، كما يرجى الإطلاع على موضوع التوجيهات في الموضوعات المثبتة في المنتدى لمعرفة كيفية التعامل مع المنتدى بشكل أفضل لا داعي للعناوين البراقة (التحدي وخلافه) ، فكلنا هنا نسعى للتعلم بجد وليس من باب التحدي .. وإذا كان الباب هو التحدي فمن الأجدر أن يكون لديك حل للمسألة .. كأن تكتب في العنوان لغز أو خلافه ، أما التحدي في موضوع تطلب فيه مسألة معينة فغير مقبول (على الأقل بالنسبة لي) عموماً حتى لا ندخل في نقاشات لا جدوى منها .. إليك الجزء الأول من طلبك ضع الكود التالي في حدث المصنف ThisWorkbook Private Sub Workbook_Open() Recalc End Sub Private Sub Workbook_BeforeClose(Cancel As Boolean) EndTime End Sub وضع الكود التالي في موديول جديد Dim SchedRecalc As Date Sub Recalc() Range("A1").Value = Format(Time, "hh:mm:ss AM/PM") Call StartTime End Sub Sub StartTime() SchedRecalc = Now + TimeValue("00:00:01") Application.OnTime SchedRecalc, "Recalc" End Sub Sub EndTime() On Error Resume Next Application.OnTime EarliestTime:=SchedRecalc, Procedure:="Recalc", Schedule:=False End Sub إليك الملف المرفق فيه تطبيق الكود ** ملحوظة هامة : قمت بتنفيذ الجزء الأول مع عدم اقتناعي بفكر تحديث الوقت كل ثانية لأن ذلك سيكون إرهاق على الملف نظراً لأن التحديث سيكون كل ثانية .. أعتقد يمكن تنفيذ الجزء الثاني بدون تحديث الوقت في الخلية A1 ... ولكن تم تنفيذ الجزء الأول من باب التحدي تقبل تحياتي Update Timer Every Second In Cell YasserKhalil.rar *********************************** بعدما اطلعت على الجزء الثاني من طلبك فقد اتضح لي أنه يمكن التعديل على الكود السابق بسهولة ليؤدي الغرض ويقوم بعملية الترحيل كل ثانية كما طلبت قم بتعديل الكود Sub Recalc() Range("A2").Value = Format(Time, "hh:mm:ss AM/PM") Range("C" & Cells(Rows.Count, "C").End(xlUp).Row + 1).Value = Range("B2").Value Call StartTime End Sub وإليك الملف المرفق الثاني بعد التعديل تقبل تحياتي Update Timer Every Second In Cell YasserKhalil V2.rar
    3 points
  2. انا الاصدار عندي انجليزي ، وهذا لا يهم ، الذي يهم ان نكون قد اخترنا الارقام العربية من اعدادات الوندوز ، ثم يشتغل الكود اعلاه ، وقد جربته انا : . . . جعفر
    2 points
  3. وعليكم السلام ورحمة الله وبركاته أخي وحبيبي أبو يوسف يعلم الله أنني احاول جاهداً تبسيط المعلومة قدر الإمكان والتكرار للمعلومة أكثر من مرة للتأكيد .. والمصطلحات المستخدمة بسيطة ويسيرة وسأحاول ترجمتها قدر الإمكان رغم أنها بسيطة ومألوفة (إنت تؤمرني أيو يوسف) .. أما بالنسبة لمراحل عمل الكود والتصور الذهني ، فهذا يرجع لخيال المبرمج ..فهناك حلول كثيرة لنفس المشكلة لأن كل واحد بيفكر بأسلوبه .. ولا يمكن تعلم التخيل لأن كل واحد له أسلوبه .. أنا أقدم المعلومة التي يمكن من خلالها أن تبني البرنامج .. نستفيد من كيفية بناء الجمل وكيفية التعامل مع المصفوفات والحلقات التكرارية والمتغيرات وخلافه .. عموماً دعك من تلك النقطة الآن : بالممارسة والتدريب والتمرين ستجد الامور أبسط ... ببساطة لا يمكن لطفل صغير ما زال في مراحل نموه الأولى أن يهضم قطعة لحم كبير .. فمعدته ما زالت لا تستطيع عمل ذلك .. كلنا وأنا أولكم سنحاول جاهدين أن نعلم أنفسنا ونرتقي ، وبالممارسة والوقت ومساعدة الآخرين والإطلاع على الموضوعات بالمنتدى والبحث في مواقع الانترنت المختلفة .. سنتعلم الكثير والكثير تقبل وافر تقديري واحترامي
    2 points
  4. بعد إذن الأخ الغالي أبو عيد وإثراءً للموضوع إليك أخي الكريم أحمد عياد الكود التالي باستخدام المصفوفات وهي اسرع في التنفيذ من الحلقات التكرارية بمراحل إليك الكود التالي يوضع في موديول عادي Sub TransferUsingArrays() Dim a, aOutput, iCol As Long, iRow As Long, iLooper As Long With Worksheets("Sheet1") a = .Range("A1").CurrentRegion End With ReDim aOutput(1 To UBound(a) * UBound(a, 2), 1 To 12) For iCol = 2 To UBound(a, 2) For iRow = 2 To UBound(a) If a(iRow, iCol) > 0 Then iLooper = iLooper + 1 aOutput(iLooper, 1) = iCol - 1 aOutput(iLooper, 3) = a(1, iCol) aOutput(iLooper, 9) = a(iRow, 1) aOutput(iLooper, 12) = a(iRow, iCol) End If Next iRow Next iCol Sheet2.Cells(2, "A").Resize(iLooper, 12) = aOutput End Sub اضغط من لوحة المفاتيح Alt + F8 هيظهر لك نافذة الماكروهات الموجودة لديك اختر الماكرو المسمى TransferUsingArrays وانقر على Run ولاحظ سرعة التنفيذ .. يمكنك التأكد من سرعة الأداء بتنفيذ الكود على بيانات أكثر وليكن 20000 صف على سبيل المثال لتتأكد من سرعة أداء الكود باستخدام المصفوفات تقبل تحياتي Transfer Data YasserKhalil.rar
    2 points
  5. لو أردت أن تطبق المعادلة لأكثر من خلية مثلا [a3:a10] فقط تضيف على الكود هذا السطر [a3:a10].FillDown
    2 points
  6. فى حدث عند التحميل ضع الكود Forms![mainform]![subform].Form![SpeciesName].SetFocus DoCmd.RunCommand acCmdFreezeColum لتجميد عمود معين [subFormName].SetFocus [subFormName]!FieldName.SetFocus DoCmd.RunCommand acCmdFreezeColumn
    2 points
  7. بارك الله فيك أخي الحبيب الزباري وجزيت خيراً على الموضوع الرائع والممتع الفكرة جميلة ولكنها تحتاج لتطوير بالفعل .. حيث أنه إذا قمت بتحربة الدالة المعرفة وقمت بنسخ الناتج لمحرر الأكواد .. بهذا الشكل Sub TestRun() [c1].Formula = "=IFERROR(VLOOKUP(M2,$M$2:$N$7,2,0),"")" End Sub ستظهر رسالة خطأ بهذا الشكل وسبب الخطأ هو أن علامات التنصيص يجب أن توضع بين علامتي تنصيص أخرى يجب أن تكون هكذا Sub TestRun() [c1].Formula = "=IFERROR(VLOOKUP(M2,$M$2:$N$7,2,0),"""")" End Sub ************* خطرت لي فكرة وهي استبدال التصيص بعلامتي تنصيص في المعادلة لكي تعمل بشكل جيد الدالة المعرفة والاعتماد على أن تكون الدالة مطاطية بحيث تقدر تنسخ أي معادلة من أي خلية بالاعتماد على عنوان الخلية الهدف الدالة بعد التعديل كالتالي Function DisplayFormula(cel As Range) Dim str As String str = Replace(cel.Formula, """", """""") DisplayFormula = "[" & cel.Address(0, 0) & "].Formula=" & """" & str & """" End Function الآن سيظهر السطر الخاص بالمعادلة جاهز للعمل ويمكنك نسخه لمحرر الأكواد واستخدامه بكل سهولة تقبل تحياتي
    2 points
  8. إخواني الكرام في المنتدى الغالي أقدم لكم اليوم موضوع ليس بالجديد ولكنه جد مفيد (جد .. يعني جداً أوك يا جدو) ..أقصد مفيد جداً الموضوع يتمحور ويتمركز حول معرفة الأرقام المفقودة أو الأرقام الناقصة في سلسلة أرقام .. إليكم الكود الأول المؤدي للغرض (هنا يشترط ترتيب الأرقام) ، مع شرح تفصيلي لأسطر الكود لتتمكن من التعديل عليه Sub MissingNumber_NumbersSorted() 'يقوم الكود بإظهار الأرقام الناقصة في تسلسل معين للأرقام ويشترط ترتيب الأرقام '------------------------------------------------------------------------- Dim SH As Worksheet Dim LR As Long Dim Text As String Dim I As Long, X As Long, XX As Long '[Sheet1] تخصيص المتغير ليساوي ورقة العمل المسماة Set SH = Sheets("Sheet1") 'تحديد آخر صف به بيانات في العمود الأول LR = SH.Cells(SH.Rows.Count, 1).End(xlUp).Row 'حلقة تكرارية بداية من الصف الخامس وحتى آخر صف به بيانات في العمود الأول For I = 5 To LR 'يساوي الفرق بين قيمة الخلية التالية وقيمة الخلية الحالية في الصف المحدد [X] المتغير X = Val(SH.Range("A" & I + 1)) - Val(SH.Range("A" & I)) '[X] استخدام الجملة الشرطية لناتج المتغير Select Case X 'إذا كان الفرق بين قيمة الخليتين أكبر من 1 يتم تنفيذ الحلقة التكرارية ما بين السطرين Case Is > 1 'حلقة تكرارية لتخزين الأرقام الناقصة For XX = 2 To X 'يساوي المتغير نفسه مع قيمة الخلية الحالية مضاف إليها قيمة المتغير في الحلقة التكرارية ناقص واحد ثم سطر جديد[Text]المتغير المسمى 'مثال لفهم هذا السطر '------------------- 'توجد القيمة 50012 [A15] توجد القيمة 50009 وفي الخلية [A14] في الخلية 'بما أن الفرق بين الخليتين يساوي 3 إذاً سيتم تنفيذ الحلقة التكرارية 'بداية الحلقة التكرارية 2 حيث أن رقم 2 هو أول رقم أكبر من واحد ، وفي مثالنا نهاية الحلقة التكرارية تساوي 3 'المتغير المفترض تخزين الأرقام الناقصة فيه عبارة عن سلسلة نصية فيتم إضافة النصوص التي سبق استخراجها ثم إضافة النصوص الجديدة 'الأرقام الناقصة تساوي قيمة الخلية الحالية 50009 في المثال مضافاً إليها قيمة الحلقة التكرارية والتي هنا تساوي 2 في بداية الحلقة التكرارية ليصبح الناتج 50011 ثم ناقص واحد لتحصل على أول رقم ناقص ألا وهو 5010 'يساوي 3 لتحصل في النهاية على الرقم التالي الناقص ألا وهو 5011[XX]مع الانتقال في الحلقة التكرارية يصبح المتغير Text = Text & Val(SH.Range("A" & I)) + XX - 1 & vbCrLf Next End Select Next 'رسالة لإظهار الأرقام الناقصة MsgBox Text, vbMsgBoxRtlReading End Sub وإليكم الكود الثاني وهو أقوى في أنه لا يشترط ترتيب الأرقام Sub MissingNumbers_YK_A() 'يقوم الكود باستخراج الأرقام الناقصة من سلسلة من الأرقام ولا يشترط ترتيب الأرقام '---------------------------------------------------------------------------- Dim InputRange As Range, OutputRange As Range, ValueFound As Range Dim LowerVal As Single, UpperVal As Single, Count_I As Single, Count_J As Single Dim NumRows As Long, NumColumns As Long Dim Horizontal As Boolean On Error GoTo ErrorHandler 'النطاق الذي يحتوي سلسلة الأرقام المراد استخراج الأرقام الناقصة منها Set InputRange = Range("A1:A" & Cells(Rows.Count, 1).End(xlUp).Row) LowerVal = WorksheetFunction.Min(InputRange) UpperVal = WorksheetFunction.Max(InputRange) Horizontal = False 'بداية النطاق الذي سيتم استخراج النتائج به Set OutputRange = Range("E2") NumRows = OutputRange.Rows.Count NumColumns = OutputRange.Columns.Count Application.ScreenUpdating = False If NumRows < NumColumns Then Horizontal = True NumRows = 1 Else NumColumns = 1 End If Count_J = 1 For Count_I = LowerVal To UpperVal Set ValueFound = InputRange.Find(Count_I, LookIn:=xlValues, LookAt:=xlWhole) If ValueFound Is Nothing Then If Horizontal Then OutputRange.Cells(NumRows, Count_J).Value = Count_I Count_J = Count_J + 1 Else OutputRange.Cells(Count_J, NumColumns).Value = Count_I Count_J = Count_J + 1 End If End If Next Count_I Application.ScreenUpdating = True Exit Sub ErrorHandler: End Sub كما تمت إضافة حل بمعادلات الصفيف لتؤدي نفس الغرض وإليكم أيضاً كود رائع للأخ الحبيب سليم حاصبيا مع شرح للأسطر ولا يشترط الترتيب للأرقام أيضاً Sub MissingNumbers_SALIM() 'يقوم الكود باستخراج الأرقام الناقصة في سلسلة أرقام ولا يشترط الترتيب '------------------------------------------------------------------ 'تعريف المتغيرات Dim Dico, D Dim C As Range, Rng As Range Dim B As Long, I As Long Dim MinVal As Double, MaxVal As Double 'النطاق المراد استخراج الأرقام الناقصة منه Set Rng = Range("A1:A" & Cells(Rows.Count, 1).End(xlUp).Row) 'سطر لايجاد أقل قيمة رقمية في النطاق MinVal = Application.WorksheetFunction.Min(Rng) 'سطر لايجاد أكبر قيمة رقمية في النطاق MaxVal = Application.WorksheetFunction.Max(Rng) 'مسح محتويات النطاق الذي سيتم استخراج النتائج به Range("G2", Range("G2").End(xlDown)).ClearContents 'إنشاء متغير من النوع كائن لتخزين الأرقام الناقصة به Set Dico = CreateObject("Scripting.Dictionary") 'حلقة تكرارية لكل الأرقام المسلسلة For I = 1 To (MaxVal - MinVal + 1) 'تعتمد هذه الأسطر على إضافة الرقم الناقص إلى الكائن المخصص لذلك If Application.WorksheetFunction.CountIf(Rng, MinVal + I - 1) = Then If Not Dico.Exists(MinVal + I - 1) Then Dico.Add (MinVal + I - 1), (MinVal + I - 1) End If Next I 'رقم صف البداية للنتائج في العمود السابع B = 2 'حلقة تكرارية لوضع القيم التي تم تخزينها في النطاق المحدد For Each D In Dico.items Range("G" & B) = D B = B + 1 Next D End Sub وعشان عيون أحبابي إليكم الكود الرابع وهو أفضل الأكواد من حيث أنه لا يشترط ترتيب الأرقام وأسطر الكود سهلة الفهم وسهلة التعامل معها Sub MissingNumbers_YK_B() 'يقوم الكود باستخراج الأرقام الناقصة في تسلسل للأرقام ولا يشترط الترتيب '------------------------------------------------------------------- 'تعريف المتغيرات Dim InputRange As Range Dim X As Long, lRow As Long 'تعيين النطاق الذي سيحتوي على سلسلة الأرقام المراد استخراج الأرقام الناقصة منها Set InputRange = Range("A1:A" & Cells(Rows.Count, 1).End(xlUp).Row) 'مسح محتويات النطاق الذي سيتم استخراج النتائج به Range("I2:I1000").ClearContents 'حلقة تكرارية من أقل قيمة بالنطاق لأكبر قيمة بالنطاق For X = WorksheetFunction.Min(InputRange) To WorksheetFunction.Max(InputRange) 'استخدام دالة البحث فإذا كانت القيمة المراد البحث عنها غير موجودة يعطي خطأ 'وبناءً على الخطأ يتم تنفيذ السطر التالي If IsError(Application.Match(X, InputRange, )) Then '[I] الرقم 2 هو رقم صف البداية في العمود '[I] يتم وضع الرقم الناقص في الخلية في الصف المحدد في العمود Cells(lRow + 2, "I") = X 'زيادة المتغير بمقدار واحد للانتقال لصف جديد لإدراج الأرقام الناقصة lRow = lRow + 1 End If Next X End Sub أترككم مع الملف المرفق ...للاستفادة بشكل عملي بالكود كان معكم أخوكم ياسر خليل أبو البراء YK (الموضوع مهدى للأخ الحبيب والأستاذ الكبير أسامة البراوي OB ومهدى للأخ الفاضل نايف - م) حمل الملف من هنا تقبلوا تحياتي
    1 point
  9. السلام عليكم ورحمة الله وبركاته أهلاً بكم أقدم لكم اليوم أحدث إصدار من برنامج حسابات البنوك هدية عام 2009 للجميع * ملحوظه : تم تحويل ملف الأكسيل الي إمتداد EXE أي أنه يظهر بشكل ملف تنفيذي * الآن نبدأ مع شرح للبرنامج عند التشغيل تظهر لنا الشاشة الرئيسية وبالطبع سنقوم بالضغط على الزر المخصص بفتح حساب بنكي جديد . وللمزيد من الخصوصيه فقد تم وضع كلمة مرور لتنفيذ هذه العمليه وهي ( 8520 ) في حال إدخال كلمة مرور خاطئه فلن تتمكن من فتح حساب جديد .. وهذه الميزه كي يتمكن أشخاص آخرون بالدخول للبرنامج في حال الرغبه في أن يقوموا فقط بالدخول للحسابات المنشأه سابقاً بواسطة المستخدم ستظهر لك رسالة تأكيد بإن كلمة المرور صحيحه ويمكنك المتابعه تظهر لك بعد ذلك شاشه .. أكتب فيها إسم الحساب وفق الشروط الظاهره بها . ثم إضغط على الزر المخصص لذلك ستظر رساله تأكيد بأسم الحساب المدخل بواسطتك لتأكيد المتابعه وبما أن هذه أول حركه محاسبيه على هذا الحساب فسيطلب منك البرنامج إدخال رصيد بداية المده ويمكن عمل ذلك عبر شاشه مخصصه لا تقلق إن لم تقم بإدخال رصيد الأفتتاح الآن .. يوجد زر يمكنك من عمل ذلك مستقبلاً وبعد إدخالك لرصيد أول المده ستظهر رسالة تأكيد بالبيانات المدخله وكذلك رساله تأكيد إستلام البيانات ولم ننسى رساله توضح لك رصيد الحساب الحالي وبهذا أصبح لديك حساب جديد مع كامل البيانات المدخله إضافة قيد جديد على الحساب .. ولاحظ إن كنت ستقوم بالأيداع أن تكتب صفر في السحب .. والعكس إذا إحتجت لتعديل أي بيان محاسبي سابق فيوجد زر للتعديل سيساعدك في إتمام ذلك بعد إنشاء العديد من الحسابات ستحتاج للتنقل بينها بسهوله . يوجد زر سوف يساعدك على ذلك في نهاية الشهر تريد بدأ شهر جديد مع ترحيل الرصيد الحالي للشهر الجديد .. أو تريد مسح جميع البيانات والأحتفاظ بإسم البنك فقط .. يوجد زر يساعدك على ذلك إذا إحتجت لحذف حساب من البرنامج بشكل كامل فيوجد زر لحذف الحسابات وأيضاً يعمل بنفس كلمة السر الخاصة بفتح حساب جديد وهي ( 8520 ) * إنتبه من حذف الصفحه المسماه ( Main ) فهي الصفحة الرئيسية للبرنامج * أرجوا أن ينال البرنامج إستحسانكم ولا تنسونا من صالح الدعاء * البرنامج في المرفقات * Bank_Ver_3.0.zip
    1 point
  10. الأعضاء الأعزاء أسعد الله أوقاتكم بكل خير بعد انتهاء دورتنا " إكسيل 2013 المستوى المتقدم" (تجدون روابطها بالأسفل) يسرني أن أقدم لكم كتاب الدورة بصيغة PDF حيث تم التطرق لكافة مواضيع الدورة في هذا الكتاب. وأتمنى أن ينال اهتمامكم واعجابكم ] رابط الكتاب إكسيل 2013 المستوى المتقدم - دورة في كتاب يمكنكم تحميل ملفات التمارين الخاصة بهذه الدورة من خلال الرابط التالي: http://www.4shared.com/rar/QvwJQLddce/_-__.html لمتابعة الموضوع الرئيسي للدورة يمكنكم فتح الرابط التالي حيث جميع الدروس موجودة: دورة اكسيل 2013 المستوى المتقدم دمتم بخير أخوكم م/نضال الشامي Google+
    1 point
  11. بسم الله والصلاة والسلام على رسول الله وعلى آله وصحبه ومن والاه أما بعد: فقد بلغني نبأ وفاة ابنة أخينا الحبيب ياسر فتحي البنا ...وبما أننا نؤمن بالقضاء والقدر خيره وشره وأن (كل نفس ذائقة الموت) و (كل من عليها فان) نتوجه إلى أخينا ياسر بأحر التعازي ونقول له : " اللهم اجعلها ذخرا لوالديها وفرطا وأجرا وشفيعا مجابا، اللهم ثقل بها موازينهم، أو أعظم بها أجورهم، أو ألحقها بصالح سلف المؤمنين واجعلها في كفالة إبراهيم وقها برحمتك عذاب الجحيم". ونذكره بأن كلّ حي مصيره الموت فلا يبقى ولا يدوم إلا وجه الله تعالى الحي القيوم ..فلتصبر ولتحتسب ولتشد أزر أسرتك الكريمة ولتخفف عنهم فأنت نحسبك على خير والله حسيبك - وانظر إلى رؤيا الرسول صلى الله عليه وسلم: " في حديث طويل في رؤيا رآها النبي -صلى الله عليه وسلم- قال: ورأيت رجلا من أمتي خف ميزانه فجاءه أفراطه فثقلوا ميزانه فلذلك يقال: اللهم ثقل به موازينهما، وأعظم به أجورهما، وألحقه بصالح سلف المؤمنين، واجعله في كفالة إبراهيم في حديث الرؤيا حديث سمرة أنه -صلى الله عليه وسلم- قال: ثم أتينا على رجل طويل تحت ظل شجرة وحوله أولاد كثير وفسره أنه إبراهيم وأن الذين حوله أولاد المسلمين، يعني أطفالهم الذين ماتوا صغارا، فهكذا يدعى لهذا الطفل. نعم. ولكم في رسول الله أسوة حسنة...توفي معظم أولاده حال حياته وبشر فاطمة بأنها تلحق به ...فتأسّ بسيد الخلق صلى الله عليه وسلم. إنّا لله وإنا إليه راجعون والصلاة والسلام على سيد المرسلين والحمد لله رب العالمين.
    1 point
  12. الأب والأخ والأستاذ الغالى الفاضل / محمد حسن المحمد أشكرك حضرتك جدا جدا على مشاعرك النبيلة لا أراكم الله مكروه فى عزيز لديكم إن لله وإن إليه راجعون الحمد لله قدر الله وما شاء فعل
    1 point
  13. أشكرك اخي الكريم سعيد صواب على الإفادة بارك الله فيك
    1 point
  14. نعم جربتها وأعددت لك مثال لتجربه تختار فيه طريقة عرض الأرقام جرب المرفق ووافني بالنتيجة Test Number Ar-En 2003.rar
    1 point
  15. السلام عليكم ورحمة الله أخي الفاضل محمد مشاركة بجانب طلبك لعلها تفيد.. ضعه في حدث عند تحميل النموذج على أن يكون nametextbox هو اسم الحقل الذي تريد أن يظهر فيه الرقم بالعربي Me.NameTextBox.NumeralShapes = 2
    1 point
  16. قم بالتجربة مع البدء بادخال الشهر اولا ثم اليوم ثم السنة بالتوفيق
    1 point
  17. عزيزي انا دخلت تاريخ 02/02/2016 فعلا وجد علامة( نعم ولا ) تحولت الي نعم لجميع الموظفين وعند ادخال تاريخ اخر 07/02/2016 لم يحدث شيئ ولم تتغير (نعم ولا) ولم يحدث اي تغيير عند ادخال اي تاريخ اخر فلا اعرف ما السبب مع ان الكود جميل جدا جزاك الله خير الجزاء
    1 point
  18. العفو اولا تفضل ثانيا Private Sub a_AfterUpdate() DoCmd.RunSQL "update t2 set VACTION=-1 where xdate=#" & a & "#" End Sub بالتوفيق
    1 point
  19. إن شاء الله إذا تيسر لي الوقت سأحاول العمل على الطريقة إذا كانت الأرقام متتالية .. أعتذر الآن لضيق وقتي
    1 point
  20. أخي الحبيب ياسر أبو البراء المحترم .. جزاكم الله خيراً على التقديم الطيب للموضوع كنت أود أن أقول "يستحسن أن يرفق أخونا الحبيب أبو البراء قاموساً صغيراً بالمصطلحات التي تمر معنا خلال الموضوع في الأكواد أو من خلال الشرح مثل Dim ,LBound,UBound,Integer,String ..etc وذلك لتعمّ الفائدة وخصوصاً عند كتابة كودٍ وكذلك طريقة التفكير المنطقي بشكل متسلسل لتنفيذه -أي تصورك الذهني لمراحل عمل الكود فنحن لا زلنا - أنا وأمثالي - في بداية هذا الطريق الذي سلكتموه عن دراية وعلم ... جزاكم الله خيراً والسلام عليكم. أصناف وفق المصفوفات.rar
    1 point
  21. وعليكم السلام اعطيك طريقتين: مطوّله بعدة اسطر لسهولة فهمها : If (RET * Rate) <= 500 Then If J15 > 0 Then A = N15 * L15 * 0.35 * 0.3 Else A = 0 End If Else If J15 > 0 Then A = N15 * L15 * 0.35 * 0.25 Else A = 0 End If End If بسطر واحد: A = IIf(RET * Rate <= 500, IIf(J15 > 0, N15 * L15 * 0.35 * 0.3, 0), IIf(J15 > 0, N15 * L15 * 0.35 * 0.25, 0)) جعفر
    1 point
  22. ندي احمد: اعتقد انه بامكانك فتح القاعدة مرة اخرى لكن يلزمك ازالة docmd.quit ووضع الامر التالي docmd.close ومن ثم docmd.openForm "Form1" اخي كرار الموضوع ليس له علاقة بالترقيم التلقائي فهناك طرق عديدة في هذا المنتدى تعمل على اعادة ضبط الترقيم التلقائي وشكراً
    1 point
  23. أولا: السلام عليكم ورحمه الله ثانيا :كل الشكر والتقدير أاولاحترام للاخ ابوالبراء وجميع من في المنتدى ثالثا اقدم اعتذاري للمشرفين وللاخ ابو البراء جزاه الله خير على مابدر منى في كتابه العنوان وجهلي في قوانين المنتدى واندفاعي نحو التحدي لصعوبه المسأله واخيرا دعوه صادقه من القلب لكل اعضاء المنتدى وللمشرفين عامه وللاخ ياسر ابوالبراء جزاكم الله خير الجزاء
    1 point
  24. أخي الكريم أبو عبد الرحمن حينما تكون البيانات بهذا الحجم الهائل .. فيفضل استخدام أحد برامج قواعد البيانات كالأكسيس أو الأوراكل ..أما الإكسيل فلن يتحمل العمل على هذا الكم الهائل في مصنف واحد أو يمكنك تجزئة المصنف إلى مصنفات عديدة بحيث تستطيع التعامل معها ..
    1 point
  25. بوركت أخي عبد الفتاح على هذه المساعدة السريعة والمطلوبة فعلا. فزادك الله علما ونفع بك الاسلام والمسلمين.
    1 point
  26. وعليكم السلام ورحمة الله أهلا بك أخونا الفاضل يفضل أخي طبقا لقواعد المشاركة بأن تكون في كل مشاركة سؤال واحد وأيضا لتجد الرد من أساتذتنا الكرام جزاهم الله كل خير وأن تكون المشاركة بعنوان مختصر عن سؤالك مع تمنياتي أن تصل لما تريد.. وتحياتي لك
    1 point
  27. بارك الله فيك أخي الكريم سامح طاهر وجزيت خيراً على مرورك العطر بالموضوع تقبل تحياتي
    1 point
  28. هذه دالة تقوم بالمطلوب طبعا يمكن تلاشي خطأ عند وجود رقم واحد وليس للعلامة - وجود Function ramhan(n) ramhan = Trim(Split(n, "-")(1)) & "-" & Trim(Split(n, "-")(0)) End Function بالتوفيق
    1 point
  29. هذا حل ينزع الارقام عن يمين ويسار الفاصلة ثم يعيد ترتيبهما Expr1: Right([text3];Len([text3])-InStr([text3];"-")) & "-" & Left([text3];InStr([text3];"-")-1)
    1 point
  30. طيب انا عندى اقتراح قم بادخال الارقام بالعكس اى بدلا من أن تبدأ بكتابة 1 ثم - ثم 7 قم بكتابة 7 ثم - ثم 1 وبهذه الطريقة تحصل على مرادك
    1 point
  31. وعليكم السلام ممكن تشرح هذه الجملة لوسمحت ، بس علشان نعرف وين المشكلة في المثال اللي انا وضعته في زرين ، زر لفتح ملف pdf ، والاخر لعمل كلمة سر فيه ، طيب على اي ازرار تريد العمل في نموذجك؟ واذا ممكن ترفق لي بعض ملفات pdf اللي ما اشتغلت عندك ، بس علشان اجربها انا جعفر
    1 point
  32. وعليكم السلام الكود الصحيح هو: mySQL = "UPDATE rrrr SET bbb = " & [Forms]![frmm1]![bbb] mySQL = mySQL & " WHERE nnn='" & [Forms]![frmm1]![nnn] & "'" DoCmd.RunSQL mySQL بس ليش حولت الاستعلام الى كود؟ هذا دوخ راسك انصحك ان تستعمل الاستعلام ، فهو اسهل للعمل ، واسهل للفهم ، واسهل للتغيير وتناديه: DoCmd.SetWarnings False DoCmd.OpenQuery "qry_Update_bbb" DoCmd.SetWarnings True جعفر 320.d1.mdb.zip
    1 point
  33. أستاذي الكريم أرفع القبعة احتراما لشخصك الكريم ... شكرا هذا الذي كنت ابحث عنه بالنسبة للملف " حراثي تواتي.xlsm " بقي نفس المشكل ربما الخلل من نظام جهازي
    1 point
  34. أخي الكريم ناصر سعيد .. ------------------------------ للعلم أنه ليس كود يتم تنفيذه إنما دالة معرفة تؤدي غرض معين .. الدالة المعرفة يتم استخدامها في الإكسيل كالدوال العادية التي تستخدمها Function DisplayFormula(cel As Range) Dim str As String str = Replace(cel.Formula, """", """""") DisplayFormula = "[" & cel.Address(0, 0) & "].Formula=" & """" & str & """" End Function هذه هي شكل الدالة المعرفة وتوضع في موديول عادي مثلها مثل الأكواد العادية .. ويمكن استخدامها في ورقة العمل بشكل مباشر بعد ذلك مثال : ضع القيمة 10 في الخلية A1 وضع القيمة 15 في الخلية A2 واكتب المعادلة التالية في الخلية A3 لجمع الخليتين =SUM(A1:A2) الآن في أي خلية وليكن الخلية E10 ضع المعادلة التالية التي سنستخدم فيها الدالة المعرفة =DisplayFormula(A3) ناتج المعادلة الخاصة بالدالة المعرفة سيكون كالتالي [A3].Formula="=SUM(A1:A2)" وهذا هو مربط الفرس أنه بهذا السطر أصبحت قادراً على أن تأخذ المعادلة بهذا الشكل وتنفذها من خلال محرر الأكواد في كود آخر .. أي أن الدالة المعرفة DisplayFormula تقوم بإظهار شكل السطر المطلوب لتنفيذ المعادلة في الأكواد .. يمكنك نسخ هذا السطر على سبيل المثال في كود آخر بهذا الشكل (قم بنسخ الكود التالي) Sub TestRun() [A3].Formula = "=SUM(A1:A2)" End Sub الآن قم بمسح محتويات الخلية A3 التي تحتوي على معادلة بالفعل وقم بتنفيذ الإجراء الفرعي الذي قمت بوضعه في محرر الأكواد والمسمى TestRun ..(اضغط Alt + F8) من لوحة المفاتيح وأنت في ورقة العمل لتظهر لك الأكواد .. اختر الكود المسمى TestRun ولاحظ الخلية A3 ... ستجد أن الكود يقوم بوضع المعادلة في الخلية A3 بهذا السطر .. أرجو أن أكون وفقت في توصيل المعلومة (يا ريت بقا تغير اسم الظهور للغة العربية وإلا هعتبر دا خصاااااااام ومش هرد عليك تاني ) تقبل تحياتي
    1 point
  35. أخي الكريم أحمد التطوير لا يأتي من فراغ ..إنما الحاجة أم الاختراع .. سيقوم الأخوة بتطبيق الموضوع على ملفاتهم الخاصة وبالتأكيد سيواجهون مشاكل في التطبيق أو ظهور مستحدثات جديدة .. من هنا يأتي التطوير أي أن التطوير مرتبط بالحاجة الدالة بداية جيدة لمن يريد تحويل المعادلات إلى أكواد .. تقبل تحياتي
    1 point
  36. عفوا أخي كلامك صحيح أخطأت في إرفاق الملف قم بتمكين وحدات الماكرو افتح شيت2 اضغط transfer Transfer data2.rar
    1 point
  37. السلام عليكم أخي أبوعبدالرحمن البغدادي إن شاء الله يكون هذا هو مطلوبك إلى أقصى حد يتحمله الأكسل وهو مليون اسم ّ!!!! تعديل على معادلة وكود 1.rar تم حذف الورقة المخفية sapas
    1 point
  38. بسم الله ما شاء الله تحليل رائع أخي الحبيب أبو عيد ..بارك الله فيك ومشكور على الهدية القيمة والرائعة تقبل وافر تقديري واحترامي
    1 point
  39. السلام عليكم أخي العزيز أبو البراء السر يكمن من آخر قيمتين في الكود true , true القيمة الأولى true ترجع لخاصية رأس النطاق header لما تعملها true يعنى أنك ستستخدم هذه الخاصية أما لو عملتها false يعنى أنك لا تريد استخدامها وفي هذه الحالة لا تهم القيمة الثانية سواء كانت true أو false القيمة الثانية true ترجع لاستخدام الخلية الأولى في النطاق لما تعملها true يعنى أنك تريد ظهور بيانات الخلية الأولى f9 في النطاق F9:F12 ولما تعملها false يعنى أنك لا تريد ظهور بيانات الخلية الأولىf9 في النطاق F9:F12 بل الخلية الثانية f10 نحلل الآن الكود الذي في الأعلى الكود سيحضر لك البيانات التي في النطاق F9:F12 true الأولى يعنى قم بتفعيل خاصية راس النطاق HEADER true الثانية يعنى قم بجلب البيانات الموجودة في رأس النطاق المحدد وهو f9 عندما يتم التنفيذ سيفاجأ الكود أن الخلية F9 (الموجودة في الملف المراد جلب البيانات منه ) مدمجة يعنى فيها خلل سيكتب لك f1 يعنى الكود ها يقول لك : أنت يا سيدي حددت لي الخاصية HEADER على أنها TRUE يعنى غضبا عني لا زم أجيب قيمة أول خليةF9 وأنا ما عرفتش أجيب البيانات اللي في الخلية دي لأن فيها مشكلة ولكنها الخلية الأولي في النطاق المحدد لاحظ أن F1 يعنى خطأ في رأس العمود الأول من النطاق المحدد F2 يعنى خطأ في راس العمود الثاني من لنطاق المحدد (لن تظهر عندك F2 لأنك حددت عمود واحد F9:F12 ولكن يمكن أن تظهر عندما تحدد أكثر من عمود مثلا B2:T5 ومعنى F2 هو أن الخلل يوجد في رأس العمود الثاني من النطاق وهو الخلية C2) وهكذا F6 يعنى خطأ في رأس العمود السادس من النطاق المحدد طيب سوال : لو دخلنا على نفس الكود أعلاه وغيرنا آخر قيمة من TRUE ألى FALSEكيف ستظهر النتائج ؟ الجواب لا حظ أن النطاق هو F9:F12 والقيمة الأولى TRUE يعنى استخدام خاصة هايدر والقيمة الثانية FALSE يعنى أن الكود سيحضر لك البيانات الموجودة في النطاق F10:F12 وليس F9:F12 يعنى أن الكود سيتجاهل رأس النطاق f9 سوال ثاني : ماذا لو كانت القيمة الأولى تساوي FALSE , ما معنى هذا ؟ الجواب عندما تكون القيمة الأولى FALSE فإن القيمة الثانية لن تعمل سواء كانت FALSE أو true وهذا يعنى أنك لا تريد استخدام الخاصية هيدر ولا تريد البيانات الموجودة في رأس النطاق الخلاصة سيكون لدينا ثلاث حالات للكود 1) True , True 2) True , False 3) False , True = False , False حالة واحدة
    1 point
  40. السلام عليكم ورحمة الله وبركاته...شرفني مروركم العطر وكلماتكم الطيبة ... أخي الكريم أسامة محمد أشكركم على حسن كلامكم...مع جزيل شكري وفائق امتناني..جزاكم الله خيرا والسلام عليكم ورحمة الله وبركاته
    1 point
  41. دكتور محمد صلاح الملف المرفق صراحة لا يطاق استغرق حوالي 4 دقائق لفتحه عندي والتعامل صعب داخل المصنف رغم أنه لا يحوي إلا ورقة عمل واحدة عموماً بعد ما طلع روحي في ملفك جرب الكود التالي ستظهر النتائج في العمود المجاور العمود L Sub MissingNumbers_YK_B() 'يقوم الكود باستخراج الأرقام الناقصة في تسلسل للأرقام ولا يشترط الترتيب '------------------------------------------------------------------- 'تعريف المتغيرات Dim InputRange As Range Dim X As Long, lRow As Long 'تعيين النطاق الذي سيحتوي على سلسلة الأرقام المراد استخراج الأرقام الناقصة منها Set InputRange = Range("M7:M" & Cells(Rows.Count, "M").End(xlUp).Row) 'مسح محتويات النطاق الذي سيتم استخراج النتائج به Range("L7:L1000").ClearContents 'حلقة تكرارية من أقل قيمة بالنطاق لأكبر قيمة بالنطاق For X = WorksheetFunction.Min(InputRange) To WorksheetFunction.Max(InputRange) 'استخدام دالة البحث فإذا كانت القيمة المراد البحث عنها غير موجودة يعطي خطأ 'وبناءً على الخطأ يتم تنفيذ السطر التالي If IsError(Application.Match(X, InputRange, 0)) Then '[L] الرقم 7 هو رقم صف البداية في العمود '[L7] يتم وضع الرقم الناقص في الخلية في الصف المحدد في الخلية Cells(lRow + 7, "L") = X 'زيادة المتغير بمقدار واحد للانتقال لصف جديد لإدراج الأرقام الناقصة lRow = lRow + 1 End If Next X End Sub طبعاً الكود سيستغرق دقائق لأن عدد الأرقام الناقصة في ملفك حوالي 16000 وشوية تقبل تحياتي
    1 point
  42. شرح الأكسس 2010 مايكروسوفت اوفيس اكسس الجزء (1)
    1 point
  43. السلام عليكم في أحد المواقع وجدت مشاركة منقولة عن موقع Microsoft وقد أذهلتني المعلومات والطرق والحيل الموجودة في هذا الملف أرجو أن لا نفتقد مشاركاتكم بعد تنزيل هذه الأمثلة شاهدوا المرفقات
    1 point
  44. السلام عليكم هدية : عمل تقرير معتمد على استعلام crosstab query ثم ضبط الحقول لتتناسب مع عرض الصفحة شاهدوا المرفق CrosstabQry.zip
    1 point
  45. الفرق بين MS Access و MS SQL Server هذا السؤال قد يطرحه كل شخص يفكر الانتقال الى MS SQL Server، وايضا في رأيي المقارنة تعتبر من اسهل الطرق لايصال المعلومة. الفروق بين SQL Server و Access كثيرة جدا. ومن اهمها، قاعدة بيانات MS Access مبنية على ملف File Based DataBase، اي تحفظ جميع بيانات القاعدة في ملفات مستقلة لها. اما SQL Server فهو نظام مبني على خادم Server Based DataBase، اي نظام متكامل لادارة قواعد البيانات يعمل في الخلفية ويعتمد على خادم وعميل Client/Server، ولا يعتمد على ملفات مستقلة لحفظ البيانات، فهو يحتوي على تركيبة خاصة به. وبعضا من الفروق الاخرى موضحة كتالى :للحجم SQL أكبر من واحد تيرابايت ( 1024جيجا) اما الاكسس 2 جيجا عدد الجداول 2 مليون اما اكسس 32 عدد المستخدمين غير محدد اما اكسس 255 كحد اقصى الامان مدمج مع امان Windows 2000 أما اكسس تعتمد على مجموعة العمل او المبرمج هذه هى الامور الواضحة ومن الفروق الاخرى. MS Access يدعم النماذج Forms بينماSQL Server لايدعمها لكنه بامكانك استخدام MS Access كواجهه للـ SQL Server بحيث تكون قاعدة البيانات هي SQL Server وفي نفس الوقت تستفيد من امكانيات Access الاخرى كالنماذج Forms والتقارير Reports. على فكرة الواجهه الرئيسية للتعامل مع SQL Server هي MS Access على حسب كلام شركة Microsoft. المزيد ايضا، SQL Server يدعم الاجراءات المعرفة مسبقا Stored Procedures -سيتم شرحها بشكل مبسط لاحقا في هذا الدرس كما انه سيتم التحدث عنها بشكل موسع ودقيق في درس منفصل. كما ان SQL Server يدعم النسخ الاحتياطي، حيث يمكنك برمجة SQL Server ليقوم بعمل نسخ احتياطية كل فترة معينة. .ميزة اخرى في MS SQL Server وهو دعمه لتقنية XML حيث انه يمكنك تصدير البيانات الى XML ولكن الى الان لم يتم دعم XML بشكل كامل وهذا ماسيتم عمله في النسخ القادمة من SQL Server. ولكن بعد ذكر كل هذه المزايا، لايعني ان تحول قاعدة بياناتك الى SQL Server فورا، حيث ان MS Access مازال الافضل والاسهل للتطبيقات الصغيرة سواءا تجارية او حكومية طالما ان حجم البيانات لايتعدى 2 جيجابايت. على كل حال سأذكر لك متى يجدر بك ان تستخدم Access . وتى يجدر بك ان تستخدم SQL Server:
    1 point
×
×
  • اضف...

Important Information