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

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

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

بسم الله الرحمن الرحيم

السلام عليكم جميعا ورحمة الله ،،

المطلوب : إذا تمت كتابة المبلغ أ و التعديل عليه أو تم مسح المبلغ من صفوف العمود ( A) فإنه

على الفور يتم إدراج التاريخ الحالي في العمود ( C ) مع الساعة والدقائق والثواني تلقائيا .

بحيث يكون كل تاريخ في عمود ( C ) مقابل كل مبلغ من العمود (A) أعتقد أن الفكرة واضحة.

يوجد ملف مرفق لنفس الطلب أرجو التعديل عليه .

ولكم جزيل الشكر مقدما .

أخوكم halwim

____________________________.rar

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

بسم الله الرحمن الرحيم

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

أخي الكريم tameromar

أكثر من رااااائع يأستاذنا الكبير ، وقت سريع و قياسي ومختصر في رد الجواب ، أسأل الله أن يخفف ويختصر وقوفك عند الحساب ويتجاوز عنك وعنا آمين .

تحياتي

قام بنشر

للمعلومية .. نستطيع إختصار العبارة (Date & " " & Time) بالكلمة Now

قام بنشر

بسم الله الرحمن الرحيم

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

الأستاذ ،، تامر ،، شكرا لك سلمت وغنمت

نعم هذا هو المطوب ، لاحظت أن الكود مكرر في الصفحة رقم 1 والصفحة رقم 3 أليس بالإمكان توسيع نطاق عمل كود واحد ليشمل عدة صفحات ؟ مجرد استفسار .

واسمح لي إذا قلت يوجد نقص فني في الكود، وهو عندما ننسخ مبلغ أو عدة أرقام من عمود آخر وليكن من D10:D15 ثم نقوم بلصقها في العمود A في المجال A10:A15 فإنه من المفروض أن تخرج التواريخ تلقائيا في أماكنها مقابل كل خلية تم النسخ الجماعي فيها... لكن للأسف لاتخرج التواريخ .

صحيح أن التاريخ يعمل مع نسخ رقم من خلية واحدة ولصقه في عمود A ولكن مع لصق أكثر من خلية لايعمل .

هذا وألفت الإنتباه إلى أني غير متأكد من أن التاريخ التلقائي هل سيعمل مع أكواد الترحيل فيما لوتم الترحيل إلى العمود A أو مع الماكرو ؟

بمعنى آخر نتمنى أن يتعامل التاريخ التلقائي مع أي مصدر لتدخيل البيانات .

بانتظار إرفاق التعديلات وشكرا .....

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

تحياتي

قام بنشر

بسم الله الرحمن الرحيم

تحياتى للجميع

استاذنا علي السحيب

تحياتى لك

شكرا على المعلومة والمرور

ولزيادة التوضيح للاخوة

الصورة توضح ناتج العبارتين بدون تغير تنسيق الخلايا الخاصة بالناتج اى ( تنسيقهما تنسيق عام )

post-10711-1161069442_thumb.jpg

رمضان كريم

تحياتى لك

الاخ halwim

شاهد المرفق

__________________________________2.rar

قام بنشر

بسم الله الرحمن الرحيم

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

tameromar

أستاذنا الكريم يعجز اللسان عن شكرك ،، نعم هذا هو المطلوب 100% ملاحظة بسيطة :

كنت قد وضعت مكان خروج التواريخ في العمود A من الصفحة الثانية لمجرد طلب مثال أما غرضي الحقيقي ففي عمود آخر ولنفترضه العمود D من الصفحة الثانية لكن مشكلة الكود المعدل الذي في المرفق الأخير هو أنه ليس فيه تعليمة أو شيء يشير إلى إمكانية تغيير مجال ظهور التواريخ في الصفحة الثانية وهذا هو الكود :

Private Sub Worksheet_Change(ByVal Target As Range)
If Not Intersect(Target, Range("A2:A30")) Is Nothing Then
    Sheets("ورقة2").Range(Target.Address) = Date & " " & Time
    Sheets("ورقة2").Cells(31, 1) = Date & " " & Time
