קורס בינה מלאכותית – RB30-09 : עם עבודה עם אקסל חלק VBA 2 , ואנימציה

קורס בינה מלאכותית – RB30-09 : עם עבודה עם אקסל חלק VBA 2 , ואנימציה

חלק א :  חומר רקע על EXCEL VBA

 

VBA באקסל מתאים כאשר יש לך קובץ שהוא לא רק טבלה, אלא ממש מערכת  לניהול עבודה.

  1. הגדרות  אקסל שלפה העברית אם צריך  -התאמת אקסל לשפה בעברית

שינוי שפה לעברית (אם יש צורך !)

כדי להפוך את Excel לממשק בעברית ב־Office 2010:

דרך ההגדרות

  1. פתח Excel
  2. לחץ File
  3. לחץ Options
  4. לחץ Language
  5. באזור של Display Language חפש Hebrew / עברית
  6. סמן עברית
  7. לחץ Set as Default או Set as Preferred
  8. סגור את Excel ופתח מחדש

לפי Microsoft, שינוי שפת התצוגה של Office נעשה דרך File → Options → Language

 

1.1 שינוי שפה משמאל לימין בגיליון (אם צריך )

 

 

 


2.בשביל להוסיף VBA  נבצע את השלבים הבאים :

בשביל להוסיף VBA באקסל נבצע את השלבים הבאים:

  1. נפתח את Excel.
  2. נלחץ על קובץ.
  3. נבחר אפשרויות.
  4. נבחר התאמה אישית של רצועת הכלים.
  5. בצד ימין נסמן את האפשרות מפתחים.
  6. נלחץ אישור.
  7. עכשיו תופיע לשונית חדשה בשם מפתחים.
  8. נלחץ על מפתחים.
  9. נלחץ על Visual Basic כדי לפתוח את עורך ה־VBA.
  10. בעורך ה־VBA נבחר:

הוספה → מודול

  1. נכתוב או נדביק את קוד ה־VBA בתוך המודול.
  2. נשמור את הקובץ כסוג:

חוברת עבודה זמינה למאקרו של Excel (*.xlsm)

חשוב:

קובץ Excel רגיל מסוג .xlsx לא שומר קוד VBA.

כדי שהקוד יישמר, חייבים לשמור את הקובץ כ־.xlsm.

 

חשוב:
יש לשמור את הקובץ מסוג:

.xlsm

כדי שקוד ה־VBA, המאקרו והכפתורים יעבדו ויישמרו בתוך קובץ האקסל.

יש לשמור את הקובץ כקובץ Excel מסוג Macro-Enabled Workbook עם סיומת .xlsm.

לא כ־.xlsx.

 

לדוגמה:
יש לך טופס פרטי עובד באקסל.

תרגיל כיתה 1

  1. צורך בעזרת בינה מלאכותית את קובץ האקסל הבא

יצרת קובץ Excel עם:

שם עובד, קוד עובד, מחלקה, תפקיד, תאריך תחילת עבודה, שכר, סטטוס עובד
כולל 5 עובדים לדוגמה

 

עמודה שדה
A שם עובד
B קוד עובד
C מחלקה
D תפקיד
E תאריך תחילת עבודה
F שכר
G סטטוס עובד

 

רשימת עובדים
שם עובד קוד עובד מחלקה תפקיד תאריך תחילת עבודה שכר סטטוס עובד
דניאל כהן E001 פיתוח מהנדס תוכנה 15/03/2021 18500 פעיל
מיכל לוי E002 שיווק מנהלת שיווק 01/08/2020 17200 פעיל
יואב מזרחי E003 תפעול מנהל תפעול 10/11/2019 19800 פעיל
נועה אברהם E004 כספים חשבת שכר 22/05/2022 14500 בחופשה
אורי פרץ E005 מכירות נציג מכירות 09/01/2023 12500 פעיל

שלב 1 :

שלב 2 :

 

שלב 3 הרצה

 

שלב 4

 

שלב 5 : ניראה פלט

דוגמה א: בדיקה לפני שמירה

שמים את הקוד בתוך: ThisWorkbook ניראה שלבים בהמשך  שלבים ….

 

דוגמה ב: בדיקה לפני הדפסה

שמים את הקוד בתוך: ThisWorkbook  ניראה שלבים בהמשך  שלבים ….


תרגיל כיתה משולב מרצה

