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

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

  1. محمد هشام.

    محمد هشام.

    الخبراء


    • نقاط

      7

    • Posts

      1,366


  2. Foksh

    Foksh

    الخبراء


    • نقاط

      5

    • Posts

      2,155


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

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

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


    • نقاط

      4

    • Posts

      13,165


  4. أ / محمد صالح

    أ / محمد صالح

    أوفيسنا


    • نقاط

      3

    • Posts

      4,428


Popular Content

Showing content with the highest reputation on 27 سبت, 2023 in all areas

  1. حاول تتبع الكود سطر بسطر وأشر لي على السطر الذي يحتاج لشرح وتوضيح لأني لا أملك الوقت الكافي للشرح. أو انتظر أحد الأخوة يقدم لك شرح ولو مبسط عموماً السطر الذي يهمك أعتق هذا السطر dic.Add sName, Array(c.Offset(0, 1).Value, c.Offset(0, 2).Value, c.Offset(0, 3).Value) حيث يتم تخزين القيم المطلوب التعامل معها في مصفوفة أحادية الأبعاد .. للخلايا التي تلي خلية الاسم في الأعمدة التالية لها مباشرة حيث تم استخدام الدالة Offset وهي دالة الإزاحة وتختلف الإزاحة في كل مرة حسب مكان العمود ..
    2 points
  2. وعليكم السلام ورحمة الله تعالى وبركاته ادا كنت قد فهمت طلبك بشكل صحيح .يمكنك استخدام المعادلة التالية =COUNTIFS('1'!$D$7:$D$1000;$E$10;'1'!$C$7:$C$1000;'month-allll'!D11)+COUNTIFS('2'!$D$11:$D$1000;$E$10;'2'!$C$11:$C$1000;'month-allll'!D11) او الاعتماد على تسمية النطاقات بالشكل التالي =COUNTIFS(status1;$E$10;name1;'month-allll'!D11)+COUNTIFS(status2;$E$10;name2;'month-allll'!D11) 434_formula.xlsx
    2 points
  3. وعليكم السلام ورحمة الله تعالى وبركاته تفضل اخي جرب Sub حفظ() Dim myFolder As String 'خلية اسم الملف NameSh = Range("b2") ' مجلد الحفظ myFolder = ThisWorkbook.Path & "\السجل\" & NameSh If NameSh = Empty Then: MH = MsgBox("المرجوا إضافة إسم الملف", vbOKOnly + vbCritical + vbDefaultButton1 + vbApplicationModal, "تنبيه"): Exit Sub ActiveSheet.Copy '(VBA)' تعطيل تنبيهات Application.ScreenUpdating = False Application.DisplayAlerts = False ' تحويل الصيغ الى قيم With ActiveSheet.UsedRange .Value = .Value End With ' حدف الازرار For Each shape In ActiveSheet.Shapes shape.Delete Next ' افراغ الخلايا التي تتضمن 0 ActiveWindow.DisplayZeros = False On Error Resume Next With ActiveWorkbook .SaveAs Filename:=myFolder & ".xlsx", FileFormat:=51 ' في حالة الرغبة باظافة تاريخ اليوم ' .SaveAs Filename:=myFolder & "_" & Format(Now, "yy-mm-dd") & ".xlsx", FileFormat:=51 .Close False End With On Error GoTo 0 End Sub الحفظ.rar
    2 points
  4. السلام عليكم ورحمه الله تعالى وبركاته بعد إذن الأستاذ @أ / محمد صالح إليك حل آخر Private Sub Worksheet_Change(ByVal Target As Range) Dim WSdata As Range On Error GoTo EH Set WSdata = Me.Range("A:A") If Not Application.Intersect(WSdata, Target) Is Nothing Then Application.EnableEvents = False Select Case LCase(Target.Value) Case "done", "Done", "DONE" Me.Cells(Target.Row, 3) = Me.Cells(Target.Row, 2) Me.Cells(Target.Row, 5) = Date Case Is >= 0 Me.Cells(Target.Row, 3) = Empty Me.Cells(Target.Row, 5) = Empty End Select End If EH: Application.EnableEvents = True End Sub Test_Done.xlsb
    2 points
  5. وعليكم السلام أخي الكريم قم بتغيير اسم الملف المسمى بيانات العاملين 21-9-2023 إلى Employees DB أو قم بتغيير الاسم في الكود (كما يحلو لك) ضع الكود التالي في الملف المسمى الإدارة العامة Sub Test() Dim a, wb As Workbook, ws As Worksheet, sh As Worksheet, c As Range, dic As Object, sName As String, lr As Long Application.ScreenUpdating = False Set dic = CreateObject("Scripting.Dictionary") Set wb = Workbooks.Open(ThisWorkbook.Path & "\Employees DB.xls") Set ws = wb.Worksheets(1) Set sh = ThisWorkbook.ActiveSheet For Each c In ws.Range("C6:C" & ws.Cells(Rows.Count, "C").End(xlUp).Row) sName = c.Value If Not dic.Exists(sName) And sName <> Empty Then dic.Add sName, Array(c.Offset(0, 1).Value, c.Offset(0, 2).Value, c.Offset(0, 3).Value) End If Next c wb.Close SaveChanges:=False lr = sh.Cells(Rows.Count, "B").End(xlUp).Row sh.Range("E3:G" & lr).ClearContents For Each c In sh.Range("B3:B" & lr) sName = c.Value If dic.Exists(sName) Then a = dic(sName) c.Offset(, 3).Resize(, 3).Value = a End If Next c Application.ScreenUpdating = True End Sub
    2 points
  6. يلزمك القراءة عن المراجع المطلقة والمراجع النسبية جرب استعمال =$A$1-A4 سيتم تثبيت A1 بالتوفيق
    1 point
  7. اخي @عمر الجزاوى هدا لا علاقة له بالكود الدي قمت بارفاقه في مشاركتك الاولى . الكود كالتالي Sub حفظ() Dim fw As Variant ActiveSheet.Copy ' نسخ الشيت النشط ("b2") حفظ الملف في مجلد السجل في نفس مسار المصنف النشط وتسميته بالخلية fw = ThisWorkbook.Path & "\السجل\" & Range("b2").Value & ".xlsx" ActiveWorkbook.SaveAs fw ' حفظ الملف ActiveWorkbook.Close ' غلق المصنف الجديد End Sub اما ما تدكره حاليا هو ترحيل بيانات من ملف الى ملف اخر ليس بنسخ الشيت
    1 point
  8. هههههه ، تخفي عني ما تعلم وانا الذي لا يعلم ، نقطة محسوبة لك 1 - 0
    1 point
  9. كنت اعرف ان لا علاقة له ولا يشكل اى مانع ولكن اردت التزام الصمت عموما ارنا همتك بان يكون البحث بمربع سرد كما ذكر الاخ شايب
    1 point
  10. تمام .. عبارة وافية كما لو انك تحزم امتعتك وترسلها الى مكان آخر .. فالمسألة عبارة عن حزم وفك برامج التحزيم مفيدة في جوانب اخرى ( غير الحزم والفك ) بصورة عامة .. تقوم بتشغيل ملفات ضمن الحزمة كما لو انت قمت بها يدويا .
    1 point
  11. تفضل اخي الكريم ، هذا التعديل مع الاستعلام الذي أشار أليك به الأستاذ @عمر ضاحى برنامج الطلبيات.zip
    1 point
  12. أخي الكريم بارك الله فيك على هذه التجربة والفكرة الجميلة .. بداية اسمح لي بالآتي : 1- الخطأ ورد عند فتح الاختصار الذي تم انشائه على سطح المكتب ،، وتم حلها ،، وليس هناك مشكلة 2- قمت باضافة PtrSafe إلى الكود لتعمل النسخة عندي على نظام أوفيس 64× . 3- ببساطة تمكنت من الدخول غلى التصميم ، أولا لأن صيغة الملف Accdb وليست محمية كما تظن كما لو أنها Accde مع إلغاء مفتاح الشيفت طبعاً ---- هذا رأيي ؛ وتقبل مروري برحابة الصدر أضم صوتي لصوت الأستاذ @kanory .
    1 point
  13. بالتوفيق والشكر لله وحده مع ذلك فان الاخ العزيز شايب سبق ان اشار في موضوع سابق ان الفلترة اثناء الكتابة ليست الخيار الافضل وخصوصا عند وجود عدة مستخدمين للبرنامج اضافة الى مشاكل في ازاحة الاحرف اما بالنسبة لي لو كنت مبرمج لاخترت الفلترة بعد التحديث و استخدمت قائمة منسدلة قابلة للفلترة عند كتابة كل حرف وحينها ساكون جمعت بين الفكرتين بعد التحديث لسجلات الجدول وعند التغيير للقائمة المنسدلة ولكن لو حرف امتناع لامتناع فلا انا مبرمج ولن اعمل برنامج اخونا الشايب
    1 point
  14. كما قال لك الاستاذ / @Foksh الغي ارتباط التاريخ بين الراس والاطراف وهتتحل المشكلة برنامج الطلبيات.rar
    1 point
  15. اخى الحبيب احمد عبدالحليم تم تجربة الملف ويعمل بالفعل بالكود بارك الله فيك وزادك من علمه أستاذى ومعلمى القدير أ / محمد صالح تم تنفيذ الخطوات بالفعل وتم تنفيذ المطلوب بالخطوات بدون أكواد ألف شكر لحضرتك وللأستاذ / أحمد عبد الحليم جعله الله فى ميزان حسناتكم
    1 point
  16. @شايب اشكرك يا غالى تعرف فتحت القاعدة فى ويندوز اخر وعملت بشكل ممتاز كما اريد الخلل كان فى الويندوز اشكرك واحلى اجابة
    1 point
  17. بارك الله فيك اخونا @سامر محمود ، وجعله الله في ميزان حسناتك ، رغم أني في الأردن إلى أن الفكرة جميلة جداً ، ولكن عندي نقطتين أو 3 نقاط على هامش الملاحظة :- 1- بما انك سمحت للمستخدم باضافة قوانين غير موجودة في المشروع ؛ فأنت أيضاً سمحت له بالتعديل عليها لإنك استخدمت النموذج نفسه للإضافة ولعرض نص القانون !! صح ؟ 2- من باب تنسيق النصوص العربية فالأصح هو جعل مساقها من اليمين إلى اليسار . 3- بما أنه نص للقانون ؛ فمن باب المصداقية في محتوى مشروعك يجب على ما أعتقد إسناد كل نص للقانون لمادته الأساسية في الدستور أو القانون المصري . حتى لا يشكك المتصفح والقارىء في مصداقية معلومة نصوص القانون فيه . ما تبقى لك حرية التطوير والتعديل ,
    1 point
  18. في مرفقك الاخير لا يوجد سجل باسم سليمان فقط سعيد ومازن وحسن وحسين وانا اضفت محمد ومحمود و البحث يعمل جرب الان Database1(1).accdb
    1 point
  19. اليك اسهل الطرق اضف مربع نص آخر بجانب الأساسي و لنفرض ان اسمه Text114 و الآن ضع الكود التالي في حدث عند التغيير في مربع النص الاساسي Dim SetTexta As String SetText = cus_name.Text Text114 = SetText Child1.Form.RecordSource = "SELECT * FROM buy where [bian] Like '*" & Text114 & "*'" Child1.Requery التعديل في المرفقات Database1 (1).accdb
    1 point
  20. الطرق كثيره وكل واحد وطريقته لكن فى الغالب ممكن بدل ما تعمل استعلام ممكن تستخدم اكواد السيكول داخل الاكواد افضل حتى يصعب الوصول للجدول واكوادك المهم انك تتخيل الية العمل وتحاول تجد افضل الطرق للتنفيذ والاكثر فاعليه
    1 point
  21. من لا يشكر الناس لا يشكر الله ، الشكر للأخ @ابوخليل في فكرته الأساسية لحل المشكلة ، وأنا اعتمدت على فكرته في حل جزء من المشكلة أخي @عذاب الزمان .
    1 point
  22. يمكنك إضافة خيارات اللغة إلى شريط الوصول السريع ملف --- خيارات --- تخصيص شريط الوصول السريع file - options - quick access toolbar أوامر غير موجودة في الشريط commands not in the ribbon هيارات اللغة options language إضافة add ok كما بالصورة بالتوفيق
    1 point
  23. جرب استعمال هذا الكود في حدث تغيير محتويات الشيت Private Sub Worksheet_Change(ByVal Target As Range) If Target.Column = 1 Then If Target.Value = "done" Then Target.Offset(0, 2).Value = Target.Offset(0, 1).Value Target.Offset(0, 4).Value = Date End If End If End Sub بالتوفيق
    1 point
  24. بسم الله الرحمن الرحيم الحمد لله الواحد القهار، العزيز الغفار،مكور الليل على النهار ، تذكرة لأولي القلوب والأبصار وتبصرة لذوي الألباب والاعتبار ، الذي أيقظ من خلقه من اصطفاه فزهدهم في هذه الدار، وشغلهم بمراقبته وإدامة الأفكار ، وملازمة الاتعاظ والادكار، ووفقهم للدؤوب في طاعته والتأهب لدار القرار، والحذر مما يسخطه ويوجب دار البوار، والمحافظة على ذلك مع تغاير الأحوال والأطوار. أحمده أبلغ حمد وأزكاه، وأشمله وأنماه. أما بعد: رأيت أن أقدم عملا خالصا لوجه الله الكريم لعل الله يتغمدنا برحمته ولذا رأيت أنا الفقير إلى الله المحمدي عبد السميع عبد الغني أن أجمع الأكواد بطريقة منظمة تسهل للجميع الحصول عليها عند استخدام محرك البحث ، ولهذا ساقدم سلسلة من الأكواد كل كود بعنوان واضح يسهل الوصول له في موضوع مستقل وسأشرح كيفية استخدام الكود ماتيسر لي إن شاء الله وعلى الله قصد السبيل ****************************************** هذا كود ترحيل الصفحة كامله بشرط واحد على سبيل المثال عندنا درجات الطلاب وفيهم طلاب ناجحون وطلاب دور ثان وطلاب راسبون هذا الكود يفصل الطلاب الناجحون في ورقة ويفصل الطلاب الذين لهم حق الدخول في الدور الثاني في صفحة أخرى ويفصل الطلاب الراسبون في صفحة أخرى وهكذا طريقة الاستفادة من الكود افتح ملف اكسيل اضغط على الرز ALT وانت ضاغط على الزر اضغط على F11 الموجود أعلا لوحة المفاتيح ستظهر شاشة الماكرو اضغط على موديول 1 سيتم فتح الموديول الصق فيه الكود الموجود تحت هذا السطر Sub KH_START()[/center] ''' متغيرات بعدد الصفحات المطلوب الترحيل اليها Dim R As Integer, M As Integer, N As Integer, O As Integer ''' أسماء الصفحات المطلوب الترحيل اليها والمدى المطلوب مسح البيانات الثديمة منه Sheets("ناجح").Range("A11:DZ1000").ClearContents Sheets("دور ثان في").Range("A11:DZ1000").ClearContents Sheets("رسوب").Range("A11:DZ1000").ClearContents ''' عدد الصفوف العليا في الصفحات المنقول اليها البيانات M = 11: N = 11: O = 12 Application.ScreenUpdating = False ''' بداية ونهاية صفوف الورقة المصدر For R = 11 To 1000 ''''''''''''''''''''''''''''''''''''''''''''''''''''' ''' رقم عمود المعيار وكلمة المعيار If Cells(R, 113) = "ناجح" Then Range("A" & R).Resize(1, 115).Copy ''' سيتم اللصق في هذا الشيت Sheets("ناجح").Range("A" & M).PasteSpecial xlPasteValues Application.CutCopyMode = False M = M + 1 '''''''''''''''''''''''''''''''''''''''''''''''''''' ''' رقم عمود المعيار وكلمة المعيار ElseIf Cells(R, 113) = "دور ثان في" Then Range("A" & R).Resize(1, 115).Copy ''' سيتم اللصق في هذا الشيت Sheets("دور ثان في").Range("A" & N).PasteSpecial xlPasteValues Application.CutCopyMode = False ''' اجعل الرقم 1 الى الرقم 2وانظر في صفحة الدور الثاني بعد الترحيل N = N + 1 ''''''''''''''''''''''''''''''''''''''''''''''''''''' ElseIf Cells(R, 113) = "رسوب" Then Range("A" & R).Resize(1, 115).Copy Sheets("رسوب").Range("A" & O).PasteSpecial xlPasteValues Application.CutCopyMode = False ''' لترك صف فارغ اعلا كل صف O = O + 2 End If ''''''''''''''''''''''''''''''''''''''''''''''''''''' Next MsgBox ("الحمد لله تـــم ترحيل الناجحين و الراسبين إلى أوراق عمل جديدة ") Application.ScreenUpdating = True End Sub ''''''''''''''''''''''''''''''''''''''''''''''''''''' وإذا اردت زيادة عدد الصفحات الطلوب نقل وترحيل البيانات اليها ... سهلة إن شاء الله ماعليك إلا أن تضيف هذه الجزئيه في الكود مع كتابة اسم الصفحة الجديده والمعيار الجديد ''' رقم عمود المعيار وكلمة المعيار ElseIf Cells(R, 113) = "دور ثان في" Then Range("A" & R).Resize(1, 115).Copy ''' سيتم اللصق في هذا الشيت Sheets("دور ثان في").Range("A" & N).PasteSpecial xlPasteValues Application.CutCopyMode = False ''' اجعل الرقم 1 الى الرقم 2وانظر في صفحة الدور الثاني بعد الترحيل N = N + 1 ودمتم في حفظ الله ترحيل مفيد جدا كل الصفحة بشرط.rar
    1 point
  25. السلام عليكم حل جميل جدا من أخي فتى الوادي ، بارك الله فيك أخي رامي ، بارك الله فيك إذا كنت مصرا على ذلك استخدم الاقتران nz . مثال =nz(x,0)<>0 في هذه الحالة إذا كانت قيمة x = null فإن رسالة التحقق من الصحة تظهر . مع الاحترام
    1 point
×
×
  • اضف...

Important Information