أساسيات VBA إكسل : حدث ورقة العمل - الأحداث في VBA الجزء الثاني
في التدوينة السابقة ، تكلمنا عن حدث المصنف، أما في هذه التدوينة ستكون عبارة عن جزء ثاني من درس الاحداث و سيكون الحديث عن حدث ورقة العمل .
WORKSHEET_SELECTIONCHANGE عند تغيير التحديد
لتنفيذ تعليمات تستند إلى حدث لورقة معينة ، نحدد الورقة في المحرر ، ثم ورقة عمل أو Worksheet :
الحدث 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
لنفهم أكثر سنقوم بإضافة تاريخ اليوم عن طريق
النقر بزر الماوس الأيمن إذا كانت الخلية التي تم النقر فوقها موجودة في العمود C
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 عند تعديل كل خلية
يتم تشغيل هذا
الحدث عند تعديل محتويات خلايا الورقة:
End Sub
كيفية تعطيل كافة الأحداث مؤقتًا
لتشغيل
التعليمات البرمجية دون زيادة الأحداث ، سنضعها بين هذين السطرين:
Application.EnableEvents = False 'Désactive les événements 'Instructions ... Application.EnableEvents = True 'Réactive les événements