הרץ את כל הדוגמאות עם המרצה – המרצה  יסביר את הקוד בכיתה

זכרו להכניס את הקוד לתוך מודול

דוגמא 1  :

Sub CreateTitleAndMessage()

' כותב כותרת בתא A1
Range("A1").Value = "רשימת עובדים"

' כותב הודעה בתא A2
Range("A2").Value = "שלום, זה קוד VBA ראשון"

' מציג הודעה למסך
MsgBox "הקוד רץ בהצלחה"

End Sub

דוגמה 2 — קריאת קוד עובד

Sub ReadEmployeeCode()

' מציג הודעה עם קוד העובד שנמצא בתא B2
MsgBox "קוד העובד הוא: " & Range("B2").Value

End Sub

דוגמה 3 — IF פשוט: בדיקה אם עובד פעיל

Sub CheckIfActive()

' בודק אם הערך בתא G2 הוא "פעיל"
If Range("G2").Value = "פעיל" Then

' מציג הודעה אם העובד פעיל
MsgBox "העובד פעיל"

End If

End Sub

דוגמה 4 — IF ELSE: פעיל או לא פעיל

Sub CheckActiveOrNot()

' בודק אם העובד פעיל לפי הערך בתא G2
If Range("G2").Value = "פעיל" Then

' מציג הודעה כאשר העובד פעיל
MsgBox "העובד פעיל"

Else

' מציג הודעה כאשר העובד לא פעיל
MsgBox "העובד לא פעיל"

End If

End Sub

דוגמה 5 — IF ELSEIF ELSE: כמה מצבים

Sub CheckEmployeeStatus()

' בודק אם הסטטוס בתא G2 הוא פעיל
If Range("G2").Value = "פעיל" Then

' מציג הודעה שהעובד פעיל
MsgBox "העובד פעיל"

' בודק אם הסטטוס בתא G2 הוא לא פעיל
ElseIf Range("G2").Value = "לא פעיל" Then

' מציג הודעה שהעובד לא פעיל
MsgBox "העובד לא פעיל"

' בודק אם הסטטוס בתא G2 הוא בחופשה
ElseIf Range("G2").Value = "בחופשה" Then

' מציג הודעה שהעובד בחופשה
MsgBox "העובד בחופשה"

Else

' מציג הודעה כאשר הסטטוס לא מתאים לאף אפשרות
MsgBox "סטטוס לא מוכר"

End If

End Sub

דוגמה 6 — חישוב שכר שנתי

Sub CalculateYearlySalary()

' משתנה לשמירת השכר החודשי
Dim monthlySalary As Double

' משתנה לשמירת השכר השנתי
Dim yearlySalary As Double

' קורא את השכר החודשי מתא F2
monthlySalary = Range("F2").Value

' מחשב שכר שנתי לפי 12 חודשים
yearlySalary = monthlySalary * 12

' מציג את השכר השנתי בהודעה
MsgBox "השכר השנתי הוא: " & yearlySalary & " ש״ח"

End Sub

דוגמה 7 — חישוב בונוס 10%

Sub CalculateBonus()

' משתנה לשמירת השכר
Dim salary As Double

' משתנה לשמירת סכום הבונוס
Dim bonus As Double

' קורא את השכר מתא F2
salary = Range("F2").Value

' מחשב 10 אחוז מהשכר
bonus = salary * 0.1

' מציג את סכום הבונוס
MsgBox "הבונוס הוא: " & bonus & " ש״ח"

End Sub

דוגמה 8 — העלאת שכר ב־5%

Sub SalaryIncrease()

' משתנה לשמירת השכר המקורי
Dim salary As Double

' משתנה לשמירת השכר החדש
Dim newSalary As Double

' קורא את השכר מתא F2
salary = Range("F2").Value

' מחשב שכר חדש אחרי תוספת של 5 אחוז
newSalary = salary * 1.05

' מציג את השכר החדש
MsgBox "השכר החדש הוא: " & newSalary & " ש״ח"

End Sub

דוגמה 9 — IF עם חישוב: אם שכר גבוה מ־10000

Sub CheckHighSalary()

' בודק אם השכר בתא F2 גדול מ־10000
If Range("F2").Value > 10000 Then

' מציג הודעה כאשר השכר גבוה
MsgBox "שכר גבוה"

Else

