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

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

قام بنشر (معدل)

السلام عليكم ورحمة الله وبركاته

الشكر الجزيل لـ الاخ الكريم حسام عيسى

الشكر الجزيل لـ الاستاذ / طارق محمود

الشكر الجزيل لأعضاء المنتدى والقائمين عليه

 

حقا  لو  لا جهد الاخ حسام عيسى - لما توصلت لهذا العمل

حقا لو لا هذا المنتدى لما توصلت لهذا العمل

 

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

أســال الله العلى القدير أن تتواصل ولا تنقطع

 

وهو عبارة عن يوميات مساعدة - بالطريقة الفرنسية - هى معقدة بس أنا بعشقها وكنت بشتغل عليها يدوى من 10 سنوات

 

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

 

 حيث أنه يتم تسجيل حركات البنوك ويتم توجهيها فى يومية البنوك ـ ليتم ترحيلها قاعدة البيانات

 
 حيث أنه يتم تسجيل قيود التسويات  يتم توجهيها فى يومية التسويات ـ ليتم ترحيلها قاعدة البيانات
 
 حيث أنه يتم تسجيل فواتير البيع  موضحا بها مندوب البيع والمخزن المنصرف منه لأنها ستؤثر على أرصدة المخازن  ويتم  ترحيلها فى يومية المبيعات - ويتم اعداد القيد تلقائيا ويتم ترحيله الى قاعدة البيانات
 
 حيث أنه يتم تسجيل فواتير الشراء موضحا بها مسؤل الشراء والمخزن الذى استلمها لأنها ستؤثر على أرصدة المخازن  ويتم  ترحيلها فى يومية المشتريات - ويتم اعداد القيد تلقائيا ويتم ترحيله الى قاعدة البيانات
 
ومن قاعدة البيانات يتم اعداد ميزان مراجعة بالمجاميع والارصدة- وكذلك الموازين الفرعية - والاساتذة المساعدة - أنا فعلا بأعملهم من خلال الدالة Sumifs  - من غير الاكواد
 
لكنه ينقصنى بعض الامور
 

الطلب الاول :  يوجد شيت بأسم ( أستاذ مساعد ) عايز استدعى بيانات من قاعدة البيانات من خلال عدة شروط مثلا البيانات بين تاريخين - مع اسم الحساب مع مركز التكلفة - 

وذلك طبقا للشيت المرفق

 

جزاكم الله خيرا

يوميات فرنسية.rar

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

تفضل اخى الحبيب

المرفق  به طلبك

تقبل تحياتى

 

 

اخى حسام عيسى

جزاك الله خيرا وزادك علمك

واشكر على استجابتك السريعة

 

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

لكن يوجد ملحوظة صغيرة وهى أن التاريخ لا يرحل معى الاستاذ المساعد

 

تحياتى وشكرى وبالغ تقديرى :wow: 

قام بنشر

اخى الكريم قم بتعديل هذا السطر من الكود

                 Cells(r + 8, "b").Resize(1, 5).Value = .Cells(i, "c").Resize(1, 5).Value

الى

                 Cells(r + 8, "a").Resize(1, 6).Value = .Cells(i, "b").Resize(1, 6).Value

ان شاء الله بالقريب يتم الشرح

تقبل تحياتى

المرفق بعد التعديل

يوميات فرنسية.zip

  • Like 1
قام بنشر (معدل)

اخى الكريم قم بتعديل هذا السطر من الكود

                 Cells(r + 8, "b").Resize(1, 5).Value = .Cells(i, "c").Resize(1, 5).Value

الى

                 Cells(r + 8, "a").Resize(1, 6).Value = .Cells(i, "b").Resize(1, 6).Value

ان شاء الله بالقريب يتم الشرح

تقبل تحياتى

المرفق بعد التعديل

 

بارك الله فيك استاذنا الصقر

 

