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

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



الأحداث أو بالفرنسية LES ÉVÉNEMENTS


في هذه التدوينة من سلسلة أساسيات VBA إكسل سنتكلم على الأحداث أو بالفرنسية LES ÉVÉNEMENTS.

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

هناك نوعان من الأحداث في VBA إكسل : 

بالنسبة لهذه التدوينة سنتكلم فيها عن حدث المصنف أما بالنسبة لورقة العمل سنتكلم عنها في تدوينة أخرى.


 WORKBOOK_OPEN عند الفتح


لتنفيذ التعليمات عند فتح المصنف وذالك بعد القيام بتنشيط وحدات الماكرو، نننتقل إلى ThisWorkbook نختار دفتر العمل :

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


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

Private Sub Workbook_Open() End Sub

و عند إضافة العبارة التالية ، سيتم عرض مربع حوار عند فتح المصنف:

Private Sub Workbook_Open() MsgBox "Message de bienvenue" End Sub

 WORKBOOK_BEFORECLOSE قبل الإغلاق

لتنفيذ التعليمات قبل إغلاق المصنف مباشرة ، اختر قبل الإغلاق :

Private Sub Workbook_BeforeClose(Cancel As Boolean) End Sub

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


يمكننا التراجع عن إغلاق المصنف عبر تعيين القيمة True عامل Cancel

في المثال التالي حيث يجب على المستخدم التأكيد لإغلاق المصنف:

Private Sub Workbook_BeforeClose(Cancel As Boolean) 'Si l'utilisateur répond Non, la variable Cancel vaudra True (ce qui annulera la fermeture) If MsgBox("Etes-vous certain de vouloir fermer ce classeur ?", 36, "Confirmation") = vbNo Then Cancel = True End If End Sub


 WORKBOOK_BEFORESAVE  قبل الحفظ

يتم تشغيل هذا الحدث قبل التسجيل مباشرة:


Private Sub Workbook_BeforeSave(ByVal SaveAsUI As Boolean, Cancel As Boolean) End Sub

يمكن إلغاء التسجيل عن طريق تخصيص القيمة True عامل Cancel.


 WORKBOOK_AFTERSAVE بعد التسجيل

يتم تشغيل هذا الحدث بعد التسجيل:

Private Sub Workbook_AfterSave(ByVal Success As Boolean) End Sub

 WORKBOOK_BEFOREPRINTقبل الطباعة

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

Private Sub Workbook_BeforePrint(Cancel As Boolean) End Sub

يمكن إلغاء الطباعة عن طريق تعيين القيمة True عامل Cancel


 WORKBOOK_SHEETACTIVATE عند تنشيط ورقة


يتم تشغيل هذا الحدث في كل مرة يتم فيها تغيير الورقة:

Private Sub Workbook_SheetActivate(ByVal Sh As Object)

End Sub

على سبيل المثال ، عرض اسم الورقة في مربع حوار:

Private Sub Workbook_SheetActivate(ByVal Sh As Object)

    MsgBox "Nom de la feuille : " & Sh.Name

End Sub

 WORKBOOK_SHEETBEFOREDOUBLECLICK قبل النقر بشكل مزدوج


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

Private Sub Workbook_SheetBeforeDoubleClick(ByVal Sh As Object, ByVal Target As Range, Cancel As Boolean)

End Sub

في هذا المثال  ، سنرى كيفية تلوين خلية تم النقر عليها نقرًا مزدوجًا استنادًا إلى الورقة:

Private Sub Workbook_SheetBeforeDoubleClick(ByVal Sh As Object, ByVal Target As Range, Cancel As Boolean)

    If Sh.Name = "Feuil1" Then
        Target.Interior.Color = RGB(255, 108, 0) 'Couleur orange
    Else
        Target.Interior.Color = RGB(136, 255, 0) 'Couleur verte
    End If

End Sub


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


WORKBOOK_SHEETBEFORERIGHTCLICK قبل النقر بزر الماوس الأيمن

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

Private Sub Workbook_SheetBeforeRightClick(ByVal Sh As Object, ByVal Target As Range, Cancel As Boolean)

End Sub

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

يتم تشغيل هذا الحدث في كل مرة يتم فيها تعديل محتوى خلية:

Private Sub Workbook_SheetChange(ByVal Sh As Object, ByVal Target As Range)

End Sub

 WORKBOOK_SHEETSELECTIONCHANGE عند كل تغيير للمحدد

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

Private Sub Workbook_SheetSelectionChange(ByVal Sh As Object, ByVal Target As Range)

End Sub

على سبيل المثال ، تلوين التحديد إذا كان A1 فارغًا:

Private Sub Workbook_SheetSelectionChange(ByVal Sh As Object, ByVal Target As Range)

    If Range("A1") = "" Then
        Target.Interior.Color = RGB(124, 255, 255) 'Bleu clair
    End If

End Sub

 WORKBOOK_NEWSHEET عند إدراج ورقة

يتم تشغيل هذا الحدث في كل مرة يتم فيها إدراج ورقة جديدة:

Private Sub Workbook_NewSheet(ByVal Sh As Object)

End Sub

 

 


Comments
No comments
Post a Comment



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