اذهب الي المحتوي
أوفيسنا
بحث مخصص من جوجل فى أوفيسنا
Custom Search

abouelhassan

05 عضو ذهبي
  • Posts

    2916
  • تاريخ الانضمام

  • تاريخ اخر زياره

  • Days Won

    7

مشاركات المكتوبه بواسطه abouelhassan

  1. كلامك صحيح اخى سيكون متاح أمام الادمن

    أما الحالة فهى أيضا من صلاحيات الادمن وخى مرحل وغير مرحل ودى آخر مرحلة كما ذكرت حضرتك سابقا منع التعديل 

    المبلغ سأعمله دائن ومدين. بالطبع

    شاكر لك اخى كرمك 

  2. اخى الكريم استاذى الحبيب ابوخليل

    روعة البساطة والعملية 

    نموذج ممتاز فهمته جيد ممتاز فعلا الاكواد المستخدمة فى النموذج

    Option Compare Database
    Private Sub ComSave_Click()
    Me.Requery
    Dim ctl As Control
    For Each ctl In Me.Controls
    If TypeName(ctl) = "TextBox" Or TypeName(ctl) = "combobox" Then
    If IsNull(ctl) Or ctl = "" Then
    MsgBox " لا يمكن ترك اي حقل فارغ", vbInformation, ""
    DoCmd.CancelEvent
    ctl.SetFocus
    Exit Sub
    Exit For
    End If
    End If
    Next ctl
    
    Dim rs As Recordset
    Dim rst As Recordset
    Dim R As Integer
        Set rs = CurrentDb.OpenRecordset("tblFinancial_Records")
      Set rst = Me.RecordsetClone
    rst.MoveLast
    R = rst.RecordCount
    rst.MoveFirst
    For i = 1 To R
     rs.AddNew
    
    rs!Reg_Date = Me.Reg_Date
    rs!theYear = Me.theYear
    rs!Reg_doc_Number = Me.Reg_doc_Number
    rs!Account = Me.Account
    rs!Alsenf_ID = rst!Alsenf_ID
    rs!Creditor = rst!Creditor
    rs!Debit = rst!Debit
    rs!Reg_Text = rst!Reg_Text
    rs!Pay = rst!Pay
            rs.Update
       rst.MoveNext
       Next
       Set rs = Nothing
       Set rst = Nothing
    MsgBox "تم الحفظ", vbInformation, ""
    
    
    DoCmd.SetWarnings False
    DoCmd.RunSQL "DELETE tblFinalTemp.*, * FROM tblFinalTemp"
    DoCmd.SetWarnings True
    
    Me.Requery
     Me.Reg_Date = Null
     Me.theYear = Null
     Me.Reg_doc_Number = Null
     Me.Account = Null
    
    End Sub
    
    Private Sub Form_Open(Cancel As Integer)
    Me.Reg_Date.SetFocus
    End Sub
    
    Private Sub Form_Unload(Cancel As Integer)
    DoCmd.SetWarnings False
    DoCmd.RunSQL "DELETE tblFinalTemp.*, * FROM tblFinalTemp"
    DoCmd.SetWarnings True
    End Sub
    
    Private Sub Reg_Date_AfterUpdate()
    Me.theYear = Year(Me.Reg_Date)
    End Sub

    ممتازين جدا جدا جدا فهمتم والله جدا

    احتاج نموذج التعديل واعرف اضيف له غلق التعديل فى يوم 10 من الشهر التالى لمنع التلاعب بالبيانات فقط الادمن يستطيع التعديل 

    والتقارير وهى الغاية المنشودة 

    رمضان كريم عليك وعلى اسرتك الكريمة

  3. كل عام وانتم بخير وصحه وسلامه يارب ويديك الصحة والعافية ويبارك لك في اسرتك الكريمة اخى

    اولا اختار التاريخ فيكتب فى تكست اوتو السنة المالية استدلال بالجدول إلى احنا حددنا فيه السنة المالية بتبداامتى وتنتهى امتى

    ثانيا اكتب رقم المستند 

    ثالثا اختار الحساب 

    اكتب المبالغ واختار الصنف ثم اكتب المبلغ واختار الصنف وهكذا حتى 12 صنف مع وجود تكست توضح لى مجموع المبالغ لاعرف انا غلط او صح وزر اسمه ترحيل أو إدخال بحيث يحفظ البيانات ويفرغ النموذج للادخال الجديد

    مع خالص تحياتي لك اخي الكريم جدا

  4. حبيب قلبى اخىابوخليل الغالى لدى مشاكل بالكمبيوتر اسف للتأخر فى الرد والله اشكرك اخى فى الله استاذ خليفة المحترمkkhalifa1960

    تمام اخى ابو خليل الاستعلام ممتاز جدااااااااااااااا

    اذن سنعمل على استعلامين ممتازين اخى شاملين كل ما احتاج

    ندخل فى الجد

    النماذج المدججة بالاكواد

    احتاج نموذج شاشة دخول بصلحيات مستخدم و نموذج ادخال بيانات ونموذج عرض التقارير والفلترة مع امكانية تصدير التقارير للاكسيل للمراجعة او تصدير ناتج الفلترة للاكسيل حفظك الله ونجاك من اى شر

     

     

     

  5. النتائج المطلوب الحصول عليها 

    تقرير عن البيانات المدخلة عن فترة من تاريخ إلى تاريخ 

    تقرير عن البيانات المدخلة عن فترة من تاريخ إلى تاريخ للمبالغ الدائنة فقط والمدينة فقط والرصيد

    تقرير عن البيانات المدخلة عن فترة من الى 

    لحساب أو عدد من الحسابات 

    تقرير عن فترة من الى لصنف أو. عدد من الأصناف

    بارك الله فيك اخى فى الله 

  6. سأكتب لك الكود الذى استخدمه عله يفيدك

    Private Sub Form_Load()
    DoCmd.Maximize
    Me.Main_iDate.SetFocus
    If myCheckUser = "modeer" Then
    Exit Sub
    Else
    كل ما هو غير الادمن اكتب بجواره  false 
    'DellOll.Visible = False
    'Command169.Visible = False
    'ÃãÑ171.Visible = False
    T1.Visible = False
    L1.Visible = False
    End If
    End Sub

     

  7. السلام عليكم اخوانى الاساتذة 

    لدى مشروع برنامج 

    احتاج تنفيذ الاتى

    البرنامج ادخال بيانات 12 نوع من الاصناف ل عدد حساب من 50 حساب قد ادخل صنف او اتنين او كلهم كل مرة ل حساب واحد من ال 50

    الادخال ب التاريخ الرقم منه  او  له  للمبلغ 

    التقارير المطلوبة

    تقرير  للمدخلات من تاريخ    الى تاريخ مع امكانية اختيار التقرير لحساب او حسابات معينة او كل الحسابات  مع امكانية اختيار منه او له او الاثنين

    احتاج الافكار الصحيحة التى ابدأ بها المشروع حتى يمكن ان يكون ناجح وقابل للتطوير او زيادة الاصناف او الحسابات مستقبلا

    شاكر فضلكم اخوانى الافضل

     

  8. تفضل اخي

    
    
    =AND(ISFORMULA(E1),EVALUATE(E1)="=SUM($A$1:$D$1)")

     

    هذه الصيغة تحتوي على الدالة `EVALUATE` التي تقوم بتقييم الصيغة الموجودة في الخلية E1 وتحويلها إلى نص. ثم تتأكد الصيغة الناتجة تساوي الصيغة المطلوبة "=SUM($A$1:$D$1)"، وإذا كانت تساوي سترجع TRUE، وإلا سترجع FALSE.

  9. جرب

    1. انتقل إلى القائمة "البيانات" في Excel.

    2. اختر "تحقق من صحة البيانات" ثم "قواعد البيانات".

    3. في القائمة المنسدلة، اختر "تكوين القاعدة".

    4. في مربع الحوار "تكوين قاعدة البيانات"، اختر "صيغة" من القائمة المنسدلة.

    5. في مربع الحوار "صيغة"، ادخل الصيغة التالية:

    
    =ISFORMULA(E1)

    `، ثم اختر "موافق".

     

    هذه الخطوات ستجعل الخلية E1 تقبل فقط الدوال، وإذا قام المستخدم بإدخال قيمة غير دالة، ستعتبر الخلية فارغة.

  10. لتجميع البيانات أسبوعياً، يمكنك استخدام الصيغ الشيتية في Excel للتجميع. يمكنك اتباع الخطوات التالية:

     

    1. إضافة عمود جديد لتحديد الأسبوع.

    2. في الخلية A2، اكتب الصيغة التالية لاستخراج تاريخ الأسبوع:

       ```

       =TEXT(A2, "ww")

       ```

       حيث A2 هو الخلية التي تحتوي على التاريخ.

    3. في الخلية C2، اكتب الصيغة التالية لجمع البيانات الأسبوعية:

       ```

       =SUMIF($A$2:$A$35, "="&A2, $B$2:$B$35)

       ```

       حيث A2:A35 تحتوي على تواريخ الأسابيع، وB2:B35 تحتوي على القيم المرتبطة.

    4. اسحب الصيغتين لأسفل لتطبيقهما على بقية الصفوف.

     

    هذا سيقوم بتجميع القيم الأسبوعية في العمود C حسب الأسبوع المحدد.

     

    جرب إذا كنت ترغب في استخدام VBA لتجميع البيانات أسبوعيًا، يمكنك استخدام الكود التالي. يفترض أن لديك بيانات في الأعمدة A و B، وترغب في تجميعها أسبوعيًا في أعمدة C وD

    
    Sub AggregateWeekly()
        Dim ws As Worksheet
        Dim lastRow As Long
        Dim weekStartDate As Date
        Dim totalSales As Double
        Dim targetRow As Long
    
        ' Set the worksheet
        Set ws = ThisWorkbook.Sheets("Sheet1")
    
        ' Find the last row with data
        lastRow = ws.Cells(ws.Rows.Count, "A").End(xlUp).Row
    
        ' Initialize variables
        totalSales = 0
        targetRow = 2 ' Start from row 2 (assuming row 1 is headers)
    
        ' Loop through the rows
        For i = 2 To lastRow
            ' Check if the current date is in the same week as the start date
            If Weekday(ws.Cells(i, 1).Value, vbMonday) = 2 Then
                ' Add the sales to the total
                totalSales = totalSales + ws.Cells(i, 2).Value
            End If
            
            ' If the current date is the last day of the week or the last row, write the total sales for the week
            If Weekday(ws.Cells(i, 1).Value, vbMonday) = 1 Or i = lastRow Then
                ' Write the week start date
                ws.Cells(targetRow, 3).Value = ws.Cells(i, 1).Value - Weekday(ws.Cells(i, 1).Value, vbMonday) + 1
                ' Write the total sales for the week
                ws.Cells(targetRow, 4).Value = totalSales
                ' Move to the next row
                targetRow = targetRow + 1
                ' Reset the total sales for the next week
                totalSales = 0
            End If
        Next i
    End Sub

    هذا الكود يقوم بتجميع البيانات الأسبوعية ووضعها في أعمدة جديدة. يمكنك تعديل اسماء الاعمدة والورقة حسب احتياجك.

    • Like 2
  11.  يمكنك استخدام الكود التالي:


    Private Sub Worksheet_Change(ByVal Target As Range)
        Dim ws As Worksheet
        Dim stockSheet As Worksheet
        Dim changedCell As Range
        Dim newValue As Double
        Dim oldValue As Double
        Dim diff As Double

        Set ws = ThisWorkbook.Sheets("Sheet1") ' تغيير "Sheet1" إلى اسم الورقة التي تعمل عليها
        Set stockSheet = ThisWorkbook.Sheets("Stock") ' تغيير "Stock" إلى اسم ورقة المخزون

        ' التحقق من أن التعديل تم في العمود F والخلية ليست فارغة
        If Not Intersect(Target, ws.Columns("F")) Is Nothing And Target.Value <> "" Then
            newValue = Target.Value
            stockSheet.Range("G8").Value = stockSheet.Range("G8").Value + newValue
        ElseIf Not Intersect(Target, ws.Columns("F")) Is Nothing Then
            Exit Sub
        End If

        ' التحقق من أن التعديل تم في العمود F وليس في الخلية G8
        If Not Intersect(Target, ws.Columns("F")) Is Nothing And Target.Address <> "$F$8" Then
            Exit Sub
        End If

        ' التحقق من أن التعديل تم بالزيادة
        If Target.Value > Target.Value - Target.Value Then
            newValue = Target.Value
            oldValue = Target.Value - Target.Value
            diff = newValue - oldValue
            stockSheet.Range("G8").Value = stockSheet.Range("G8").Value + diff
        Else ' التعديل تم بالنقص
            newValue = Target.Value
            oldValue = Target.Value + Target.Value
            diff = oldValue - newValue
            stockSheet.Range("G8").Value = stockSheet.Range("G8").Value - diff
        End If
    End Sub
    ```

    هذا الكود يتم وضعه في وحدة العمل الخاصة بالورقة التي تريد استخدامها. يقوم الكود بتنفيذ الأوامر التالية:

    1. إذا تم إدخال قيمة جديدة في العمود F (والخلية ليست فارغة)، فإنه يقوم بإضافة هذه القيمة إلى قيمة الخلية G8 في ورقة المخزون.
    2. إذا تم تعديل قيمة في العمود F (والخلية ليست G8)، فإنه يحسب الفارق بين القيمة الجديدة والقيمة القديمة ويضيف أو يخصم هذا الفارق من قيمة الخلية G8 في ورقة المخزون، اعتمادًا على اتجاه التعديل (زيادة أو نقص).

  12. جرب

    لتحقيق ذلك، يمكنك استخدام حدث `Worksheet_Change` في VBA للتحقق من القيمة المدخلة ورفضها إذا لم تكن القيمة المطلوبة. هناك عدة طرق لتحقيق ذلك، وإليك كيف يمكن القيام بذلك:

    1. افتح ملف الـ VBA في Excel بالضغط على `Alt + F11`.
    2. اختر ورقة العمل التي تريد تطبيق القاعدة عليها من الشريط الجانبي في VBA.
    3. انقر مرتين على ورقة العمل لتفتح محرر الـ VBA لها.
    4. اختر `Worksheet` من القائمة المنسدلة في الأعلى ثم اختر `Change` من القائمة المنسدلة الثانية.
    5. قم بإضافة الكود التالي:


    Private Sub Worksheet_Change(ByVal Target As Range)
        If Not Intersect(Target, Me.Range("E1")) Is Nothing Then
            If Target.Value <> "=SUM(A1:D1)" Then
                Application.EnableEvents = False
                Me.Range("E1").Value = "=SUM(A1:D1)"
                Application.EnableEvents = True
                MsgBox "Only the SUM function is allowed in cell E1.", vbExclamation, "Invalid Input"
            End If
        End If
    End Sub
     

    هذا الكود يتحقق من أن القيمة المدخلة في الخلية E1 هي الدالة SUM فقط، وإذا كانت غير ذلك، فسيقوم بإعادة ضبط القيمة إلى الدالة SUM وعرض رسالة تنبيه.

    • Thanks 1
×
×
  • اضف...

Important Information