لكن ممكن تشرح لنا هذا الجزء من الكود

 

 If mo = CStr(.Cells(i, "i")) And mn = CStr(.Cells(i, "j")) And mm = CStr(.Cells(i, "k")) Then

       Select Case .Cells(i, "b").Value2

                Case d1 To d2

                r = r + 1

                 Cells(r + 8, "a").Resize(1, 6).Value = .Cells(i, "b").Resize(1, 6).Value

               Cells(r + 8, "j").Resize(1, 3).Value = .Cells(i, "k").Resize(1, 3).Value

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

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

Sub كشف_حساب()
اول شئ يقوم الكود باختبار الخلية D4 , D5  هل بها ارقام حسابات ام لا لو وجد اى منهم فارغه يعطى رساله ويخرج من الكود وميكملش ينهى الكود
If [d4] = "" Or [d5] = "" Then MsgBox "الرجاء اختيار اسم الحساب الرئيسيى والفرعى": Exit Sub
  فى حاله وجود حسابات بالخلية D4, D5  ينتقل الكود الى السطر الثانى وهو اختبار الخلية F4, f5  وهما الخاصيين بالتاريخ الممطلوب لو وجد الكود احدى هاتين الخليتين فارغه هيخرج من الكود ومييكملش
If [f4] = "" Or [f5] = "" Then MsgBox "الرجاء اختيار الفترة المطلوبه": Exit Sub
فى حال نجاح الاختبارين ينتقل الكود ليكمل الباقى وهو 

هنا تعريف  3 متغيرات من نوع string وتم تسميتها Mo , Mn , MM    يمكن الاستعانه باى احرف انت تح'هنا بس اهم شئ انك تستخدمها بالكود فيما بعد طبقا لما قمت بتسميتة
Dim mo As String
Dim mn As String
Dim mm As String
هنا تعريف 2 متغير من نوع Long وتم تسميتهم lr , i
Dim Lr As Long, i As Long
هنا تعريف متغير من نوع Integer وتم تسميته r 
Dim r As Integer
هنا تعريف 2 متغير من نوع Double وتم تسميتهم d1, d2 
Dim d1 As Double, d2 As Double
بعد ما قمنا بتعريف المتغيرات نذكر للكود بماذا تشير هذه المتغيرات 
هنا عرفنا ان المتغير Mo بانه القيمة او النص بالخلية D4 وهو الحساب الرئيسى
mo = Range("d4").Value
هنا عرفنا ان المتغير Mn بانه القيمة او النص بالخلية D5 وهو الحساب الفرعى
mn = Range("d5").Value
هنا عرفنا ان المتغير Mm بانه القيمة او النص بالخلية g5 وهو مركز التكلفة
mm = Range("g5").Value
هنا عرفنا ان المتغير d1 بانه القيمة او النص بالخلية f4 وهوتاريخ البدايه
d1 = Range("f4").Value2
'هنا عرفنا ان المتغير d2 بانه القيمة او النص بالخلية f5 وهوتاريخ النهاية
d2 = Range("f5").Value2
' فى هذا السطر قمنا بمسح محتوى الخلايا الذى يتم استدعاء البيانات بها وتجهيزها لاستقبال بيانات جديده
Range("a9:l100000").ClearContents
'هنا تم وضع معادله فى الخلية g9  وهى عبارة عن الخلية e9-f9
[g9] = "=RC[-2]-RC[-1]"
هنا وضع تثبيت الشاشة وعدم اهتزازهاعند عمل الكود 
Application.ScreenUpdating = False
هنا بقول للكود انظر الى شيت 1 وهو قاعدة البيانات 
With Sheet1
   هنا تعريف اخر خلية بها بيانات فى عمود I بشيت قاعدة البيانات
 Lr = .Cells(.Rows.Count, "i").End(xlUp).Row
 هنا عمل حلقة تكرارية تبدأ من الصف 1008 الى اخر صف به بيانات من العمود I 
  For i = 1008 To Lr
نقوم باختبار mo التى تشير الى الحساب الرئيسى هل هى موجود بالعمود I +
 mn التى تشير الى الحساب الفرعى هل هى موجود بالعمود j 
 mm التى تشير الى مركز التكلفة  هل هى موجود بالعمود k 
