محمود عبدالعزيز قام بنشر يوليو 18, 2013 قام بنشر يوليو 18, 2013 السلام عليكم ممكن طريقه عمل كشف حساب مثل التي عملها الاخ جمال عبد السميع حفظه الله للاخ alamer111982 كشف حساب3http://www.gulfup.com/?J2Cj83 وياريت لو فيه شرح ولو بسيط فيديو او صور او كتابي , لانه هذا نموذج وابغي اطبقة في برنامج كبير شوية ملفي اسمه (عمل كشف حساب بتاريخ بداية وتاريخ نهاية) التحميلhttp://www.gulfup.com/?i3rpZr او شاهد الموضوعhttp://www.officena.net/ib/index.php?showtopic=48224#entry291887 كشف حساب3.rar عمل كشف حساب بتاريخ بداية وتاريخ نهاية.rar
جمال عبد السميع قام بنشر يوليو 18, 2013 قام بنشر يوليو 18, 2013 (معدل) أليك أخى ماطلبت مع ملاحظة أن المعادلة الأساسية فى عمود رقم القيد ونظرا للأننى أستخدم ( 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 تم تعديل يوليو 18, 2013 بواسطه جمال عبد السميع
محمود عبدالعزيز قام بنشر يوليو 18, 2013 الكاتب قام بنشر يوليو 18, 2013 أليك أخى ماطلبت مع ملاحظة أن المعادلة الأساسية فى عمود رقم القيد ونظرا للأننى أستخدم ( 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)));"") اولا بارك الله فيك اخي يبدو انه فيه مشكلة في عمود التاريخ لايظهر بشكل صحيح ويا ريت اخي لو تشرح ادوال ولو بشكل بسط لانه انا عايز اطبقها في ملف اخر ومتشعب شويه
جمال عبد السميع قام بنشر يوليو 18, 2013 قام بنشر يوليو 18, 2013 (معدل) أخى الحبيب ( محمود ) فعلا كان هناك خطأ فى عدد الأعمدة التى يجب تخطيها لجلب التاريخ وأليك المرفق بعد التعديل لأن العمود ( e ) إللى حضرتك تاركة كفراغ كان سبب المشكلة وتم التصحيح أما عن شرح المعادلات فهما فى منتهى البساطة معادلة أساسية وهى ماقمت بكتابتها لك لأنها هى الأساس فى جلب رقم القيد بنائا على الشروط إللى حضرتك وضعها ونظرا لأن الشروط تقوم بجلب عناصر متداخلة ومتشابهة كان هنا مصدر الصعوبة على سبيل المثال ستجد حضرتك حساب ( البنك ) ستجدة مدين مرة ومرة ( دائن ) ونظرا لتشابه الشرط كان لابد ووفقا للعديد من المعادلات سيتم جلب قيمة منهم إما أكتب المدين أو الدائن وستكون فى هذه الحالة المعادلة خاطئة لذلك كان لابد من تعدد الشروط لجلب كل إحتمالات الشرط وخاصا شرط الحساب أما الأهم أن المعادلة معادلة ( صفيف ) كما أوضحت لحضرتك فى السابق أى لابد من الضغط على ( ctrl+shift+enter ) كى تقوم معادلاتها بشكل صحيح أما المعادلة الثانية: وهى معادلة ( index+mutch ) فهى معادلة بحث عادية تعتمد فى شرطها على رقم ( القيد ) التى تم جلبة بمعادلة الصفيف تم تسمية النطاقات المطلوبة مثل (Registr_No.) وهذا يشير إلى مدى رقم القيد من الخلية (E6:E391 ) وهكذا لباقى النطاقات كالمدين والدائن والتاريخ وال(TABL ) وهو يشير إلى كامل الجدول فى شيت اليومية أما إذا أردت نقلها إلى مرفق أخر أعد التسمية لهذه النطاقات وفقا للوضع الجديد كذلك إذا أردت زيادة مدى النطاق إذهب إل النطاق المسمى وقم بزيادتة سيتغير فى المعادلة دون عمل نطاق جديد بمعن ( لو أردنا زيادة نطاق رقم القيد الذى نطاقة من(E6:E391 )إلى نطاق يغطى مدى أكبر ماعلينا إلا إلى الذهاب للمدى وكتابتة كالأتى (E6:E1000 ) أى تم زياد الخلية الأخيرة بأصبح النطاق يغطى مدى أكبر دون تغيير فى المعادلة والأن إلى المرفق بعد التصحيح كشف حساب5.rar تم تعديل يوليو 18, 2013 بواسطه جمال عبد السميع
عبدالله باقشير قام بنشر يوليو 18, 2013 قام بنشر يوليو 18, 2013 السلام عليكم اذا اردتها بالكود 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 1
محمود عبدالعزيز قام بنشر يوليو 19, 2013 الكاتب قام بنشر يوليو 19, 2013 (معدل) السلام عليكم اذا اردتها بالكود 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 مع الشكر لاخي جمال ودمتم في حفظ الله يعطيكم العافية ممكن شرح للكود لانه زي ماذكرت من قبل ابغي اطبقه على ملف اخر ابغي اعرف اي الاسطر التي تخص صفحة اليومية واي سطر يخص صفحة كشف الحساب تم تعديل يوليو 19, 2013 بواسطه محمود عبدالعزيز
عبدالله باقشير قام بنشر يوليو 20, 2013 قام بنشر يوليو 20, 2013 السلام عليكم هذا شرح للكود 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
محمود عبدالعزيز قام بنشر يوليو 20, 2013 الكاتب قام بنشر يوليو 20, 2013 يسلمو الله يعطيك الف عافية اخي جعله الله في ميزان حسناتك ان شاء الله
الردود الموصى بها
Join the conversation
You can post now and register later. If you have an account, sign in now to post with your account.