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

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

  1. محمد يوسف ابو يوسف

    • نقاط

      7

    • Posts

      368


  2. lionheart

    lionheart

    الخبراء


    • نقاط

      7

    • Posts

      670


  3. jjafferr

    jjafferr

    أوفيسنا


    • نقاط

      6

    • Posts

      9960


  4. نزار سليمان عيد

    نزار سليمان عيد

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


    • نقاط

      5

    • Posts

      1547


Popular Content

Showing content with the highest reputation on 02/26/22 in all areas

  1. السلام عليكم تحتاج للمعادلة ادناه =IF((B4<>0)*AND(A4=0),0.3,B4/A4) فضلا انظر للمرفق واي استفسار اخبرني مع الشكر ملف.xlsx
    4 points
  2. وعليكم السلام اتفضل تم تعديل الكود الى Private Sub p1_Click() [Forms]![tb_bill]![tb_Billdetails]![codeitmes] = Me.[codeitmes] [Forms]![tb_bill].SetFocus [Forms]![tb_bill]![tb_Billdetails].SetFocus DoCmd.GoToRecord , , acNewRec End Sub بالتوفيق شاشة الاصناف.accdb
    3 points
  3. وعليكم السلام استاذ وائل 🙂 يا ريت توضح ما الذي تريده بالضبط ، حتى يستطيع الاعضاء مساعدتك 🙂 جعفر
    2 points
  4. السلام عليكم ورحمة الله وبركاته يتلخص الحل باستخدام Filter للمبلغ وتحديد الأرقام التي تريدها أرجو أن يكون هو الحل والسلام عليكم ايداعات عملاء.xlsx
    2 points
  5. إخواني إليكم هذا الملف المرفق وأتمنى لكم الفائدة مع خالص تحياتي أخوكم رضا عقيل p4.rar
    1 point
  6. السلام عليكم 🙂 هذا المنتدى للتبادل العلمي ، حتى يستفيد منه الجميع ، وليس صاحب الموضوع / السؤال فقط 🙂 فيا ريت ان نضع الاجابة بالتفصيل في الرد (سواء الخطوات او الكود او صور من شاشة البرنامج) ، ولا نتوقف عند ارفاق المرفق الذي به الرد / الجواب ، والسبب هو ، حتى يستطيع الجميع رؤية الرد ومعرفته مباشرة ، دون اللجوء الى انزال المرفق وفهمه 🙂 نعم ، هذا عبء إضافي ، ولكن نتائجه ستكون مثمرة ان شاء الله 🙂 وتذكروا ، هذا مجرد طلب ورجاء ، وليس اجباري 🙂 شكرا جزيلا 🙂 جعفر
    1 point
  7. اخيرا نعم اخي عبدالفتاح في بي اكسيل ضبط الف شكر لكم جميعاً ما قصرتوا انت والاخ محمد يوسف ابو يوسف
    1 point
  8. @محمد بن صالح اعتقد انك محق بخصوص الخطا جرب هذا سيعمل معك قم بتغيير من ActiveWorkbook.SaveAs Filename:="E:\التقرير لتاريخ" & "\العمل " & Format(Date - 1, "DD-MM-YYYY") & ".xlsm", _ FileFormat:=xlOpenXMLWorkbookMacroEnabled, CreateBackup:=False الى ActiveWorkbook.SaveAs Filename:="E:\التقرير لتاريخ" & "\العمل " & Format(Date - 1, "DD-MM-YYYY") , _ FileFormat:=51, CreateBackup:=False
    1 point
  9. اخي انت تخطأ اسناء نسخك للكود فمن فضلك قم بتحميل الملف المرفق ثم اضغط علي الزر ثم انظر مذا يحدث لن تجد هذا الخلل
    1 point
  10. وعليكم السلام 🙂 حيا الله اخوي محمد 🙂 في الواقع عمل هذا النوع من المجاميع في الجدول او الاستعلام ، يبطئ عمل الجدول والاستعلام ، ولا ارى فائدة منه ، إلا اذا تسمح للمستخدم ان يرى البيانات في الجدول ، وهذه كارثة 😱 جعفر
    1 point
  11. وعليكم السلام استخدم الكود التالي في مربع النص =DSum("[Amount]";"M")
    1 point
  12. Try the code with large amount of data and tell us the final result and the time that will the code take
    1 point
  13. شكرا جزيلا جاري التجربه موفق اخي الكربم.... هل ممكن ان يعمل هذا الكود مع حجم البيانات الكبير مقدر تعبك و مجهودك و حسن تعاونك
    1 point
  14. Just change the range in this line to suit your needs Range("A2", Range("A" & Rows.Count).End(xlUp))
    1 point
  15. الان فهمت قصدك..بارك الله فيك اي ان الجدول firstd يحمل قيمة واحدة فقط ...كودك يعمل بشكل جيد حسب فهمي اخي العزيز انه طالما الاستعلام يفي بغرضك فلا تلجا الى الوحدة النمطية ..والله اعلم
    1 point
  16. وغليكم السلام استخدم اسنعلام التحديث ولن تحتاج الى كود
    1 point
  17. أشكرك استاذنا الفاضل نعم هذا هو المطلوب ولكن كيف الغي ظهور #DIV/0
    1 point
  18. أخي محمد بن صالح هل انت تستخدم الملف المرفك ام تقوم بنسخ الكود ما اصدار الاوفيس لديك اخي محمد بن صالح اذا كنت لا تريد شئ اخر 1:يجب عليك انهاء الموضوع بالضغط علي افضل اجابه : لمن قدم اليك طلبك جزاك الله خيراً
    1 point
  19. اخي محمد بن صالح تفضل Sub export_specificsheet() Application.ScreenUpdating = False Application.DisplayAlerts = False Cells.Select Application.CutCopyMode = False Selection.Copy Workbooks.Add Selection.PasteSpecial Paste:=xlPasteFormats, Operation:=xlNone, _ SkipBlanks:=False, Transpose:=False Selection.PasteSpecial Paste:=xlPasteValuesAndNumberFormats, Operation:= _ xlNone, SkipBlanks:=False, Transpose:=False Application.CutCopyMode = False ActiveWorkbook.SaveAs Filename:="E:\العمل\" & "التقرير لتاريخ " & Format(Date - 1, "DD-MM-YYYY") & ".xlsm", _ FileFormat:=xlOpenXMLWorkbookMacroEnabled, CreateBackup:=False ActiveWindow.Close Range("a1").Select Application.DisplayAlerts = True Application.ScreenUpdating = True End Sub الملف نسخ من ورقة لمصنف جديد بشروط.xlsm اخي الملف يعمل بكفائة لدي اخبرني بالنتيجة
    1 point
  20. لا تكثر من اضافة طلب جديد في كل مرة سيجعل الاعضاء غير متحمسين لتقديم المساعدة انظر الى هذه السطر وغير xlsm . الى xlsx . ActiveWorkbook.SaveAs Filename:="E:\العمل\" & "التقرير لتاريخ " & Format(Date - 1, "DD-MM-YYYY") & ".xlsm", FileFormat:= _
    1 point
  21. اخي محمد بن صالح نعم ممكن تفضل نسخ من ورقة لمصنف جديد بشروط.xlsm
    1 point
  22. مجرد اقتراح ضع هذا السطر Selection.PasteSpecial Paste:=xlPasteFormats, Operation:=xlNone, SkipBlanks:=False, Transpose:=False بعد Workbooks.Add
    1 point
  23. ربما Sub test() With Sheets("B") a = Join(Application.Transpose(.Range(.Cells(2, 1), .Cells(2, 1).End(xlDown)))) b = Join(Application.Transpose(.Range(.Cells(2, 2), .Cells(2, 2).End(xlDown)))) End With With Sheets("C") a1 = Join(Application.Transpose(.Range(.Cells(2, 1), .Cells(2, 1).End(xlDown)))) b1 = Join(Application.Transpose(.Range(.Cells(2, 2), .Cells(2, 2).End(xlDown)))) End With a = Split(a & " " & a1): b = Split(b & " " & b1) With CreateObject("scripting.dictionary") For i = 0 To UBound(a) If Not .exists(a(i)) Then .Add a(i), b(i) Next a = Application.Transpose(Array(.keys, .items)) End With Sheets("A").Cells(2, 1).Resize(UBound(a), 2) = a With Worksheets("A").Sort Worksheets("A").Sort.SortFields.Clear Worksheets("A").Sort.SortFields.Add2 Key:=Range("A2:A" & UBound(a) + 1), _ SortOn:=xlSortOnValues, Order:=xlAscending .SetRange Range("A2:b" & UBound(a) + 1) .Header = xlGuess .Orientation = xlTopToBottom .SortMethod = xlPinYin .Apply End With End Sub
    1 point
  24. بعد اذن اخي مهند اخي matrex 300 تفضل طلبك الملف طباعة نسخة بي دي اف ونسخة علي طباعيه.xlsm
    1 point
  25. To implement .. With your workbook active press Alt+F11 to bring up the vba window. In the Visual Basic window use the menu to Insert|Module Copy and Paste the code below into the main right hand pane that opens at step 2. Close the Visual Basic window. Press Alt+F8 to bring up the Macro dialog Select the macro & click ‘Run’ Your workbook will need to be saved as a macro-enabled workbook (*.xlsm) Don't forget to remove the conditional formatting from the worksheet
    1 point
  26. اخي محمد بن صالح السلام عليم تفضل نسخ من ورقة لمصنف جديد بشروط (1).xlsm
    1 point
  27. وتكملة لكود اخي المهندس قاسم ، في حال لم يكن هناك صورة في المسار: Private Sub Form_Current() on error goto err_Form_Current Dim Path As String Path = Application.CurrentProject.Path & "\img\" Me![صورة0].Picture = Path & "1.jpg" Exit_Form_Current: exit sub err_Form_Current: if err.number=2220 then 'No image in path Me![صورة0].Picture = "" resume next else msgbox err.number & vbcrlf & err.description resume Exit_Form_Current end if End Sub جعفر
    1 point
  28. وعليكم السلام هناك العديد من الطرق لكن فكرت بطريقة سهلة..ويمكنك ان تستخدم الكود على ازرار التنقل عملته لك على زر الحفظ document1.rar
    1 point
  29. وعليكم السلام 🙂 علشان تختار اكثر من اسم ، عندك اختيارين: 1. السجل تعمل فيه حقل iSelect من نوع نعم/لا ، ثم تعمل نموذج مستمر ، ويمكنك ان تختار اكثر من سجل/اسم. 2. تعمل مربع خيار ListBox ، ثم تجعل خيارات . فتستطيع بالنقر مرة على الاسم ان تختاره او تلغي الاختيار . وتضع احد الاختيارين في نموذج رئيسي ، وتعمل بقية الحقول المطلوبة ، والتي لا تكون مرتبطة بجدول ، وبعد اختيار الاسماء وتعبئة الحقول ، يكون عندك زر لتفريغ هذه البيانات في الجدول لهذه الاسماء ، سواء ان تُلحق سجل جديد ، او تعمل تحديث لسجل موجود ، كود الزر يعمل حلقة دوران للاسماء ، ويُدخل بيانات الحقول 🙂 جعفر
    1 point
  30. Sub Test() Dim w, d As Object, r As Range Set d = CreateObject("Scripting.Dictionary") d.CompareMode = 1 With Range("A2", Range("A" & Rows.Count).End(xlUp)) .Interior.colorIndex = xlNone For Each r In .Cells If Not d.Exists(r.Value) Then ReDim w(1 To 2) Set w(1) = r With Application.WorksheetFunction w(2) = Array(.RandBetween(0, 255), .RandBetween(0, 255), .RandBetween(0, 255)) End With d(r.Value) = w Else w = d(r.Value) r.Interior.Color = RGB(w(2)(0), w(2)(1), w(2)(2)) If Not IsEmpty(d(r.Value)(1)) Then d(r.Value)(1).Interior.Color = RGB(w(2)(0), w(2)(1), w(2)(2)) w(1) = Empty d(r.Value) = w End If Next r End With End Sub
    1 point
  31. السلام عليكم ورحمة الله وبركاته أخي الكريم أجريت التعديل التالي على الملف المرفق لتكون الطباعة لديك ديناميكية لتحصل من خلالها مدى الطباعة كاملاً قل أو كثر كما تم تغيير الطباعة من أفقيه إلى عمودية ملاحظة: يرجى الانتباه إلى أنك إذا غيرت بإعدادات الطباعة سيتحول نطاق الطباعة إلى نطاق محدد وقد يكون أكبر مما هو محدد في تحرير الاسم في الصورة أدناه... فإن تغير ووجدت أن النطاق المراد طباعته أصبح أكبر فعليك بنسخ الكود أدناه ووضعه في مربع تحرير الاسم Print_Area Print_Area =OFFSET(الوصل!$C$1;;;COUNT(الوصل!$C$8:$C$200)+8;8) أما في الكود فقد تم وضع Print_Area كمدىً بدلاً من تحديده من خلية إلى أخرى على الشكل التالي: Private Sub CommandButton1_Click() Dim I As Long For I = Range("N8").Value To Range("O8").Value Sheets("البودرة").Range("A1:S8044").AdvancedFilter Action:=xlFilterCopy, _ CriteriaRange:=Range("N1:P2"), CopyToRange:=Range("C6:J6"), Unique:=False Range("N7").Value = I Range("Print_Area").Select ActiveWindow.SelectedSheets.PrintOut Copies:=1 Next I End Sub والله ولي التوفيق والسلام عليكم ورحمة الله وبركاته أخوكم أبو يوسف طبع الوصولات جملة واحدة حسب الارقام المختارة.xlsm
    1 point
  32. بعد مراجعة الموضوع من أوله تبين أن هذه الدالة تفي بالغرض سواء في الأعمدة أو الصفوف لأن المستخدم يقدم لها نطاقا يمكن أن يكون صفا أو عمودا أو أكثر مثال لاستخدامها لجمع الأعمدة نكتب في الخلية i15 =CountShapes(I4:I14) مثال لاستخدامها لجمع الصفوف نكتب في الخلية v5 =CountShapes(A5:U5) بالتوفيق
    1 point
  33. اعتقد ان هذا الماكرو يفي بمتطلباتك اكتبي رقم العمود الذي تريدينه ان يقوم بترحيل بياناته Sub parse_data() Dim lr As Long Dim ws As Worksheet Dim vcol, i As Integer Dim icol As Long Dim myarr As Variant Dim title As String Dim titlerow As Integer Application.ScreenUpdating = False vcol = Application.InputBox(Prompt:=" اي العمود الذي تريد فرزه", title:="فلترة عمود", Default:="3", Type:=1) Set ws = ActiveSheet lr = ws.Cells(ws.Rows.Count, vcol).End(xlUp).Row title = "A1" titlerow = ws.Range(title).Cells(1).Row icol = ws.Columns.Count ws.Cells(1, icol) = "Unique" For i = 2 To lr On Error Resume Next If ws.Cells(i, vcol) <> "" And Application.WorksheetFunction.Match(ws.Cells(i, vcol), ws.Columns(icol), 0) = 0 Then ws.Cells(ws.Rows.Count, icol).End(xlUp).Offset(1) = ws.Cells(i, vcol) End If Next myarr = Application.WorksheetFunction.Transpose(ws.Columns(icol).SpecialCells(xlCellTypeConstants)) ws.Columns(icol).Clear For i = 2 To UBound(myarr) ws.Range(title).AutoFilter field:=vcol, Criteria1:=myarr(i) & "" If Not Evaluate("=ISREF('" & myarr(i) & "'!A1)") Then Sheets.Add(after:=Worksheets(Worksheets.Count)).Name = myarr(i) & "" Else Sheets(myarr(i) & "").Move after:=Worksheets(Worksheets.Count) End If ws.Range("A" & titlerow & ":A" & lr).EntireRow.Copy Sheets(myarr(i) & "").Range("A1") 'Sheets(myarr(i) & "").Columns.AutoFit Next ws.AutoFilterMode = False ws.Activate Application.ScreenUpdating = True End Sub
    1 point
  34. السلام عليكم ورحمة الله استخدمى هذا الكود Sub CrNewSheets() Dim dic As Object, arr As Variant, Itm Dim i As Long, ws As Worksheet Set ws = Sheets("مخازن رقم 1") Set dic = CreateObject("scripting.dictionary") arr = ws.Range("J2:J" & ws.Range("J" & Rows.Count).End(3).Row).Value For i = 1 To UBound(arr) dic(arr(i, 1) & "") = "" Next On Error Resume Next ws.Range("A1:K1").Copy For Each Itm In dic.keys If Len(Trim(Itm)) > 0 Then If Len(Worksheets(Itm).Name) = 0 Then Sheets.Add(after:=Sheets(Sheets.Count)).Name = Itm Sheets(Itm).Range("A1").PasteSpecial xlPasteAll End If End If Next Application.CutCopyMode = False End Sub
    1 point
  35. هذا ملفك بعد تنفيذ المطلوب التصفية بشرطين الفصل والنوع بالتوفيق قائمة فصل بنون وبنات.xlsx
    1 point
  36. Sub Test() Dim x, ws As Worksheet, sh As Worksheet, s As String, m As Long Application.ScreenUpdating = False Set ws = Worksheets(1) Set sh = Worksheets(2) sh.Range("B7:B" & Rows.Count).ClearContents s = sh.Range("AI3").Value If s = "" Then MsgBox "Select Grade First", vbExclamation: Exit Sub x = Application.Match(s, ws.Rows(1), 0) If IsError(x) Then MsgBox "No Data For This Grade", vbExclamation: Exit Sub m = ws.Cells(Rows.Count, x).End(xlUp).Row If m < 4 Then MsgBox "No Data", vbExclamation: Exit Sub sh.Range("B7").Resize(m - 3).Value = ws.Cells(4, x).Resize(m - 3).Value Application.ScreenUpdating = True End Sub
    1 point
  37. لا أعتقد وجود معادلة تقوم بهذا الدور لذلك يمكنك استعمال اكواد vba مع ملاحظة ان اختيار الاسم في شيت A يجب ان يكون من قائمة الاسماء في شيت B لضمان المطابقة تم وضع معادلات للعد وكود لجلب أيام العياب مجمعة بالتوفيق دمج أيام الغياب في خلية واحدة.xlsb
    1 point
  38. السلام عليكم تم اضافة خانة جديده كما في الصورة ادناه لحذف ايام اخرى حسب الاختيار انظر للملف واي استفسار اعلمني سجل غياب جديد.xlsm
    1 point
  39. هذه معادلة ضفيف ويمكنك تعديل المدي في المعادلة وطبعا الاقواس ستنحذف يمكنك ارجاع الاقواس بالضغظ على ctrl+shift+enter تحياتي
    1 point
  40. السلام عليكم ورحمة الله أخي الكريم، أحاول أن أشرح بعض الأمور في الملف: - بالنسبة للقائمة المنسدلة في الخلية m1 فقد تم تبديل مكانها إلى الخلية R2 وقد تم تغيير مرجعها إلى النطاق IH4:IP4 من شيت "الغياب" والتغيير تم في التسمية "الشهور"... - بالنسبة لـ "وجدت أن العنوان لكلمة اخطار غياب تلميذ تغير ليضع اليوم بعد الشهر" : هذه لم أفهمها غير أنه إذا ظهرت في هذا العنوان العبارة (مثلا لشهر سبتمبر 2017 م): "إخطار غياب تلميذ عن شهر سبتمبر aaaa م" فقم بتغيير الجزئية aaaa في المعادلات بالجزئية yyyy... - بالنسبة للعمود IS فقد تم حذفه في المرفق باعتبار أن هذا العمود المساعد أضيف لأجل شيت "المتجاوزون" الذي تم الاستغناء عنه وبالتالي لا ضرورة لهذا العمود... - وبالنسبة للعمود IR المساعد، فقد وُضع لرصد (بالترقيم التسلسلي) للطلاب الذين تجاوز عدد غياباتهم 3 أيام في عمود الغياب (من IH إلى IP من شيت "الغياب") والذي تحدده الدالة OFFSET (في معادلات العمود IR) حسب الشهر الذي تم اختياره في الخلية R2 من شيت "اخطار غياب" (القائمة المنسدلة). أرجو أني وفقت في توضيح الأمور... بن علية حاجي إخطار2.rar
    1 point
  41. وعليكم و رحمة الله و بركاته للاغلاق نموذج الاول اولاً ثم فتح النموذج الثاني عليك تعريف المتغير برقم ID في نموذج الاول و ثم وضع اسم المتغير في الشرط بدل ID لاحظ الكود On Error Resume Next Dim IDv As Integer IDv = id DoCmd.Close DoCmd.OpenForm "form2", , , "[ID]=" & IDv
    1 point
  42. رائع استاذنا الكبير/ استاذ عبد الله كود خيف ومميز بارك الله فيك
    1 point
  43. السلام عليكم على افتراض ان النطاق المطلوب B4:B100 جرب الكود التالي: Sub kh_Replace() Dim ch With Range("B4:B100") For Each ch In Array("إ", "أ", "آ") .Replace CStr(ch), "ا" Next .Replace "ة", "ه" .Replace "ى", "ي" End With End Sub المرفق 2003 حذف الهمزة والتاء المربوطه.rar
    1 point
×
×
  • اضف...

Important Information