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

عمل كشف حساب بتاريخ بداية وتاريخ نهاية


الردود الموصى بها

السلام عليكم
ممكن طريقه عمل كشف حساب مثل التي عملها الاخ جمال عبد السميع حفظه الله
للاخ
alamer111982

كشف حساب3

http://www.gulfup.com/?J2Cj83

وياريت لو فيه شرح ولو بسيط فيديو او صور او كتابي , لانه هذا نموذج وابغي اطبقة في برنامج كبير شوية

ملفي اسمه

(عمل كشف حساب بتاريخ بداية وتاريخ نهاية)

التحميل

http://www.gulfup.com/?i3rpZr

او  شاهد الموضوع

http://www.officena.net/ib/index.php?showtopic=48224#entry291887

كشف حساب3.rar

عمل كشف حساب بتاريخ بداية وتاريخ نهاية.rar

رابط هذا التعليق
شارك

أليك أخى ماطلبت

مع ملاحظة أن المعادلة الأساسية فى عمود رقم القيد ونظرا للأننى أستخدم ( office 2003 ) أستخدمت هذه المعادلة

=IF(ISERROR(INDEX(Registr_No.;SMALL(IF(($B$1=مدين)+($B$1=دائن)*(date>=$B$2)*(date<=$B$3);ROW(Registr_No.)-MIN(ROW(Registr_No.))+1);ROW(1:1))));"";INDEX(Registr_No.;SMALL(IF(($B$1=مدين)+($B$1=دائن)*(date>=$B$2)*(date<=$B$3);ROW(Registr_No.)-MIN(ROW(Registr_No.))+1);ROW(1:1))))

ولكن نظرا حضرتك تستخدم ( office) أعلى من مما أستخدمة فمعادلتة أقصر وأفضل وهى الموجودة أسفل

وهذه المعادلة فقط ستقوم بنسخها ووضعها فى عمود رقم القيد وبعد كتابتها ضع مؤشر الكتابة فى أخر المعادلة وقم بالضغط على( ctrl+shift+enter)

لأنها معادلة صفيف أو يمكنك ترك المعادلة الموجودة فى المرفق لأنها تعمل على الأصدارات الأعلى أيضا

=IFERROR(INDEX(Registr_No.;SMALL(IF(($B$1=مدين)+($B$1=دائن)*(date>=$B$2)*(date<=$B$3);ROW(Registr_No.)-MIN(ROW(Registr_No.))+1);ROW(1:1)));"")

كشف حساب4.rar

تم تعديل بواسطه جمال عبد السميع
رابط هذا التعليق
شارك

 

أليك أخى ماطلبت

مع ملاحظة أن المعادلة الأساسية فى عمود رقم القيد ونظرا للأننى أستخدم ( office 2003 ) أستخدمت هذه المعادلة

=IF(ISERROR(INDEX(Registr_No.;SMALL(IF(($B$1=مدين)+($B$1=دائن)*(date>=$B$2)*(date<=$B$3);ROW(Registr_No.)-MIN(ROW(Registr_No.))+1);ROW(1:1))));"";INDEX(Registr_No.;SMALL(IF(($B$1=مدين)+($B$1=دائن)*(date>=$B$2)*(date<=$B$3);ROW(Registr_No.)-MIN(ROW(Registr_No.))+1);ROW(1:1))))

ولكن نظرا حضرتك تستخدم ( office) أعلى من مما أستخدمة فمعادلتة أقصر وأفضل وهى الموجودة أسفل

وهذه المعادلة فقط ستقوم بنسخها ووضعها فى عمود رقم القيد وبعد كتابتها ضع مؤشر الكتابة فى أخر المعادلة وقم بالضغط على( ctrl+shift+enter)

لأنها معادلة صفيف أو يمكنك ترك المعادلة الموجودة فى المرفق لأنها تعمل على الأصدارات الأعلى أيضا

=IFERROR(INDEX(Registr_No.;SMALL(IF(($B$1=مدين)+($B$1=دائن)*(date>=$B$2)*(date<=$B$3);ROW(Registr_No.)-MIN(ROW(Registr_No.))+1);ROW(1:1)));"")

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