' מציג הודעה כאשר השכר רגיל
MsgBox "שכר רגיל"

End If

End Sub

דוגמה 10 — כתיבת תוצאה לתא

Sub WriteStatusResult()

' בודק אם הסטטוס בתא G2 הוא פעיל
If Range("G2").Value = "פעיל" Then

' כותב בתא H2 שהעובד מאושר לעבודה
Range("H2").Value = "מאושר לעבודה"

Else

' כותב בתא H2 שהעובד לא מאושר
Range("H2").Value = "לא מאושר"

End If

End Sub

דוגמה 11 — לולאה על כל העובדים

Sub LoopEmployees()

' משתנה שמייצג את מספר השורה בלולאה
Dim i As Integer

' לולאה שעוברת משורה 2 עד שורה 6
For i = 2 To 6

' מציג את שם העובד מהעמודה הראשונה
MsgBox "שם עובד: " & Cells(i, 1).Value

Next i

End Sub

דוגמה 12 — לולאה וחישוב סך שכר

Sub TotalSalary()

' משתנה שמייצג את מספר השורה בלולאה
Dim i As Integer

' משתנה לשמירת סך כל השכר
Dim total As Double

' מאפס את סכום השכר לפני החישוב
total = 0

' לולאה שעוברת על שורות העובדים
For i = 2 To 6

' מוסיף את השכר של העובד לסכום הכללי
total = total + Cells(i, 6).Value

Next i

' מציג את סך כל השכר
MsgBox "סך כל השכר הוא: " & total & " ש״ח"

End Sub

דוגמה 13 — ספירת עובדים פעילים

Sub CountActiveWorkers()

' משתנה שמייצג את מספר השורה בלולאה
Dim i As Integer

' משתנה שסופר עובדים פעילים
Dim counter As Integer

' מאפס את המונה לפני הספירה
counter = 0

' לולאה שעוברת על שורות העובדים
For i = 2 To 6

' בודק אם הסטטוס בעמודה G הוא פעיל
If Cells(i, 7).Value = "פעיל" Then

' מוסיף 1 למונה העובדים הפעילים
counter = counter + 1

End If

Next i

' מציג את מספר העובדים הפעילים
MsgBox "מספר עובדים פעילים: " & counter

End Sub

דוגמה 14 — מציאת השכר הכי גבוה

Sub FindMaxSalary()

' משתנה שמייצג את מספר השורה בלולאה
Dim i As Integer

' משתנה לשמירת השכר הגבוה ביותר
Dim maxSalary As Double

' מתחיל מהשכר של העובד הראשון ברשימה
maxSalary = Cells(2, 6).Value

' לולאה שעוברת משורה 3 עד שורה 6
For i = 3 To 6

' בודק אם השכר הנוכחי גדול מהשכר הגבוה שנשמר
If Cells(i, 6).Value > maxSalary Then

' מעדכן את השכר הגבוה ביותר
maxSalary = Cells(i, 6).Value

End If

Next i

' מציג את השכר הגבוה ביותר
MsgBox "השכר הכי גבוה הוא: " & maxSalary

End Sub

דוגמה 15 — שם העובד עם השכר הכי גבוה

Sub FindEmployeeWithMaxSalary()

' משתנה שמייצג את מספר השורה בלולאה
Dim i As Integer

' משתנה לשמירת השכר הגבוה ביותר
Dim maxSalary As Double

' משתנה לשמירת שם העובד
Dim employeeName As String

' מתחיל מהשכר של העובד הראשון ברשימה
maxSalary = Cells(2, 6).Value

' שומר את שם העובד הראשון
employeeName = Cells(2, 1).Value

' לולאה שעוברת משורה 3 עד שורה 6
For i = 3 To 6

' בודק אם השכר בשורה הנוכחית גבוה יותר
If Cells(i, 6).Value > maxSalary Then

' מעדכן את השכר הגבוה ביותר
maxSalary = Cells(i, 6).Value

' מעדכן את שם העובד עם השכר הגבוה ביותר
employeeName = Cells(i, 1).Value

End If

Next i

' מציג את שם העובד עם השכר הגבוה ביותר
MsgBox "העובד עם השכר הכי גבוה הוא: " & employeeName

End Sub

דוגמה 16 — בדיקה אם תא ריק

Sub CheckEmptyName()

' בודק אם תא A2 ריק
If Range("A2").Value = "" Then

