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

كود استدعاء بيانات لفترة من .. الى


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

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

احبائى فى الله

تحية طيبة وبعد

برجاء مساعدتى فى ايجاد كود خاص باستدعاء بيانات من ورقة اكسيل بحيث انى اكتب مثلا اريد البيانات كلها من الفترة 1-9-2012 الى 20-9-2012 فيقوم باحضارها ... وعند تحديد اى فترة يقوم باستدعائهااا

وهل يمكن ان استدعى بيانات من اكثر من ورقة ... مثلا اذا كان ورقة رقم 1 هى خاصة بشهر 9 وورقة رقم 2 خاصة بشهر 10 فاذا اردت استدعاء فترة من 20-9-2012 الى 20-10-2012 هل يمكن تنفيذ ذلك ..

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

Book1vv.rar

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

أخي العزيز mosha14

شرحك للمطلوب واضح جداً وهو إن شاء الله ممكن

وإخواننا خبراء الأكواد لن يقصروا معك إن شاء الله

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

فاقترح عليك عمل ملف آخر تضع فيه عدة أوراق وتسميها بأسماء الأشهر المطلوب استدعاء بياناتها وتضع فيها بيانات معينة كمثال

ثم تحدد الورقة المطلوب استدعاء البيانات إليها وفترة الإستدعاء من وإلى

وتحدد البيانات المطلوب استدعائها بالضبط من تلك الأشهر

والعفو

تقبل تحياتي

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

أخي العزيز mosha14

شرحك للمطلوب واضح جداً وهو إن شاء الله ممكن

وإخواننا خبراء الأكواد لن يقصروا معك إن شاء الله

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

فاقترح عليك عمل ملف آخر تضع فيه عدة أوراق وتسميها بأسماء الأشهر المطلوب استدعاء بياناتها وتضع فيها بيانات معينة كمثال

ثم تحدد الورقة المطلوب استدعاء البيانات إليها وفترة الإستدعاء من وإلى

وتحدد البيانات المطلوب استدعائها بالضبط من تلك الأشهر

والعفو

تقبل تحياتي

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

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

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

بارك الله بالأستاذ الفاضل أبو حنين

وهنا كود لأكثر من ورقة حسب فترة


Sub AL_KHALEDI()

L = Cells(Rows.Count, "C").End(xlUp).Row

Set Rn1 = Range(Cells(4, "C"), Cells(L, "C"))

Rn1.Offset(0, 1).ClearContents

For r = 1 To Rn1.Rows.Count

x = 0

For d = 0 To [D3] - [E3]

	 Set Rn2 = Sheets("" & "شهر " & Month([E3] + d))

	 L = Rn2.Cells(Rows.Count, "C").End(xlUp).Row

	 Set Rn2 = Range(Rn2.Cells(5, "C"), Rn2.Cells(L, "C"))

	 m = Application.Match(Rn1(r, 1), Rn2, 0)

	 If Not IsError(m) Then

		 x = x + Rn2(m, 1 + Day([E3] + d))

	 End If

Next d

Rn1(r, 2) = x

Next r

Set Rn1 = Nothing: Set Rn2 = Nothing

End Sub

استدعاء بيانات لفترة.rar

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

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

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

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

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

لا يعتمد الكود عند تجميع اوراق الشهر على التاريخ في الصف 3 , لكن الكود يعتبر اليوم الاول للشهر في العمود D واليوم الثاني في العمود E واليوم الثالث في العمود F وهكذا

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

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

  • 2 weeks later...

جرب الكود التالي على اكسل 2007 فما فوق


Sub AL_KHALEDI()

With Sheets("البيانات")

Set Rn = Range(.Cells(4, 2), .Cells(Rows.Count, 2).End(xlUp))

Set Rn = Union(Rn, Range(.Cells(4, 12), .Cells(Rows.Count, 12).End(xlUp)))

End With

For A = 1 To 2

With Rn.Areas(A)

c1 = IIf(A = 1, 0, -1): c2 = IIf(A = 1, 0, 5)

For r = 0 To 1

	 Y = IIf(r = 0, "س", "م")

	 Cells(14 + r, 3 + c2) = Application.CountIfs( _

	 .Columns(1), Y, _

	 .Columns(4 + c1), ">=" & [A9] * 1, _

	 .Columns(4 + c1), "<=" & [B9] * 1, _

	 .Columns(5 + c1), "*")

	 For C = 0 To IIf(A = 1, 4, 5) - 1

		 Cells(14 + r, 4 + C + c2) = Application.SumIfs( _

		 .Columns(6 + C + c1), _

		 .Columns(1), Y, _

		 .Columns(4 + c1), ">=" & [A9] * 1, _

		 .Columns(4 + c1), "<=" & [B9] * 1)

	 Next C

