المالكي333 قام بنشر أكتوبر 23, 2003 قام بنشر أكتوبر 23, 2003 عندما نريد أن نطلب من أكسل أن يكتب لنا في خلية معينة تاريخ اليوم فإننا نضع له الدالة NOW() إلا أن هذه الدالة تقوم بتغيير التاريخ يوميا. لكن في حالة رغبتنا أن يقوم أكسل بكتابة تاريخ اليوم في خلية معينة ثم يقوم بتثبيت هذا التاريخ وعدم تغييره مثل أن نكتب تاريخ إيداع مبلغ معين في حساب البنك فمن غير المعقول أن يبقى تاريخ هذا الإيداع تاريخا متغيرا بل يجب أن يبقى ثابتا لمعرفة تاريخ الإيداع بالضبط. السؤال كيف نقوم بهذا التثبيت للتاريخ أو هل هناك دالة شبيهة لهذه الدالة من شأنها أن تقوم بكتابة التاريخ آليا وعدم تغييره يوميا ؟؟؟. شكرا للجميع.
أبو هادي قام بنشر أكتوبر 23, 2003 قام بنشر أكتوبر 23, 2003 (معدل) السلام عليكم تحتاج إلى لصق هذا الكود في الموديول الخاص بالصفحة : Private Sub Worksheet_Change(ByVal Target As Excel.Range) If Target.Column = 1 Then Cells(Target.Row, 2) = Now() End If End Sub مع ملاحظة أنك تستطيع أن تعدل التالي : 1 هو رقم العمود الذي ستحدث فيه مبلغ الإيداع 2 هو رقم العمود الذي ستحفظ فيه الوقت . وملاحظة أن الأعمدة تبدأ برقم 1 والمرمز بـ A . لو سألت أين تضع الكود فسوف تفعل التالي : من القائمة سوف تختار Tools ثم Macro ثم Visual Basic Editor إذا الـ Project Explorer غير منشط فمن الـ View ستختاره وستظهر كل الصفحات على يسار الشاشة ، منها بالنقر المزدوج على الصفحة المطلوبة ثم ستقوم بلصق هذا الكود . تحياتي . تم تعديل أكتوبر 23, 2003 بواسطه أبو هادي
المالكي333 قام بنشر أكتوبر 23, 2003 الكاتب قام بنشر أكتوبر 23, 2003 وحشتنا يا أبا هادي.. شكرا لك على الرد وسأقوم بتجربة الكود. وعلى فكرة كنت قد أخذت دالة تفقيط من أعمالك ونجحت معي في تفقيط الأرقام وتحويلها إلى أحرف. لكن واجهني مشكلة عندما أقوم بتحميل المصنف على بعض الأجهزة أجد أنه قد قام بإعطائي أحرف أجنبية بحته لا أعرف هل هي صينية أو كورية أو غير ذلك في نفس الخانة المخصصة لكتابة الرقم بالأحرف ما عدا كلمة ( ريال ) فأنه يكتبها في تلك الخانة وبقية الأحرف كما قلت تأتي بلغة أجنبية. أقول إن هذا يحدث على بعض الأجهزة لا سيما ما كان الويندوز فيها نسخة إنجليزية. أما النسخة العربية فلا تواجهني هذه المشكلة معها. لقد قمت بمحاولة تغيير الخط مثلا لكن بدون فائدة. هل لديك حل فيما لو واجهتني هذه المشكلة مرة أخرى؟. أشكرك.
أبو هادي قام بنشر أكتوبر 23, 2003 قام بنشر أكتوبر 23, 2003 (معدل) السلام عليكم وأنت كذلك أخي المالكي333 وحشتنا كتير :d . أخي ولو أنه بسؤالك وردي خلطنا موضوعين في واحد ولكن لعيونك وليسامحنا محمد طاهر . أخي في الحقيقة عملية اللغات والخطوط تجنن ، والحل الوحيد الذي أنصحك به هو أن تكتب كل ما هو عربي في الكود مرة أخرى ، وهنا مطلوب أن تتوخى الحذر في عدم الوقوع في الخطأ ، هناك وسيلة للتبديل كلمة كلمة وهي أن تظلل كل كلمة على حدى بالنقر المزدوج عليها ثم تكتبها مرة أخرى . الله يعينك . أتمنى لو توجد حلول أخرى من الأخوة الأفاضل . تحياتي . تم تعديل أكتوبر 23, 2003 بواسطه أبو هادي
المالكي333 قام بنشر أكتوبر 24, 2003 الكاتب قام بنشر أكتوبر 24, 2003 شكرا على إيضاحك يا أبا هادي.. ولكي لا يزعل أخونا أبو طاهر أعود إلى صلب موضوعنا حيث جربت الكود الذي وضعته وكان ناجحا ولكنني قد أحتاج إلى جعل الورقة تكتب لي التاريخ في الخلية B3 مثلا عندما أكتب أي أرقام أو نصوص في الخلية A3 فقط أي أنني قد لا أحتاج إلى كتابة هذا التاريخ في كل خانات العمود B أو بمعنى أوضح قد أخصص خلية واحدة فقط لكتابة تاريخ معين بشرط أن أكتب في نصا أو رقما في خلية أخرى. أشكرك مرة أخرى.
أبو هادي قام بنشر أكتوبر 24, 2003 قام بنشر أكتوبر 24, 2003 السلام عليكم أخي المالكي333 .. يمكنك بهذه الطريقة : Private Sub Worksheet_Change(ByVal Target As Excel.Range) If Target.Column = 1 Then Range("B3") = Now() End If End Sub تحياتي .
المالكي333 قام بنشر أكتوبر 24, 2003 الكاتب قام بنشر أكتوبر 24, 2003 الأخ أبو هادي: شكرا على تجاوبك السريع: لقد أردت أن أربط خلية معينة بحيث عندما أكتب في تلك الخلية تحديدا يتم كتابة التاريخ مثبتا في الخلية التي بجانبها ولم أكن أريد أن أكتب في أي خلية في العمود1 لذلك فقد حاولت أن أعدل في الكود كما يلي [Private Sub Worksheet_Change(ByVal Target As Excel.Range) If Range("A3") = 1 Then Range("B3") = Now() End If End Sub لا أعرف إن كانت طريقتي صحيحة في كتابة الكود لكنني قمت بتعديل العمود 1 إلى الخلية a3 وأعتقد أنني نجحت إلى حد ما لكنني لاحظت أن الخلية الأخرى تتجاوب في كتابة التاريخ عندما أكتب الرقم 1 في الخلية الأولى وأنا لا أريد أن أتقيد بالرقم1 فقط وإنما أريد أن أكتب أي شيء في الخلية ليكون ذلك كافيا لجعل الخلية الثانية تكتب التاريخ وتثبته في مكانه. أكرر لك شكري وتقديري.
أفضل إجابة محمد طاهر عرفه قام بنشر أكتوبر 24, 2003 أفضل إجابة قام بنشر أكتوبر 24, 2003 Private Sub Worksheet_Change(ByVal Target As Range) If Not IsNull(Range("a3")) Then Range("b3") = Now() End Sub
أبو هادي قام بنشر أكتوبر 25, 2003 قام بنشر أكتوبر 25, 2003 السلام عليكم أو ممكن تكون كالتالي : Private Sub Worksheet_Change(ByVal Target As Excel.Range) If Target.Address = "$A$3" Then Range("B3") = Now() End If End Sub تحياتي .
المالكي333 قام بنشر أكتوبر 27, 2003 الكاتب قام بنشر أكتوبر 27, 2003 الأخ أبو طاهر الأخ أبو هادي أشكركما على جهوكم وأعتذر لتأخير الرد عليكما بسبب عدم تمكني من دخول المنتدى لبطء شديد في النت . وكل عام وأنتم بألف خير.
محمد حجازي قام بنشر يونيو 3, 2005 قام بنشر يونيو 3, 2005 السلام عليكم ... طريقة أخرى عن طريق إنشاء دالة جاهزة : http://www.officena.net/ib/index.php?showtopic=4100 بالتوفيق
الردود الموصى بها