End If
End Sub
أرجو إرفاق الكود بعد تغيير مكان ظهور التواريخ بحيث تخرج التواريخ في عمود D من الصفحة رقم 2 أيضا هذا هو أول كود تم إرفاقه في هذا الموضوع وهو الذي يخرج التواريخ في نفس الصفحة المطلوب تعديله بحيث تخرج التواريخ حتى مع النسخ واللصق يعني نريد إضافة التعديل الأخير عليه .
Private Sub Worksheet_Change(ByVal Target As Range)
If Target.Cells.Count > 1 Then Exit Sub
If Not Intersect(Target, Range("A2:A30")) Is Nothing Then
    With Target(1, 3)
        .Value = Date & " " & Time
        .EntireColumn.AutoFit
    End With
    Cells(31, 3) = Date & " " & Time
End If
End Sub

مع بقاء نفس المجال .

أخيرا أود التعليق على :

نعم هذا هو المطوب ، لاحظت أن الكود مكرر في الصفحة رقم 1 والصفحة رقم 3 أليس بالإمكان توسيع نطاق عمل كود واحد ليشمل عدة صفحات ؟

تحياتي

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

بسم الله الرحمن الرحيم

الاخ halwim

تحياتى لك

ماهو اسمك العربى لم استطع معرفتة من خلال (halwim)

شاهد المرفق اخى

بالنسبة للتغير غير المباشر

ليعمل التاريخ عند تغير الخلية نضع الكود فى حدث الصفحة الخاص بالتغير المباشر

لذلك لن يعمل مع اى تغير غير مباشر فى الخلية

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

حسب معلوماتى حتى الان

تحياتى

__________________________________3.rar

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

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

أستاذي العزيز ، لا حرمنا هذا السخاء ، بارك الله فيك وفي جهودك التي بذلت والتي ستبذل ، ،

اسم عضويتي في هذا المنتدى (halwim) تشير بالحرف الأولية إلى هويتي ، وعلى أي حال إن أحببتم مناداتي بالعربي فكنيتي ( أبا أحمد ) وشكرا على اهتمامك أخي تامر .

بالنسبة للمرفق الأخير ما هي الفائدة من وجود modul1 فقد قمت بحذفه ومع ذلك كل شيء تمام والتواريخ تخرج بشكل تلقائي في أماكنها كما هو المطلوب .

و بالنسبة لمشكلة عدم احتساب التغير الغير، مباشر نأمل في حال وجود الحل التعقيب على الموضوع .

كان قصدي من آخر إقتباس في مشاركتي السابقة هو لماذا لا يتم توحيد الكود يعني يكفي كود واحد مزود بمسار الصفحات الأخرى .... بحيث إذا تمت الكتابة في صفحة 3 تخرج التواريخ في صفحة 4 من غير الحاجة لوضع كود في صفحة 3 يعني المفروض يكفي الكود الذي في صفحة رقم1 .

هذا وأتمنى أن تتم إضافة التعديلات الشاملة للصق الجماعي ، على أول ملف مرفق من قبلكم الذي في المشاركة رقم 2

تحياتي

قام بنشر

بسم الله الرحمن الرحيم

اخى ابو احمد

الله الله الله

تحياتى

بالنسبة modul1

قبل اى تعديل اعمل نسخة من الكود فى اى modul وبعد الانتهاء

اقوم بإلغاءها ولكنى نسيت فلا بأس من الغائها

تحياتى

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

بسم الله الرحمن الرحيم

أستاذنا الفاضل شكرا على المرور

و يوجد لي موضوع على الرابط التالي :

http://www.officena.net/ib/index.php?showtopic=14024

أرجو التفضل بالجواب أو التعليق على سؤال رقم 3 السؤال موجود بالمرفقات هناك ، ولو تكرمت بقليل من وقتك الثمين بالرد أيضا على باقي الأسئلة هناك أكون شاكرا .

وجدت هذا الرابط ،وهو للأستاذ محمد طاهر له علاقة بالتاريخ التلقائي أحببت أن أضعه هنا من أجل إثراء الموضوع :

