amir501 قام بنشر أكتوبر 9, 2010 قام بنشر أكتوبر 9, 2010 اخواني السلام عليكم ورحمة الله هذا الكود يقوم بادراج التاريخ تلقائيا في اي خلية في العود A بمجرد الكتابةفي الععود B اي لو كتبنا اي شي في الخلية B2 سيكتب التاريخ تلقائيا في الخلية A1 هل يتكرم احد الاخوة مشكورا بشرح سطور هذا الكود ونحن له من الشاكرين Private Sub Worksheet_Change(ByVal Target As Excel.Range) With Target If .Count > 1 Then Exit Sub If Not Intersect(Range("b1:b100"), .Cells) Is Nothing Then Application.EnableEvents = False If IsEmpty(.Value) Then .Offset(0, 1).ClearContents Else With .Offset(0, -1) .NumberFormat = "dd mmm yyyy " .Value = Now End With End If Application.EnableEvents = True End If End With End Sub
بن علية حاجي قام بنشر أكتوبر 9, 2010 قام بنشر أكتوبر 9, 2010 وعليكم السلام ورحمة الله اخواني السلام عليكم ورحمة الله هذا الكود يقوم بادراج التاريخ تلقائيا في اي خلية في العود A بمجرد الكتابةفي الععود B اي لو كتبنا اي شي في الخلية B2 سيكتب التاريخ تلقائيا في الخلية A1 هل يتكرم احد الاخوة مشكورا بشرح سطور هذا الكود ونحن له من الشاكرين Private Sub Worksheet_Change(ByVal Target As Excel.Range) With Target If .Count > 1 Then Exit Sub If Not Intersect(Range("b1:b100"), .Cells) Is Nothing Then Application.EnableEvents = False If IsEmpty(.Value) Then .Offset(0, 1).ClearContents Else With .Offset(0, -1) .NumberFormat = "dd mmm yyyy " .Value = Now End With End If Application.EnableEvents = True End If End With End Sub أخي الكريم وهل هناك شرح غير الذي قدمته لقد وفيت وتكرمت في شرحه... والله أعلم أخوك بن علية
الحسامي قام بنشر أكتوبر 9, 2010 قام بنشر أكتوبر 9, 2010 السلام عليكم اخي العزيز الكود السابق يمكن اختصاره كثيرا وهناك العدد من البنود التي يمكن اختصارها كالتالي : Private Sub Worksheet_Change(ByVal Target As Excel.Range) If Not Intersect(Target, Range("b1:b100")) Is Nothing Then '-------------------------------- Application.EnableEvents = False If Target.Count > 1 Then Exit Sub Target.Offset(0, -1).NumberFormat = "dd mmm yyyy " Target.Offset(0, -1).Value = Now If IsEmpty(Target.Cells) Then Target.Offset(0, -1).ClearContents Application.EnableEvents = True End If End Sub اما شرح هذا الكود فاليك If Not Intersect(Target, Range("b1:b100")) Is Nothing Then '-------------------------------- هنا لتحديد النطاق الذي يمكن للكود ان يعمل بواسطته وهنا عند التغيير في اي من الخلايا في النطاق المحدد فسيتم تنفيذ المطلوب وان كان التغيير في غير هذا النطاق فلن يتم تنفيذ الكود Application.EnableEvents = False يستعمل هذا الكود عندما يكون هناك اكثر من كود للصفحة الواحدة ويعمل هذا الامر على تجميد الاكواد الاخرى ويتم تنفيذ الكود في هذا الحدث فقط ولكن في كودك هذا وكون هناك كود واحد فقط وبالتالي لا تلزم هذه الجزئية من الكود وعند استخدام هذه الامر يجب اعادة تفعيل الاكواد الاخرى وذلك بوضع الكود التالي في نهاية الكود Application.EnableEvents = True If Target.Count > 1 Then Exit Sub هنا في حالة اختيار اكثر من خلية لن يتم تنفيذ شئ ولن يتم تنفيذ الكود Target.Offset(0, -1).NumberFormat = "dd mmm yyyy " هنا يتم عمل تنسيق للخلية المقابلة ( السابقة ) في العمود A عند الكتابة في الخلية في العمود الثاني B Target.Offset(0, -1).Value = Now هنا يتم وضع التاريخ في الخلية المقابلة ( السابقة ) في العمود A عند الكتابة في الخلية في العمود الثاني B If IsEmpty(Target.Cells) Then Target.Offset(0, -1).ClearContents هنا عند مسح الخلية في العمود الثاني B بواسطة Delete Key فسيقوم بمسح الخلية في العمود السابق A 1
amir501 قام بنشر أكتوبر 9, 2010 الكاتب قام بنشر أكتوبر 9, 2010 كعادتك للخير سباق جهلها الله في رصيد حسناتك وجعل لك بكل حرف حسنة وفي كل خطوة حسنة جزاك الله خير
الردود الموصى بها
Join the conversation
You can post now and register later. If you have an account, sign in now to post with your account.