Next r

End With

Next A

Set Rn = Nothing

End Sub

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

جرب الكود التالي على اكسل 2007 فما فوق


Sub AL_KHALEDI()

With Sheets("البيانات")

Set Rn = Range(.Cells(4, 2), .Cells(Rows.Count, 2).End(xlUp))

Set Rn = Union(Rn, Range(.Cells(4, 12), .Cells(Rows.Count, 12).End(xlUp)))

End With

For A = 1 To 2

With Rn.Areas(A)

c1 = IIf(A = 1, 0, -1): c2 = IIf(A = 1, 0, 5)

For r = 0 To 1

	 Y = IIf(r = 0, "س", "م")

	 Cells(14 + r, 3 + c2) = Application.CountIfs( _

	 .Columns(1), Y, _

	 .Columns(4 + c1), ">=" & [A9] * 1, _

	 .Columns(4 + c1), "<=" & [B9] * 1, _

	 .Columns(5 + c1), "*")

	 For C = 0 To IIf(A = 1, 4, 5) - 1

		 Cells(14 + r, 4 + C + c2) = Application.SumIfs( _

		 .Columns(6 + C + c1), _

		 .Columns(1), Y, _

		 .Columns(4 + c1), ">=" & [A9] * 1, _

		 .Columns(4 + c1), "<=" & [B9] * 1)

	 Next C

Next r

End With

Next A

Set Rn = Nothing

End Sub

جرب الكود التالي على اكسل 2007 فما فوق

Sub AL_KHALEDI()

With Sheets("البيانات")

Set Rn = Range(.Cells(4, 2), .Cells(Rows.Count, 2).End(xlUp))

Set Rn = Union(Rn, Range(.Cells(4, 12), .Cells(Rows.Count, 12).End(xlUp)))

End With

For A = 1 To 2

With Rn.Areas(A)

c1 = IIf(A = 1, 0, -1): c2 = IIf(A = 1, 0, 5)

For r = 0 To 1

	 Y = IIf(r = 0, "س", "م")

	 Cells(14 + r, 3 + c2) = Application.CountIfs( _

	 .Columns(1), Y, _

	 .Columns(4 + c1), ">=" & [A9] * 1, _

	 .Columns(4 + c1), "<=" & [B9] * 1, _

	 .Columns(5 + c1), "*")

	 For C = 0 To IIf(A = 1, 4, 5) - 1

		 Cells(14 + r, 4 + C + c2) = Application.SumIfs( _

		 .Columns(6 + C + c1), _

		 .Columns(1), Y, _

		 .Columns(4 + c1), ">=" & [A9] * 1, _

		 .Columns(4 + c1), "<=" & [B9] * 1)

	 Next C

Next r

End With

Next A

Set Rn = Nothing

End Sub

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

ارجو التكرم بتعديله ليتلام مع جدول النتائج

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

اخي الكريم

الكود يقوم بجمع القادمين في خلايا القادمين والمغادرين في خلايا المغادرين ولكل دولة على حدى

مرفق الكود مع الملف

في حال كانت النتائج غير صحيحة ارجوا توضيح المطلوب بدقة مع تحديد النتيجة المفترضة

في امان الله

ST2.rar

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

تم تجربة الكود وكان رائعاً كصانعة

سلمت يداك وجزاك الله الف خير. بالنسبة للعمود " C " هو عامود زائد ومشوه منظر البرنامج هل يمكنني حذفه .

واخيراً لم يتبقى على اكتمال البرنامج الا

عمل فورم لادخال البيانات و

شاشة دخول متعدد الصلاحيات لعدد 8 مستخدمين

هل يمكنك مساعدتي

مرفق البرنامج مع محاولتي عمل فورم لادخال البيانات ولكن لم اوفق في ذلك

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

ST2 (version 1).rar

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

مرفق تعديل للكود بعد حذف العمود C

اذا كان لك استفسار سارد عليك بعد عودتي من سفر لعدة ايام

وبخصوص : عمل فورم لادخال البيانات و شاشة دخول متعدد الصلاحيات لعدد 8 مستخدمين

لم يسبق لي التعامل مع هذه الاكواد وستجد من الاخوة كل التعاون

في امان الله

ST2 (version 2).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