http://www.officena.net/ib/index.php?showtopic=3235

تحياتي

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

بسم الله الرحمن الرحيم

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

أضع بين يديكم شرح الكود الأخير من هذا الموضوع ، وهو الكود الذي يجعل التاريخ يخرج تلقائيا في مدى معين وذلك إذا تم تحرير خلايا مدى معين آخر ، سواء في نفس الصفحة أو في صفحة أخرى واقعا الكود استفدت منه كثير كثير وأود أن يستفيد منه باقي الأعضاء .

وعلى بركة الله نبداء بالشرح ، وهذا هو الكود الذي سنشرح :

Private Sub Worksheet_Change(ByVal Target As Range)
If Not Intersect(Target, Range("A2:A30")) Is Nothing Then
    Sheets("ورقة2").Range(Target.Address).Offset(0, 3) = Date & " " & Time
    Sheets("ورقة2").Cells(31, 1).Offset(0, 3) = Date & " " & Time
End If
End Sub
ملاحظة / بإمكانكم تغييرإسم الصفحة من ("ورقة2") إلى إسم أي صفحة من مستنداتكم أو باسم نفس الصفحة التي فيها الكود لكي تخرج التواريخ فيها . سنبداء بشرح الأسطر الهامة من الكود والتي تتسبب في تغيير المدى ، السطر الذي يخص مدى إدخال البيانات :
If Not Intersect(Target, Range("A2:A30")) Is Nothing Then
هذا المدى ("A2:A30")) يمثل المدى المطلوب معرفة تاريخ الإدخالات فيه من الصفحة التي يوجد فيها هذا الكود . السطر الذي يخص مدى خروج التواريخ في صفحة أخرى :
Sheets("("ورقة2")").Range(Target.Address).Offset(0, 3) = Date & " " & Time
ـ ("ورقة2") هي الصفحة التي تخرج فيها تواريخ المدى المذكور أعلاه وهي نفس الصفحة التي فيها هذا الكود . بالنسبة لـ (0, 3) فإن رقم الصفر (0) يشير إلى أول صف يتكون منه المدى المحدد أعلاه وهوهنا الصف رقم 2 كما هو واضح ، من صفحة ("ورقة2") ـ ملاحظة / ضبط الصفوف بشكل متوازي مع صفوف صفحة إدخال البيانات كما هو الحال هنا ، مهم جدا لمعرفة تاريخ كل إدخال من خلال معرفة رقم صفه . أما رقم ثلاثة 3 فهو يشير إلى العمود المطلوب أن تخرج فيه التواريخ - وللتسهيل يمكننا أن نقول هو تماما يناظر ثالث عمود بعد عمود مدى إدخال البيانات، في صفحة خروج التواريخ ؛ وهو هنا العمود D - من صفحة ("ورقة2") ـ السطر الذي يخص خروج تاريخ آخر إدخال من مدى البيانات :
Sheets("("ورقة2")").Cells(31, 1).Offset(0, 3) = Date & " " & Time

("ورقة2")

هي الصفحة المطلوب أن يخرج فيها تاريخ آخر إدخال في مدى إدخال البيانات .

بالنسبة لـ (31, 1)

ملاحظة / يفضل أن يبقى رقم 1 كما هو أما 31 فيعتمد على صف آخرخلية من مدى إدخال البيانات .

و رقم 31 يشير إلى الصف 31 من نفس الصفحة ("ورقة2") ، وهو الصف الذي سيخرج فيه تاريخ آخر إدخال في مدى البيانات - وهو أول صف بعد صف آخر خلية يتكون منها مدى خروج التواريخ المناظر لمدى صفحة إدخال البيانات التي فيها الكود .

ورقم واحد 1 يشير إلى أول عمود يتكون منه مدى خروج التواريخ في صفحة ("ورقة2") وهو هنا يشير إلى نفس العمود D المشار إليه سابقا برقم 3 - و لوغيرنا الرقم 1 إلى رقم 2 فإنه سوف يشير إلى عمود E لأنها أبجديا تقع بعد D وذلك لأن رقم 2 يأتي بعد رقم 1 رياضيا ،، وهكذا .