يبدو انه فيه مشكلة في عمود التاريخ لايظهر بشكل صحيح

ويا ريت اخي لو تشرح ادوال ولو بشكل بسط لانه انا عايز اطبقها في ملف اخر ومتشعب شويه

رابط هذا التعليق
شارك

أخى الحبيب ( محمود )

فعلا كان هناك خطأ فى عدد الأعمدة التى يجب تخطيها لجلب التاريخ وأليك المرفق بعد التعديل لأن العمود ( e ) إللى حضرتك تاركة كفراغ كان سبب المشكلة وتم التصحيح

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

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

حساب ( البنك ) ستجدة مدين مرة ومرة ( دائن ) ونظرا لتشابه الشرط كان لابد ووفقا للعديد من المعادلات سيتم جلب قيمة منهم إما أكتب المدين أو الدائن وستكون فى هذه الحالة المعادلة خاطئة

لذلك كان لابد من تعدد الشروط لجلب كل إحتمالات الشرط وخاصا شرط الحساب

أما الأهم أن المعادلة معادلة ( صفيف ) كما أوضحت لحضرتك فى السابق أى لابد من الضغط على ( ctrl+shift+enter ) كى تقوم معادلاتها بشكل صحيح

أما المعادلة الثانية:

وهى معادلة ( index+mutch ) فهى معادلة بحث عادية تعتمد فى شرطها على رقم ( القيد ) التى تم جلبة بمعادلة الصفيف

تم تسمية النطاقات المطلوبة مثل (Registr_No.) وهذا يشير إلى مدى رقم القيد من الخلية (E6:E391 ) وهكذا لباقى النطاقات كالمدين والدائن والتاريخ وال(TABL ) وهو يشير إلى كامل الجدول فى شيت اليومية

أما إذا أردت نقلها إلى مرفق أخر أعد التسمية لهذه النطاقات وفقا للوضع الجديد

