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

تحويل التاريخ الى خلايا اليوم والشهر والسنة


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

السادة الكرام 

قمت بتحويل التاريخ من خلية واحدة الى ثلاث خلايا ولكن عند حذف الخلية الاولى تتغير القيم في خلايا التاريخ المجزاء

التوضيح في الملف المرفق

ولكم جزيل الشكر

 

تحويل التاريخ.rar

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

يحدث ذلك أخي الفاضل ، لأن الإكسيل يرى الخلية فارغة على انها ليست فارغة وإنما تعتبر مساوية لرقم صفر .. وصفر على ما أعتقد كرقم تسلسلي في التواريخ هوبداية الأرقام التسلسلية فيظهر التاريخ بشهر 1 لعام 1900

ولتلافي الخطأ قم بتعديل المعادلة بهذا الشكل

=IF(E5="","",DAY(E5))
=IF(E5="","",MONTH(E5))
=IF(E5="","",YEAR(E5))
  • Like 1
رابط هذا التعليق
شارك

شكراً لك اخي ياسرعلى اهتمامك ... 

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

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

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

نرجو التوضيح إذا لم يكن الأمر كما فهمت

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

بارك الله فيك أخي الحبيب KHMB

وجزيت خيراً على الكود الرائع

أعتقد كدا اتحلت مشكلتك أخي الربيعي .. من غير معادلات تقدر تحصل على المطلوب

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

اخي khmb  واخي ياسر بارك الله فيكم 

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

ثانيا .. عند طبيقها على باقي الخلايا تعطي نفس تاريخ الخلية e5

ثالثا ...لم افهم الاجراء الذى قام به اخي khmb حت نتمكن من تطبيقه

 

اتمنى منكم التوضيح ولكم جزيل الشكر والعرفان 

 

الملف المرفق يوضح نتائج التاريخ

 

 

تجزئة التاريخ.rar

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

اخي khmb  واخي ياسر بارك الله فيكم 

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

ثانيا .. عند طبيقها على باقي الخلايا تعطي نفس تاريخ الخلية e5

ثالثا ...لم افهم الاجراء الذى قام به اخي khmb حت نتمكن من تطبيقه

 

اتمنى منكم التوضيح ولكم جزيل الشكر والعرفان 

 

الملف المرفق يوضح نتائج التاريخ

 

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

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

كماان الصيغة غير ظاهرة لدي التي قام بها اخي  khmb

 

 

اليكم الملف

 

التاريخ 1.rar

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

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

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

عسى ان يكون ماطلبت

 

المرفق 

تجزئة التاريخ علي كامل العمود ولايمسح.rar

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

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

يا اخي صدقني انا ما اعرف في الصيغ إلا القليل جدا بمتابعة الشروحات من اليوتيوب

وممكن تضع الملف في موضوعك في العام وتقول ممكن اخواني ابغاه يكون بالصيغ أي بالمعادلات وهناك الكثير من الفطاحلة بالصيغ والاكواد

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

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

الاستاذ الفاضل ابو البراء جزاك الله خيرا

الاخ العزيز KMHB كود اكثر من رائع جزاك الله خيرا

اخي العزيز الربيعي (ماهي الصيغة التي يجب ان اكتبها في ملف اخر)

العمل يكون بالكود  ضع هذا الكود في حدث الشيت الذي تعمل عليه وغير حسب بياناتك 

Private Sub Worksheet_Change(ByVal Target As Range)
'On Error Resume Next
Dim dayDate As String
'dayDate = Format(Range("H"), " dd / mm / yyyy")

' íÊã æÖÚ ÇáÊÇÑíÎ ÊáÞÇÆí Ýí ÇáÚãæÏ ÇáãÞÇÈá(B)ÚäÏ ÇáÊÛííÑ Ýí ÇáÚãæÏ ÇáËÇäí 2
If Target.Column <> 3 Then Exit Sub
If Target <> "" Then
dayDate = Range("C" & Target.Row)
Range("G" & Target.Row) = Format(dayDate, "DD")
Range("H" & Target.Row) = Format(dayDate, "MM")
Range("I" & Target.Row) = Format(dayDate, "YYYY")


On Error GoTo 0
End If
End Sub

ان شاء الله سيعمل الكود بالشكل الصحيح

تقبلوا فائق الاحترام والتقدير

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

  نعم هذا ما اريد ان امكن ياخي  khmb    او اشرح لي المكان الذ ي نضع فيه الكود لان النتيجة ممتازة ...

ولكم جميعا الشكر ......

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

Private Sub Worksheet_Change(ByVal Target As Range)
On Error Resume Next
Dim dayDate As String

If Target.Column <> 3 Then Exit Sub
If Target <> "" Then
dayDate = Range("C" & Target.Row)
Range("G" & Target.Row) = Format(dayDate, "DD")
Range("H" & Target.Row) = Format(dayDate, "MM")
Range("I" & Target.Row) = Format(dayDate, "YYYY")

On Error GoTo 0
End If
End Sub

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

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

ولكن بالكتابة فدر المستطاع.

مثلا البرنامج اللي تشتغل علية وترغب في برمجتة هو مصنف مكون من عدة أوراق او شيتات كمثال عندك Sheet1 -Sheet2-Sheet3 وعملك هو بالصفحة او الشيت1 اضغط علي مفتاح Alt وبالاستمرار بالضغط علية اضغط F11 سيفتح لك نافذة إسمه محرر اكواد الفيجوال بيسك في الجانب الايسر او الأيمن حسب لغة النظام عندك ستلاحظ أسماء الأوراق اضغط علي ال Sheet1 دبل كليك ستفتح لك صفحة بيضاء هي محرر الاكواد مقسومة نصفين نصف مكتوب General عام والأخر Declarations  الإعلانات افتح السهم اللي بجانب General واختار WorkSheet ثم بالاجانب الاخر افتح السهم اختار كلمة Change

Private Sub WoorkSheet_change(Byval Target as  Range)

 

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

 

End Sub

 

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

 

 

أبو الحسن والحسين

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

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

 اخيkhmb

 بفضل الله ثم بجودكم تمكنت من استيعاب الموضوع وتم تطبيقه اخي khmb

لك ولكل الزملاء الشكر على المساعدة والاهتمام 

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

  • 6 months later...

من فضلك سجل دخول لتتمكن من التعليق

ستتمكن من اضافه تعليقات بعد التسجيل



سجل دخولك الان
  • تصفح هذا الموضوع مؤخراً   0 اعضاء متواجدين الان

    • لايوجد اعضاء مسجلون يتصفحون هذه الصفحه
×
×
  • اضف...

Important Information