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

طلب المساعدة في مسح محتويات الصف كله بناء علي قيمة خلية معينة


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

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

تحية طيبة لاساتذتى الافاضل فى منتدى اوفيسنا المتميز

انا اريد ان مساعدتكم فى مسح محتويات الصف ( وليس مسح الصف كله ) بناء على قيمة خلية

انا كنت اريد تلوين الصف ومسح محتوياته

استطعت ان احل التلوين من خلال التنسيق الشرطى

لكنى لم استطع حل مشكلة المسح

الملف المرق هو مثال لشيت موردين مقيد به بياناتهم

وعند كتابة نجمة * فى العمود A

يتم تلوين الصف باللون الاخضر

اريده ايضا ان يمسح محتويات هذا النطاق الذى تم تلوينه او يمسح الصف كله ايا كان

واريد مساعدتكم ان كان بتنسيق شرطى كما فعلت فى اللون

او ماكرو او معادلة او ماشابه

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

111.rar

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

18 hours ago, سليم حاصبيا said:

استعمل هذا الكود


Sub etoil()
lr = Cells(Rows.Count, 1).End(3).Row
For x = 15 To lr
If Cells(x, 1) = "*" Then Cells(x, 1).Resize(1, 4).ClearContents
Next
End Sub

 

اخى الفاضل جزاكم الله خيرا على الاهتمام والمساعدة

لكن الكود فيه حاجتين اريد مساعدتك فيها

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

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

ثانيا الكود يتطلي ان استدعيه اما من خلال زرار او alt + f8

وانا اريده ان يعمل تلقائيا دون استدعاء

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

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

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

Sub clear_row_content()
'
' clear_row_content Macro
' to clear row content if the 1 st cell contain *
'
' Keyboard Shortcut: Ctrl+m
'
    Range("A6").Select
    ActiveCell.FormulaR1C1 = "*"
    Range("B6:D6").Select
    Selection.ClearContents
End Sub

السلام عليكم

انا حاولت اسجل الكود بالطريقة البدائية خالص ليمسح الخلايا ما بعد النجمة

وكان هذا الكود

لكن طبعا المشكلة ان الكود يعمل فقط على الصف الاول فقط كما هو موضح فى المرفقات

اريد من فضلكم تعديل الكود ليعمل على الشيت كلها وليس الصف الاول فقط

يعنى بمجردما اكتب * فى اى الخلية الاولى فى اى صف يتم مسح محتويات الصف كما الحال فى الخلية الاولى فى الجدول

وكما وضحت اريده ان يعمل تلقائيا دون تدخل منى نهائيا فبمجرد كتابة * يتم التلوين ومسح المحتويات 

111.rar

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

9 hours ago, الـعيدروس said:

السلام عليكم

شاهد المرفق

 

222.rar

اخى الفاضل جزاكم الله خيرا

لكنك ارفقت لى نفس الملف مرة أخرى تقريبا

حيث ان الكود لم يتغير فيه شىء

وأيضا لا يتم مسح الا الصف الاول فقط

حاول التاكد مرة أخرى لعلك أرفقته خطأ

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

 

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

اخى الفاضل

لعل هناك مشكلة عندى انا

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

انا استخدم اوفيس 2007 انتربرايز

ولا ادرى ما المشكلة فى تنفيذ الماكرو عندى فى الصف الاول فقط

هل قمت بالتعديل على الكود ؟ ام ماذا

ل الكود المسجل فى الملف المرفق نفس الكود الذى وضحته فى التعليق السابق

 

وأريد أيضا ان يتم مسح محتويات الصف تلقائيا بمجرد كتابة النجمة

كما يتم تغيير اللون تلقائيا بكتابة النجمة

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

 

10212313.JPG

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

حاول ان تجرب هذا الكود

Private Sub Worksheet_Change(ByVal Target As Range)
Application.ScreenUpdating = False
If Target.Column <> 1 Or Target.Row < 6 Then GoTo 1
Application.EnableEvents = False
'==========================================
lr = Cells(Rows.Count, 1).End(3).Row
For x = 6 To lr
If Cells(x, 1) = "*" Then Cells(x, 2).Resize(1, 3).ClearContents
Next
'=====================================
1:
Application.EnableEvents = True
Application.ScreenUpdating = True
End Sub

 

تم تعديل بواسطه سليم حاصبيا
  • Like 1
رابط هذا التعليق
شارك

1 hour ago, سليم حاصبيا said:

حاول ان تجرب هذا الكود


Private Sub Worksheet_Change(ByVal Target As Range)
Application.ScreenUpdating = False
If Target.Column <> 1 Or Target.Row < 6 Then GoTo 1
Application.EnableEvents = False
'==========================================
lr = Cells(Rows.Count, 1).End(3).Row
For x = 6 To lr
If Cells(x, 1) = "*" Then Cells(x, 2).Resize(1, 3).ClearContents
Next
'=====================================
1:
Application.EnableEvents = True
Application.ScreenUpdating = True
End Sub

 

تمام يا اخى جزاكم الله خيرا

هو المطلوب

ولكن كيف اجعله يتم تنفيذه على شيت محدد

لأن الملف الذى سأستخدمه فيه يحتوى على شيتات كتير (مخزن و مبيعات ومشتريات .......) فكيف أجعله يعمل على شيت محدد وليكن شيت المبيعات ؟

وأيضا أريده أنه بعد أن يمسح محتويات الصف الذى يحتوى على النجمة

أن ينفذ كود أخر

فكيف يمكن أن أفعل ذلك

هل فقط أضيف

call macro

قبل كلمة

end sub ?

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

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

اما بالنسبة للسؤال الثاني يجب ان تضيف كلمة Call و بعدها اسم الماكرو المطلوب بدون ()  و ذلك بعد كلمة Next مباشرة

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

On ٥‏/١٢‏/٢٠١٥ ٦،٣٨،٥٥, الـعيدروس said:

الكود يعمل عندما تكتب في اي خليه في العمود A

نجمة يقوم بالمسح

اخى الافاضل اعذرنى حقا فقد كانت لدى مشكلة حقا فى هذا الملف

ولكن تمت تجربته مرة أخرى ووجدته يعمل

On ٥‏/١٢‏/٢٠١٥ ٤،١٢،٤٨, الـعيدروس said:

السلام عليكم

شاهد المرفق

 

222.rar

 

On ٥‏/١٢‏/٢٠١٥ ١٠،١٩،٥٣, سليم حاصبيا said:

حاول ان تجرب هذا الكود


Private Sub Worksheet_Change(ByVal Target As Range)
Application.ScreenUpdating = False
If Target.Column <> 1 Or Target.Row < 6 Then GoTo 1
Application.EnableEvents = False
'==========================================
lr = Cells(Rows.Count, 1).End(3).Row
For x = 6 To lr
If Cells(x, 1) = "*" Then Cells(x, 2).Resize(1, 3).ClearContents
Next
'=====================================
1:
Application.EnableEvents = True
Application.ScreenUpdating = True
End Sub

 

 

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

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