بالنسبة لـ (0, 3)

ملاحظة / يلزم أن يكون هذين الرقمين مطابقين تماما لنظيرهما السابق كما في السطرأعلاه.

رقم الصفر(0) يشير إلى أول صف بعد آخرصف من مدى خروج التواريخ في صفحة ("ورقة2") وهو هنا الصف رقم 31 وهو الصف المراد أن يخرج فيه آخر تاريخ يقع في المدى A2:A30 .

أما رقم 3 فهو يشير إلى العمود الذي يناظر ثالث عمود بعد (عمود مدى إدخال البيانات) وهو هنا العمود D الذي تخرج فيه تواريخ صفحة إدخال البيانات التي فيها الكود.

ملاحظة / أرجو من الأستاذ تامر أو ممن لديه المعرفة، أن يوضحو لنا سبب تكرار (31, 1) و (0, 3) في السطر الأخير من الكود ، رغم أنهما يشيران إلى مدى واحد ؟ كما اتضح لنا من الشرح و التجربة .

تم الشرح ولله الحمد ،،

تحياتي halwim

قام بنشر

اخى العزيز

بعد التحية

يمكن الاسغناء عن الامر "Offset" وتحديد رقم العمود فى الامر "Cells" فلم انتبة لذلك

Sheets("("ورقة2")").Cells(31, 1).Offset(0, 3) = Date & " " & Time
لتيصبح السطر هكذا
Sheets("("ورقة2")").Cells(31, رقم العمود) = Date & " " & Time

تحياتى

قام بنشر

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

يمكن الاسغناء عن الامر "Offset" وتحديد رقم العمود فى الامر "Cells" فلم انتبة لذلك

قد قمت بحذف الأمر "Offset" ولكن أصبح مفعول آخر تاريخ عاطلا في الصف 31 من العمود المحدد أصبح لايعمل لماذا ؟

في الحقيقة تبين لي أن وجود الأمر "Offset" ضروري لخروج آخر تاريخ من تواريخ مدى إدخال البيانات المحدد ، ولكن إلى الآن لم أستوعب ضرورة وجوده رغم أن الأمر "Cells" يشير لنفس المجال ، بودي توضيح ذلك وشكرا .

تحياتي

قام بنشر

بسم الله الرحمن الرحيم

تحياتي للجميع وأخص بالتحية الأستاذ " تامر " واشكره على إثرائه الموضوع وتصديه لكل شاردة وواردة .

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

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

إذن نعيد شرح السطر الأخير من الكود بعد اختصاره ،،

وهو السطر الذي يخص خروج تاريخ آخر إدخال من مدى البيانات ( تاريخ خلية مجموع المبالغ ) :

Sheets("ورقة2").Cells(31, 4) = Date & " " & Time

("ورقة2")

هي الصفحة المطلوب أن يخرج فيها تاريخ آخر إدخال في مدى إدخال البيانات .

بالنسبة لـ (31, 4)

رقم 31 يشير إلى الصف 31 من نفس الصفحة ("ورقة2") ، وهو الصف الذي سيخرج فيه تاريخ آخر إدخال في مدى البيانات - وهو أول صف بعد صف آخر خلية يتكون منها مدى خروج التواريخ المناظر لمدى صفحة إدخال البيانات التي فيها الكود .

ورقم 4 يشير إلى رابع عمود حسب الترتيب الأبجدي ابتداء من عمود A حتى D وهو هنا يشير إلى نفس العمود D المشار إليه في السطر السابق برقم 3 - و لوغيرنا الرقم (4) إلى رقم (5) فإنه سوف يشير إلى عمود E لأنها أبجديا تقع بعد D وذلك لأن رقم (5) يأتي بعد رقم 4 رياضيا ،، وهكذا .

تحياتي للجميع

  • 2 weeks later...
قام بنشر

بسم الله الرحمن الرحيم

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

