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

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

قام بنشر (معدل)

السلام عليكم،

اردت تجريب تنفيذ حدثان 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

فأين هو الخطأ ؟

شكراً.

تم تعديل بواسطه apt
قام بنشر

الاخ apt

تحياتى

بالنسبة للورقة الثانية :

لن يعمل هذا الحدث لأن التأثير هنا غير مباشر

وهو يعمل فقط مع الاحداث المباشرة

ولجعل الحدث يستشعر التغير الغير مباشر لابد من عمل زناد لاطلاق هذا الحدث عند التغير الغير مباشر

وهذا موضوع اخر يطول شرحة ولابد قبل شرحة ان يعى المتلقى جيدا الفجوال والاحداث .

بالنسبة لحدث الورقة الثانية :

فى البدية عند انشاء الملف لأول مرة لن يعمل هذا الحدث

واذا كنت تعى جملة (AdvancedFilter) وقمت بعمل هيدر العمود الاول للورقة الثانية

هو نفسه هيدر العمود الاول للورقة الأولى ....

فسيعمل للمرة الاولى فقط ولن يعمل فى المرة الثانية .

وسبب عدم العمل فى المرة الثانية هى جملة الفرز (Sort) التى تبدل موضع هيدر العمود الاول فى الورقة الثانية

لان الترتيب يجب ان يبدأ من الخلية الثانية حتى يبتعد عن الهيدر الذى لن تعمل جملة (AdvancedFilter) بدونه .

اخى يمكن عمل ذلك بحدث واحد فقط بعيدا عن تصادم الاحداث

ولكن يجب ان توضح نقطة Capital

(a) و(A)

هل سيكون الحرف الاول فقط ام كل الحروف

تحياتى

قام بنشر

شكرا لك على الاهتمام أخي أبو تامر.

في الحقيقة لا يهمني عند عمل Capital ان يكون للحرف الاول او كل الجملة.

لان هذا المثال سقته لفهم لماذا لم يشتغل الحدثان مع بعض ويقتصر الامر على الاول فقط.

لانه كان الكود في الاصل يشمل Worksheet_Change واحد في الورقة1 وكان البرنامج يعمل بصورة جيدة ولكن لما اضفت له Worksheet_Change في الورقة2 اصبح لا يعمل.

ولكن سوف اتحدث فيما بعد عن الاضافات التي لم تعمل لدي ان شاء الله.

ولكن الآن ارجو المزيد من التوضيح اخي ابو تامر فيما يخص AdvancedFilter و xlFilterCopy و CritertiaRange لان البرنامج دائما يتوقف عند هذا السطر :

[A1:A100].AdvancedFilter Action:=xlFilterCopy, _
      CopyToRange:=Sheets("recto").Range("A5"), Unique:=True

شكراً.

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