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

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

  1. ابو جودي

    ابو جودي

    أوفيسنا


    • نقاط

      2

    • Posts

      6995


  2. mahmoud nasr alhasany

    mahmoud nasr alhasany

    03 عضو مميز


    • نقاط

      1

    • Posts

      263


  3. محمد هشام.

    محمد هشام.

    الخبراء


    • نقاط

      1

    • Posts

      1707


  4. kkhalifa1960

    kkhalifa1960

    الخبراء


    • نقاط

      1

    • Posts

      1965


Popular Content

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

  1. أقدم كل التهاني والتبريكات لجميع منتسبي منتدانا الحبيب وكل المسلمين بجميع انحاء العالم بعيد الفطر المبارك .. أعاده الله علينا وعليكم بالخير واليمن والبركات .
    1 point
  2. انت صح وانا بس خليت الكود اكثر مرونه ليعمل مع كل انواع الحقول نص او رقم او تاريخ
    1 point
  3. باعتقادي ودون الحاجة الى التوسعات في الإحتمالات ، المشكلة تكمن في السطر التالي :- Dim DB As Database, rs As Recordset بأن يتم التعديل كالتالي :- Dim DB As DAO.Database, rs As DAO.Recordset هذا من وجهة نظري المتواضعة فقط لا غير 😁 . وكل عام وأنتم بخير جميعاً
    1 point
  4. استبدل كود الموديول بالكود التالى Public Function Horizontal(tabelle As String, Feld1 As String, Feld2 As String, valFeld1 As Variant) As String Dim DB As DAO.Database Dim rs As DAO.Recordset Dim fieldType As Integer Dim sqlWhere As String Dim first As Boolean ' تعيين قاعدة البيانات الحالية Set DB = CurrentDb ' استرجاع نوع الحقل Feld1 fieldType = DB.TableDefs(tabelle).Fields(Feld1).Type ' تنسيق القيمة بناءً على نوع الحقل Select Case fieldType Case dbText, dbMemo, dbChar ' النصوص: وضع القيمة بين علامات اقتباس مفردة مع معالجة علامات الاقتباس الداخلية sqlWhere = "[" & Feld1 & "]='" & Replace(valFeld1, "'", "''") & "'" Case dbDate, dbTime, dbTimeStamp ' التواريخ: وضع القيمة بين علامات # مع تنسيق التاريخ sqlWhere = "[" & Feld1 & "]=#" & Format(valFeld1, "yyyy-mm-dd hh:nn:ss") & "#" Case dbInteger, dbLong, dbSingle, dbDouble, dbCurrency, dbDecimal ' الأرقام: إدراج القيمة مباشرة sqlWhere = "[" & Feld1 & "]=" & valFeld1 Case Else ' معالجة الأنواع غير المدعومة MsgBox "نوع البيانات غير مدعوم للحقل: " & Feld1, vbExclamation Exit Function End Select ' إنشاء وتنفيذ استعلام SQL Set rs = DB.OpenRecordset("SELECT DISTINCT [" & Feld2 & "] FROM [" & tabelle & "] WHERE " & sqlWhere & " ORDER BY [" & Feld2 & "] DESC") ' تهيئة متغير للسجل الأول first = True ' معالجة السجلات المسترجعة Do While Not rs.EOF If first Then Horizontal = rs(Feld2) ' القيمة الأولى first = False Else Horizontal = Horizontal & vbCrLf & rs(Feld2) ' إضافة القيم التالية مع فاصل سطر End If rs.MoveNext Loop ' تحرير الموارد rs.Close Set rs = Nothing Set DB = Nothing End Function
    1 point
  5. تفضل المطلوب ولو اردت استخدام دالة IF لإضافة شروط إضافية، مثل عرض "كيلو" فقط إذا كانت الجرامات صفرًا. هذه المعادلة فى السطر 56 =IF(MOD(SUM(E3:E53);1000)=0;INT(SUM(E3:E53)/1000)+SUM(F3:F53)&" كيلو";INT(SUM(E3:E53)/1000)+SUM(F3:F53)&" كيلو و "&TEXT(MOD(SUM(E3:E53);1000);"0")&" جرام") شغل.xlsx
    1 point
  6. وعليكم السلام ورحمة الله تعالى وبركاته أخي @M.Elmahmoudy رغم أن طلبك غير واضح تماما بالنسبة لي لاكن بعد معاينة الملف على حسب ما فهمت أعتقد أن الحل الأمثل لتنفيد طلبك هو إستخدام الأكواد لأنها سوف تضمن لك الدقة في النتائج والسرعة في التنفيد لأن المعادلات غير قادرة على تنفيذ جميع الوظائف بنفس الكفاءة خصوصا عند التعامل مع قوائم غير مرتبة وتكرار القيم ونطاقات غير المتساوية ولا ربما صفوف مخفية عند تنفيد الفرز على عمود معين زيادة على بطئ ملحوظ في الأداء عند وجود بيانات كبيرة يمكنك تجربة هدا وإذا كنت بحاجة إلى أي تعديلات إضافية يمكنني محاولة مساعدتك في ذلك Option Explicit Sub Extract_Names() Dim dict As Object, début As Long, lr As Long, tmp As Range, AutoFilterWasOn As Boolean Dim dCount As Long, UniCount As Long, ColA As Range, ColB As Range Dim CrWS As Worksheet: Set CrWS = Sheets("Sheet2") With Application .ScreenUpdating = False: .Calculation = xlCalculationManual End With AutoFilterWasOn = CrWS.AutoFilterMode If AutoFilterWasOn Then CrWS.AutoFilterMode = False lr = Application.WorksheetFunction.Max(CrWS.Cells(CrWS.Rows.Count, "A").End(xlUp).Row, _ CrWS.Cells(CrWS.Rows.Count, "B").End(xlUp).Row) Set dict = CreateObject("Scripting.Dictionary") Set ColA = CrWS.Range("A3:A" & lr): Set ColB = CrWS.Range("B3:B" & lr) For Each tmp In ColB If Not dict.exists(tmp.Value) Then dict.Add tmp.Value, tmp.Row Next tmp CrWS.Range("C2:C" & CrWS.Cells(CrWS.Rows.Count, 3).End(xlUp).Row).ClearContents début = 3: dCount = 0: UniCount = 0 For Each tmp In ColA If dict.exists(tmp.Value) Then CrWS.Cells(début, 3).Value = tmp.Value & " / " & CrWS.Cells(dict(tmp.Value), 2).Value dict.Remove tmp.Value début = début + 1 dCount = dCount + 1 End If Next tmp For Each tmp In ColB If dict.exists(tmp.Value) Then CrWS.Cells(début, 3).Value = tmp.Value début = début + 1 UniCount = UniCount + 1 End If Next tmp CrWS.Range("C2").Value = " عدد الوظائف / المتشابهة: " & dCount & " & الفردية: " & UniCount CrWS.Columns("C:C").EntireColumn.AutoFit Set dict = Nothing With Application .ScreenUpdating = True: .Calculation = xlCalculationAutomatic End With End Sub Book2 v2.xlsb
    1 point
  7. بنسبة ملف الأول خانة جرامات : MOD( SUM(C3:C53), 1000) كسور حقل C بعد تجميع و تقسيم على 1000 و خانة كيلوات: SUM(D3:D53)+INT(SUM(C3:C53)/1000) تجميع حقل D + عدد صحيح ، تجميع حقل C و تقسيمه على 100 و الملف الثاني : تم دمج خانتين ومعادلة: تجميع حقل C + تجميع حقل D
    1 point
  8. تقبل الله منا ومنكم سائر الاعمال وكل عام وانتم بالف خير لم إفهم اي تنسيق تقصد وثاني كلمة wada3 = "تم التأجيل" لم اراها في الكود المهم بعد التجربة الاشهر الاقتطاع المعفاة لم يتغير المبلغ الى 0 ومع الوضعية السداد لم تكتب " تم التأجيل"
    0 points
×
×
  • اضف...

Important Information