يوجد ملاحظة أو خلل فني على الكود ويوجد طلب آخر ، أرجو التصحيح والتعديل على الطلب.

في المرفق التالي .

تحياتي

_____________.rar

قام بنشر

بسم الله الرحمن الرحيم

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

أولا : أرجو أن يكون أستاذنا ومشرفنا الفذ بخير وصحة وعافية ( الأستاذ تامر )

ثانيا : أتمنى أن يكون الأستاذ تامر قد اطلع على المرفق الأخير لإجراء مايلزم .

تحياتي

قام بنشر

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

أكثر من رائع وفي نفس الوقت جاء حسب الطلب ألف ألف شكر لسيادتك .

ولكن أولا :

رغم عدم اقتناعى بأسلوب عمل الجدول شاهد المرفق

من أي ناحية أنت غير مقتنع ؟ هل يوجد عيبما ؟

ثانيا أتمنى شرح الكود التالي الذي في الصفحة 1 من المحرر ولو بشكل سريع :

Private Sub Worksheet_Change(ByVal Target As Range)
If Target.Count = 1 Then
If Not Intersect(Target, Range("B3:B30")) Is Nothing Then
If IsDate(Range(Target.Address).Offset(0, 1)) Then
    Range(Target.Address).Offset(0, 3) = Date & " " & Time
    Cells(32, 5) = Date & " " & Time
Else
    Range(Target.Address).Offset(0, 1) = Date & " " & Time
    Cells(32, 3) = Date & " " & Time

End If
End If
End If

End Sub
ثالثا يبدولي أن الكود الموجود في الموديل1 هو نفس الكود السابق وهو :
Private Sub Worksheet_Change(ByVal Target As Range)
If Not Intersect(Target, Range("B3:B30")) Is Nothing Then
    Sheets("ورقة1").Range(Target.Address).Offset(0, 1) = Date & " " & Time
    Sheets("ورقة1").Cells(32, 3) = Date & " " & Time
End If
End Sub

فهل وضعتموه عن طريق النسيان ؟ أم أن له وظيفة أخرى ؟ ولماذا لم يكتفى بالكود أعلاه ؟

رابعا أتمنى وكلي أمل رجاء رجاء أرجو إعادة إرفاق الملف الموجود في المشاركة رقم 18 من هذا

الموضوع - ولكن يتم إرفاقه بعد إضافة التعديل الأخير ، وتصحيحه من مشكلة التعدي على بيانات

العواميد المجاوره عند ضغط زر المسح del .

تحياتي

قام بنشر

الاخ halwim

سبب عدم اقتناعى بأسلوب عمل الجدول هو اذا كان المبلغ عى العمود الثانى هو 500

وتم دفع 200 ماذا يحدث بعد ذلك كيف تسدد الباقى

بالنسبة الى

ثالثا يبدولي أن الكود الموجود في الموديل1 هو نفس الكود السابق وهو :

تم الاجابة سابقا فى المشاركة رقم 12

التعديل والشرح غدا إن شاء الله لانى فى عجالة من انجاز بعض الامور الاخرى

قام بنشر

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

شكرا على تكلفك عناء الرد والتعليق .

سبب عدم اقتناعى بأسلوب عمل الجدول هو اذا كان المبلغ عى العمود الثانى هو 500

وتم دفع 200 ماذا يحدث بعد ذلك كيف تسدد الباقى

معك حق ،، ولكن في هذه الصورة ألايمكن الإستفادة من الكود الموجود في المشاركة رقم 12 الذي في المرفق ؟؟ وهذا رابط الموضوع :

http://www.officena.net/ib/index.php?act=S...=14&t=12754

أريد وضع الكود هنا لكي يتم زيادة المبلغ المدفوع في عمود B بدون مسح مايحتويه من مبالغ سابقة ، ولكن للأسف لم أفلح في الجمع بين عدة أكواد ،، أتمنى أن يوضع هذا الكود في المرفق الأخير الذي يحمل المشاركة رقم 22 من هذا الموضوع وشكراااا.

تحياتي

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