كذلك إذا أردت زيادة مدى النطاق إذهب إل النطاق المسمى وقم بزيادتة سيتغير فى المعادلة دون عمل نطاق جديد بمعن ( لو أردنا زيادة نطاق رقم القيد الذى نطاقة من(E6:E391 )إلى

نطاق يغطى مدى أكبر ماعلينا إلا إلى الذهاب للمدى وكتابتة كالأتى (E6:E1000 ) أى تم زياد الخلية الأخيرة بأصبح النطاق يغطى مدى أكبر دون تغيير فى المعادلة

والأن إلى المرفق بعد التصحيح

كشف حساب5.rar

تم تعديل بواسطه جمال عبد السميع
رابط هذا التعليق
شارك

السلام عليكم

 

اذا اردتها بالكود


Sub Macro1()
Dim iNm As String
Dim Lr As Long, i As Long
Dim R As Integer
Dim d1 As Double, d2 As Double
''''''''''''''''
iNm = Range("B1").Value
d1 = Range("B2").Value2
d2 = Range("B3").Value2
''''''''''''''''
Range("D6:K35").ClearContents
''''''''''''''''
Application.ScreenUpdating = False
With ورقة1
    Lr = .Cells(.Rows.Count, "C").End(xlUp).Row
    For i = 6 To Lr
        If iNm = CStr(.Cells(i, "C")) Or iNm = CStr(.Cells(i, "D")) Then
            Select Case .Cells(i, "F").Value2
                Case d1 To d2
                R = R + 1
                Cells(R + 5, "D").Value = R
                Cells(R + 5, "F").Resize(1, 4).Value = .Cells(i, "F").Resize(1, 4).Value
                If iNm = CStr(.Cells(i, "C")) Then
                    Cells(R + 5, "J").Value = .Cells(i, "J").Value
                Else
                    Cells(R + 5, "K").Value = .Cells(i, "K").Value
                End If
            End Select
        End If
    Next
End With
Application.ScreenUpdating = True
End Sub

مع الشكر لاخي جمال

ودمتم في حفظ الله

عمل كشف حساب بتاريخ بداية وتاريخ نهاية.rar

  • Like 1
رابط هذا التعليق
شارك

السلام عليكم

 

اذا اردتها بالكود

Sub Macro1()
Dim iNm As String
Dim Lr As Long, i As Long
Dim R As Integer
Dim d1 As Double, d2 As Double
''''''''''''''''
iNm = Range("B1").Value
d1 = Range("B2").Value2
d2 = Range("B3").Value2
''''''''''''''''
Range("D6:K35").ClearContents
''''''''''''''''
Application.ScreenUpdating = False
With ورقة1
    Lr = .Cells(.Rows.Count, "C").End(xlUp).Row
    For i = 6 To Lr
        If iNm = CStr(.Cells(i, "C")) Or iNm = CStr(.Cells(i, "D")) Then
            Select Case .Cells(i, "F").Value2
                Case d1 To d2
                R = R + 1
                Cells(R + 5, "D").Value = R
                Cells(R + 5, "F").Resize(1, 4).Value = .Cells(i, "F").Resize(1, 4).Value
                If iNm = CStr(.Cells(i, "C")) Then
                    Cells(R + 5, "J").Value = .Cells(i, "J").Value
                Else
                    Cells(R + 5, "K").Value = .Cells(i, "K").Value
                End If
            End Select
        End If
    Next
End With
Application.ScreenUpdating = True
End Sub

مع الشكر لاخي جمال

ودمتم في حفظ الله

يعطيكم العافية

ممكن شرح للكود

لانه  زي ماذكرت من قبل ابغي اطبقه على ملف اخر

 

ابغي اعرف اي الاسطر التي تخص صفحة اليومية

واي سطر يخص صفحة كشف الحساب

تم تعديل بواسطه محمود عبدالعزيز
رابط هذا التعليق
شارك

السلام عليكم

 

هذا شرح للكود


Sub Macro1()
Dim iNm As String
Dim Lr As Long, i As Long
Dim R As Integer
Dim d1 As Double, d2 As Double
''''''''''''''''
'  iNm اسم الحساب يتم حفظه في المتغير
iNm = Range("B1").Value
'  d1 التاريخ الاول يتم حفظه في المتغير

d1 = Range("B2").Value2
'  d2 التاريخ الثاني يتم حفظه في المتغير

d2 = Range("B3").Value2
''''''''''''''''
'  مسح كشف الحساب
Range("D6:K35").ClearContents
''''''''''''''''
'  تعطيل اهتزاز الشاشة

Application.ScreenUpdating = False
With ورقة1
'  اخر صف للعمود 3 في  اليومية
    Lr = .Cells(.Rows.Count, "C").End(xlUp).Row
    '  سلسلة تبدا من الصف 6 الى اخر صف في اليومية

    For i = 6 To Lr
    '  مقارنة اسم الحساب في العمود 3 والعمود 4 من  اليومية

        If iNm = CStr(.Cells(i, "C")) Or iNm = CStr(.Cells(i, "D")) Then
         '  مقارنة التاريخ في العمود 6 ما بين الفترتين
   
            Select Case .Cells(i, "F").Value2
                Case d1 To d2
                R = R + 1
                '  نقل الترقيم في العمود 4 من الكشف
                Cells(R + 5, "D").Value = R
                  '  نقل 4 اعمدة من اليومية  الى الكشف ابتداءا من العمود 6

                Cells(R + 5, "F").Resize(1, 4).Value = .Cells(i, "F").Resize(1, 4).Value
                '  يتم مقارنة اسم الحساب مع العمود 3 في  اليومية

                If iNm = CStr(.Cells(i, "C")) Then
                '  اذا كان صح  ينقل القيمة في  العمود 10 قيمة المدين

                    Cells(R + 5, "J").Value = .Cells(i, "J").Value
                Else
                '  اذا كان خطا  ينقل القيمة في  العمود 11 قيمة الدائن

                    Cells(R + 5, "K").Value = .Cells(i, "K").Value
                End If
            End Select
        End If
    Next
End With
'  تفعيل اهتزاز الشاشة

Application.ScreenUpdating = True
End Sub
رابط هذا التعليق
شارك

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.

زائر
اضف رد علي هذا الموضوع....

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

  • تصفح هذا الموضوع مؤخراً   0 اعضاء متواجدين الان

    • لايوجد اعضاء مسجلون يتصفحون هذه الصفحه
×
×
  • اضف...

Important Information