א' שואל:
שלום.
איך מגדירים באקסל נוסחה כמו Today אבל שהתאריך לא ישתנה מחר.
זאת אומרת - אם מוגדר תנאי שאם כתוב "1" אז יחושב התאריך של היום (Today) אבל לאחר מכן התאריך ישאר אותו דבר ולא יתעדכן אוטומטית כמו בToday?
תודה רבה
תשובה:
ניתן לבצע זאת באמצעות הגדרת נוסחה בתא אבל הנוסחה תכלול הפנייה מעגלית לאותו תא על מנת לבדוק האם התא מכיל כבר תאריך.
לא מומלץ להגדיר נוסחאות עם הפניה מעגלית באקסל למרות שניתן לאפשר זאת בהגדרות.
מצ"ב הצעה לפתרון על ידי שימוש בקוד VBA -
1. בגיליון אקסל בתא A2 נגדיר את הטקסט "Flag" ובתא B2 נגדיר את הטקסט "Date".
2. נפתח את עורך VBA של אקסל על ידי לחיצה על Alt+F11, נסמן את שם הגיליון Sheet1, נלחץ על לחצן ימני בעכבר ונבחר View Code.
3. נעתיק ונדביק את הקוד הבא לאקסל -
Private Sub Worksheet_Change(ByVal Target As Range)
Application.EnableEvents = False
With ActiveSheet
If (.Range("A3") = 1 And .Range("B3") = 0) Then
.Range("B3") = Date
End If
End With
Application.EnableEvents = True
End Sub
4. התוצאה - בהזנת הערך "1" בתא A4 יחושב התאריך הנוכחי בתא B4 ולאחר מכן הוא לא ישתנה (אלא אם כן יעודכן הערך בתא A4).
5. על מנת שהקוד יישמר יש לשמור את קובץ האקסל בפורמט XLSM באופן הבא -
צוות AnyFit