' מציג הודעה שחסר שם עובד
MsgBox "חסר שם עובד"

Else

' מציג את שם העובד שנמצא בתא A2
MsgBox "שם העובד הוא: " & Range("A2").Value

End If

End Sub

דוגמה 17 — בדיקה אם שכר הוא מספר

Sub CheckSalaryIsNumber()

' בודק אם הערך בתא F2 הוא מספר
If IsNumeric(Range("F2").Value) Then

' מציג הודעה שהשכר תקין
MsgBox "השכר תקין"

Else

' מציג הודעת שגיאה אם השכר אינו מספר
MsgBox "שגיאה: השכר אינו מספר"

End If

End Sub

דוגמה 18 — שינוי צבע לפי סטטוס

Sub ColorByStatus()

' בודק אם הסטטוס בתא G2 הוא פעיל
If Range("G2").Value = "פעיל" Then

' צובע את תא G2 בירוק
Range("G2").Interior.Color = vbGreen

Else

' צובע את תא G2 באדום
Range("G2").Interior.Color = vbRed

End If

End Sub

דוגמה 19 — הוספת עובד חדש לשורה הבאה

Sub AddNewEmployee()

' כותב שם עובד חדש בתא A7
Range("A7").Value = "דוד לוי"

' כותב קוד עובד בתא B7
Range("B7").Value = 1006

' כותב מחלקה בתא C7
Range("C7").Value = "פיתוח"

' כותב תפקיד בתא D7
Range("D7").Value = "מתכנת"

' כותב את התאריך של היום בתא E7
Range("E7").Value = Date

' כותב שכר בתא F7
Range("F7").Value = 12000

' כותב סטטוס עובד בתא G7
Range("G7").Value = "פעיל"

End Sub

דוגמה 20 — ניקוי תוצאות

Sub ClearResults()

' מנקה את התוכן בעמודה H משורה 2 עד שורה 6
Range("H2:H6").ClearContents

End Sub

הוסף גם דומגמא 1

 

חומר נוסף

נניח שהשדות הם:


1. בדיקה ששדה לא ריק

מה הבדיקה עושה:

בודקת אם שם העובד ריק.
אם התא ריק, מופיעה הודעה.


2. בדיקה ששם עובד לא קצר מדי ולא ארוך מדי

מה הבדיקה עושה:

בודקת שאורך שם העובד הוא בין 2 ל־30 תווים.


3. בדיקה שהגיל הוא מספר

מה הבדיקה עושה:

בודקת שהערך שהוקלד בתא גיל הוא מספר.


4. בדיקה שהגיל מעל 18

מה הבדיקה עושה:

בודקת שהגיל שהוקלד הוא 18 ומעלה.


5. בדיקה שתאריך לידה הוא תאריך תקין

מה הבדיקה עושה:

בודקת שהערך שהוקלד בתא הוא באמת תאריך.


6. בדיקה שתאריך לידה מעל 18 שנה מהיום

מה הבדיקה עושה:

בודקת שהעובד בן 18 ומעלה לפי תאריך הלידה והתאריך של היום.


7. בדיקה שתעודת זהות מכילה 9 ספרות

מה הבדיקה עושה:

בודקת שתעודת הזהות היא מספר באורך 9 ספרות.


8. בדיקה שעיר היא טקסט ולא מספר

מה הבדיקה עושה:

בודקת שהעיר לא ריקה ולא הוקלד בה מספר בלבד.


9. בדיקה שמספר טלפון באורך תקין

מה הבדיקה עושה:

בודקת שמספר הטלפון מכיל 10 ספרות.


10. בדיקה פשוטה של אימייל

מה הבדיקה עושה:

בודקת שבאימייל יש את הסימן @ ויש נקודה .


11. בדיקה ששכר הוא מספר חיובי

מה הבדיקה עושה:

בודקת שהשכר הוא מספר ושהוא גדול מ־0.


12. בדיקה שמחלקה נבחרה

מה הבדיקה עושה:

בודקת שהמשתמש בחר מחלקה ולא השאיר את הערך בחר.


דוגמה מלאה: בדיקת כל השדות יחד

מה הקוד עושה:

בודק כמה שדות יחד.
אם יש שגיאה, הוא עוצר ומציג הודעה.
אם הכול תקין, מופיעה הודעה שהטופס תקין.