ونلاحظ اننا استخدمنا AND اى لابد من تحقق الثلاث شروط 
       If mo = CStr(.Cells(i, "i")) And mn = CStr(.Cells(i, "j")) And mm = CStr(.Cells(i, "k")) Then
      هنا تحديد الصفوف من خلال Select Case الصفوف التى تم العثور عليها بالشرط الاول
 Select Case .Cells(i, "b").Value2
             هنا وضع معيار Case وهو من تاريخ الى تاريخ
   Case d1 To d2
هنا يقوم الكود بجلب البيانات المطابقه للشروط ووضعها بالتقرير بدأ من الصف 9
       
         r = r + 1
الخاصية Resize تعنى جلب صف واحد وعدد 5 اعمده بدأ من عمود a = عدد واحد صف و5 اعمده من شيت قاعدة البيانات بدأ من العمود b // وكذالك السطر التالى ولكن باختلاف عدد الاعمده 3 وموضع البداية
                 Cells(r + 8, "a").Resize(1, 5).Value = .Cells(i, "b").Resize(1, 5).Value
               Cells(r + 8, "j").Resize(1, 3).Value = .Cells(i, "k").Resize(1, 3).Value

              
   Cells(r + 9, "g").Value = "=R[-1]C+RC[-2]-RC[-1]"
      'اغلاق    Select  
 End Select
 'اغلاق    If
End If
'اغلاق   for ب Next
Next
'اغلاق    With
End With
'ارجاع خاصية تثبيت الشاشة بعد الانتهاء من الكود
Application.ScreenUpdating = True
'نهاية الكود
End Sub

قام بنشر

الاخ الفاضل حســام عيسى

جزالك الله خيرا

اللهمّ إني أسألك لعبدك حسام عيسى زيادة في الدّين، وبركة في العمر وصحّة في الجسم، وسعةً في الرزق وتوبةً قبل الموت، وشهادةً عند الموت، ومغفرةً بعد الموت، وعفواً عند الحساب، وأماناً من العذاب،

اخى الكريم أبعد الله عنكم شرّ النّفوس، وحفظكم باسمه السّلام القدّوس، وجعل رزقكم مباركاً غير محبوس، وجعل منزلتكم عنده جنّة الفردوس

أاااااااااااااامين

تحياتى واحترامى وتقديرى لشخصكم الكريم

  • Like 1
قام بنشر

اخى الحبيب

سيف الدين حسام

بارك الله فيك ولك بمثل ما دعوة به وجزاكم الله خيرا 

ما يقوم به الاساتذه هنا بالمنتدى هو زكاة عن علمهم -  فزكاة العلم نشره

احبك فى الله

:fff: تقبل منى وافر الاحترام والتقدير :fff: 

قام بنشر

الاخوة الكرم

اعزكم الله

اليكم الطلب الثانى

وهو عبارة عن تحليل حساب رئيسى ( أب ) مثلا حساب العملاء يتم ادارج جميع ارصدة حسابات الاستاذ المساعد للعملاء

وذلك موضح تفصيلا داخل الشيت أرجوا فتحه ومشاهدته

 

تحياتى

 

فرنسية2.rar

قام بنشر
 
الاخ الفاضل حسام عيسى
تم عمل جزء من المطلوب وهو
ـــــــــــــــــــــــــــــــــ
عند الضغط على زر استدعاء البيانات يتم ادارج جميع الحسابات الفرعية من الحساب الاب الذى تم اختياره فى الخلية D5 وذلك فى العمود C 
بدءا من الخلية C8 لاحظ ذلك
ــــــــــــــــــــــــــ
 لكن اريد الغاء معادلة Sumifs  وأستبدلها بكود ترحيل بشروط مثل التاريخ وأسم الحساب الفرعى معا  لأن Sumifs لا تاخذ فى الاعتبار فرق بين تاريخين ولكن تأخد بتاريخ ثابت فقط
 
واليكم الموفق موضح به ذلك بالتفصيل

فرنسية.rar

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