أبو عبد النور قام بنشر أبريل 11, 2007 قام بنشر أبريل 11, 2007 (معدل) السلام عليكم، اردت تجريب تنفيذ حدثان Worksheet_Change في آن واحد ولكني لم افلح. وهذا مثال على ذلك : عندما اكتب حرفا باللغة الانجليزية (مثلا a) في العمود A الورقة1 ينقل الى الورقة2 العمود A مع جعله Capital (هكذا A) . الكود في الورقة1 : Private Sub Worksheet_Change(ByVal Target As Range) If Target.Column = 1 And Target.Count = 1 Then [A1:A100].AdvancedFilter Action:=xlFilterCopy, _ CopyToRange:=Sheets("Feuil2").Range("A1"), Unique:=True Sheets("Feuil2").Range("A1:A100").Sort key1:=Sheets("Feuil2").Range("A1") End If End Sub الكود في الورقة2 : Private Sub Worksheet_Change(ByVal Target As Range) If Target.Column = 1 And Target.Count = 1 Then Target = Application.Proper(Target) End If End Sub فأين هو الخطأ ؟ شكراً. تم تعديل أبريل 11, 2007 بواسطه apt
أبو عبد النور قام بنشر أبريل 12, 2007 الكاتب قام بنشر أبريل 12, 2007 اين الاساتذة الكرام بارك الله فيهم ؟
omar elhosseini قام بنشر أبريل 12, 2007 قام بنشر أبريل 12, 2007 الاخ apt تحياتى بالنسبة للورقة الثانية : لن يعمل هذا الحدث لأن التأثير هنا غير مباشر وهو يعمل فقط مع الاحداث المباشرة ولجعل الحدث يستشعر التغير الغير مباشر لابد من عمل زناد لاطلاق هذا الحدث عند التغير الغير مباشر وهذا موضوع اخر يطول شرحة ولابد قبل شرحة ان يعى المتلقى جيدا الفجوال والاحداث . بالنسبة لحدث الورقة الثانية : فى البدية عند انشاء الملف لأول مرة لن يعمل هذا الحدث واذا كنت تعى جملة (AdvancedFilter) وقمت بعمل هيدر العمود الاول للورقة الثانية هو نفسه هيدر العمود الاول للورقة الأولى .... فسيعمل للمرة الاولى فقط ولن يعمل فى المرة الثانية . وسبب عدم العمل فى المرة الثانية هى جملة الفرز (Sort) التى تبدل موضع هيدر العمود الاول فى الورقة الثانية لان الترتيب يجب ان يبدأ من الخلية الثانية حتى يبتعد عن الهيدر الذى لن تعمل جملة (AdvancedFilter) بدونه . اخى يمكن عمل ذلك بحدث واحد فقط بعيدا عن تصادم الاحداث ولكن يجب ان توضح نقطة Capital (a) و(A) هل سيكون الحرف الاول فقط ام كل الحروف تحياتى
أبو عبد النور قام بنشر أبريل 12, 2007 الكاتب قام بنشر أبريل 12, 2007 شكرا لك على الاهتمام أخي أبو تامر. في الحقيقة لا يهمني عند عمل Capital ان يكون للحرف الاول او كل الجملة. لان هذا المثال سقته لفهم لماذا لم يشتغل الحدثان مع بعض ويقتصر الامر على الاول فقط. لانه كان الكود في الاصل يشمل Worksheet_Change واحد في الورقة1 وكان البرنامج يعمل بصورة جيدة ولكن لما اضفت له Worksheet_Change في الورقة2 اصبح لا يعمل. ولكن سوف اتحدث فيما بعد عن الاضافات التي لم تعمل لدي ان شاء الله. ولكن الآن ارجو المزيد من التوضيح اخي ابو تامر فيما يخص AdvancedFilter و xlFilterCopy و CritertiaRange لان البرنامج دائما يتوقف عند هذا السطر : [A1:A100].AdvancedFilter Action:=xlFilterCopy, _ CopyToRange:=Sheets("recto").Range("A5"), Unique:=True شكراً.
omar elhosseini قام بنشر أبريل 13, 2007 قام بنشر أبريل 13, 2007 اخى apt شاهد هذا الرابط به الشرح استخراج النتائج بإستخدام التصفية المتقدمة تحياتى
أبو عبد النور قام بنشر أبريل 13, 2007 الكاتب قام بنشر أبريل 13, 2007 شكرا لك اخي ابو تامر. ولكن هل من الممكن تعديل الكود اعلاه حتى آخذ فكرة جيدة ؟
أبو عبد النور قام بنشر أبريل 14, 2007 الكاتب قام بنشر أبريل 14, 2007 هل من الممكن اخي ابو تامر ان تختصر الحدثان في حدث واحد يتم تنفيذه في الورقة الاولى ؟
الردود الموصى بها
Join the conversation
You can post now and register later. If you have an account, sign in now to post with your account.