أساسيات VBA إكسل : حدث ورقة العمل - الأحداث في VBA الجزء الثاني

أساسيات VBA إكسل : حدث ورقة العمل - الأحداث في VBA الجزء الثاني






في التدوينة السابقة ، تكلمنا عن حدث المصنف، أما في هذه التدوينة ستكون عبارة عن جزء ثاني من درس الاحداث و سيكون الحديث عن  حدث ورقة العمل .


 WORKSHEET_SELECTIONCHANGE عند تغيير التحديد

لتنفيذ تعليمات تستند إلى حدث لورقة معينة ، نحدد الورقة في المحرر ، ثم ورقة عمل أو  Worksheet  :

أساسيات VBA إكسل : حدث ورقة العمل - الأحداث في VBA الجزء الثاني



الحدث SelectionChange يتم إضافته افتراضيًا ، وهو يعمل عند تغيير التحديد:

Private Sub Worksheet_SelectionChange(ByVal Target As Range) End Sub

لنفهم أكثر نجد هنا رمز يقوم بتلوين الخلية المحددة ويزيل التلوين تلقائيًا من التحديد الأخير عند تغيير التحديد:

Private Sub Worksheet_SelectionChange(ByVal Target As Range) Static selectionPrecedente As String 'Suppression de la couleur de fond de la sélection précédente If selectionPrecedente <> "" Then Range(selectionPrecedente).Interior.ColorIndex = xlColorIndexNone End If 'Coloration de la sélection actuelle Target.Interior.Color = RGB(181, 244, 0) 'Enregistrement de l'adresse de la sélection actuelle selectionPrecedente = Target.Address End Sub

 WORKSHEET_ACTIVATE  عند تنشيط الورقة

يتم تشغيل هذا الحدث عند تنشيط الورقة:

Private Sub Worksheet_Activate() End Sub

لنفهم أكثر ، تحديد الخلية D5 عند تنشيط الورقة:

Private Sub Worksheet_Activate() Range("D5").Select End Sub

 WORKSHEET_DEACTIVATEعند الخروج من الورقة

يتم تشغيل هذا الحدث عند تنشيط ورقة أخرى في المصنف:

Private Sub Worksheet_Deactivate() End Sub

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

Private Sub Worksheet_Deactivate() Range("B2:B10").ClearContents End Sub

 WORKSHEET_BEFOREDOUBLECLICK عند النقر المزدوج

يتم تشغيل هذا الحدث عند النقر نقرًا مزدوجًا فوق خلية ورقة:


Private Sub Worksheet_BeforeDoubleClick(ByVal Target As Range, Cancel As Boolean) End Sub

على سبيل المثال ، تلوين الخلية التي تم النقر عليها مرتين باللون الأخضر أو باللون الأبيض إذا كانت ملونة بالفعل :

Private Sub Worksheet_BeforeDoubleClick(ByVal Target As Range, Cancel As Boolean) If Target.Interior.Color = 16777215 Then 'Si blanc Target.Interior.Color = RGB(200, 255, 100) 'Couleur verte Else 'Sinon Target.Interior.Color = 16777215 'Couleur blanche End If End Sub

يمكن إلغاء النقر المزدوج عن طريق تعيين القيمة True عاملCancel 


 WORKSHEET_BEFORERIGHTCLICK عند النقر بزر الماوس الأيمن

يتم تشغيل هذا الحدث عند النقر بزر الماوس الأيمن على الورقة:

Private Sub Worksheet_BeforeRightClick(ByVal Target As Range, Cancel As Boolean) End Sub

لنفهم أكثر سنقوم بإضافة تاريخ اليوم عن طريق النقر بزر الماوس الأيمن إذا كانت الخلية التي تم النقر فوقها موجودة في العمود

Private Sub Worksheet_BeforeRightClick(ByVal Target As Range, Cancel As Boolean) 'Si cellule de la colonne 3 (C) If Target.Column = 3 Then Target = Date 'Ajout de la date du jour Cancel = True 'Annulation du clic droit End If End Sub

يمكن إلغاء النقر بزر الماوس الأيمن عن طريق تعيين القيمة True  عامل Cancel .


WORKSHEET_CHANGE عند تعديل كل خلية

يتم تشغيل هذا الحدث عند تعديل محتويات خلايا الورقة:

Private Sub Worksheet_Change(ByVal Target As Range)  

End Sub

كيفية تعطيل كافة الأحداث مؤقتًا

لتشغيل التعليمات البرمجية دون زيادة الأحداث ، سنضعها بين هذين السطرين:

Application.EnableEvents = False 'Désactive les événements 'Instructions ... Application.EnableEvents = True 'Réactive les événements

 


Comments
No comments
Post a Comment



    Reading Mode :
    Font Size
    +
    16
    -
    lines height
    +
    2
    -