עזרה באקסל קוד לתאריך עברי + פרשת השבוע

עמיק

משתמש פעיל
אשמח מאוד אם מישהו יעלה קוד לתאריך עברי + פרשת השבוע לאקסס או לאקסל
בקוד שהעלו פה בפורום, הפרשה בשבועות אלו כשיש הבדל בין הפרשה בארץ לפרשה בחו"ל לא נכון,
גם כשמגדירים בקוד את המיקום לא"י.
 

אפר

סתם מתעניין...
מנוי פרימיום
אשמח מאוד אם מישהו יעלה קוד לתאריך עברי + פרשת השבוע לאקסס או לאקסל
בקוד שהעלו פה בפורום, הפרשה בשבועות אלו כשיש הבדל בין הפרשה בארץ לפרשה בחו"ל לא נכון,
גם כשמגדירים בקוד את המיקום לא"י.
תפנה לקוד וננסה לתקן
 

עמיק

משתמש פעיל
האמת היא שרציתי מזמן להעלות את הקובץ לטובת החברים,אך לא אסתייעא מילתא .
הקובץ המקורי הוא קובץ אקסס בשם " זמני היום " כמדומני.
התאמתי את הקוד לאקסל עם תוספות קטנות.
 

קבצים מצורפים

  • פונקציות תאריך עברי חדש.zip
    KB 103.2 · צפיות: 185

xl3391

משתמש מקצוען
שיש הבדל בין הפרשה בארץ לפרשה בחו"ל לא נכון,
גם כשמגדירים בקוד את המיקום לא"י.
אני לא רואה בקוד התייחסות לחו"ל. הפונקציה IsIsrael מחזירה תמיד TRUE.
בקוד עצמו בפונקציה GetParshaX שנמצאת במודול1, ב Select Case nParshaNumber ב Case 32 שמתייחס לפרשת בהר, הקוד לא מתבצע מכיוון שIsIsrael שווה TRUE ואין קוד לביצוע אלא רק בELSE.
יוצא שפרשות בהר ובחוקותי לא מתחברות בשנים שאינן מעוברות וכל אחת מקבלת בספירה שבת משל עצמה.
לדעתי למחוק את המילה ELSE בCase 32 בכדי שהקוד יתיחס לif שלפניו ויתבצע.
 

עמיק

משתמש פעיל
ל-xl3391 תודה רבה
במודול1 יש פונקציה בוליאנית בשם "IsIsrael " בפונקציה זו אם רוצים שהקוד יתייחס לישראל צריך לתת את הערך "true", במקרה שהתייחסות היא לחו"ל צריך לרשום "false".

יוצא שפרשות בהר ובחוקותי לא מתחברות בשנים שאינן מעוברות וכל אחת מקבלת בספירה שבת משל עצמה.
מה שכתבתם נכון לחו"ל כי הELSE מתייחס לחו"ל.
המתכנת שכתב את הקוד כנראה התמקד בעיקר בחו"ל ולכן השאיר את האפשרות של ישראל (שהחישוב תלוי בכמה מרכיבים כפי שהוא מציין בהערה) להמשך .
 

xl3391

משתמש מקצוען
מצ"ב קובץ. נראה לי שבסדר אבל תבדוק.
(הוספתי פונקציה שמחזירה יום בשבוע שחל פסח).

לגבי א"י וחו"ל, אם תסתכל בפונקציה של יום טוב, היא מחזירה לפי הארץ. (שבועות לפי יום אחד, פסח לפי 7 ימים...), ולכן לדעתי גם אם תעדכן את הפונקציה של א"י שתחזיר FALSE לא באמת תוחזר הפרשה בחו"ל. אבל לא בדקתי את זה. רק לפי מה שראיתי ככה. אולי אני טועה.
 

קבצים מצורפים

  • פונקציות תאריך עברי חדש.zip
    KB 110.3 · צפיות: 118

משה כהנא

משתמש פעיל
מנוי פרימיום
בוגר/תלמיד פרוג
D I G I T A L
אני הוספתי שם את השורות לבדיקה האם פסח חל בשבת ואינו שנה מעוברת אז הוא נפרד
Case 32
If IsIsrael Then 'הוספתי לבד כי לא היה במקור - הוספתי על פי החוקים
' Inside Israel: Combine if Passover does not start on Shabbat AND NOT a leap year.
' The Passover exception only occurs in a 354-day year in which Rosh HaShanah starts on Thursda
If IsLeapYear(nYearH) Then
bDoubleParsha = False
Else
' אם פסח חל בשבת, בא"י, ובשנה פשוטה אז מפרידים
If Weekday(HebToGreg(nYearH, 8, 15)) = vbSaturday Then
bDoubleParsha = False
Else
bDoubleParsha = True
End If
End If
 

עמיק

משתמש פעיל
אני הוספתי שם את השורות לבדיקה האם פסח חל בשבת ואינו שנה מעוברת אז הוא נפרד
אני גם הוספתי את הקוד
Case 32
If IsLeapYear(nYearH) = False Then
If Not (IsIsrael = True And Weekday(fRoshHashanah(nYearH)) = 5 And DayOfPesach(nYearH) = 7) Then
bDoubleParsha = True
End If
End If
אבל עיין בתאריכים אלו ותבדוק אם הפרשה נכונה
09/03/2024​
27/07/2024​
24/05/2025​
לדעתי הבעיה בקוד הבא ולכן הוספתי לו if
Private Function InitWorkingShabbos(d As Date) As Date
Dim nYearH As Long
Dim nMonthH As Long
Dim nDateH As Long
GregToHeb d, nYearH, nMonthH, nDateH
rh = HebToGreg(nYearH, 1, 1)
d = ShabbosOfDate(d)
InitWorkingShabbos = ShabbosOfDate(PreviousSimchasTorah(d)) '''''' '
If Weekday(rh) <> 7 Then
InitWorkingShabbos = InitWorkingShabbos - 7
End If
End Function
נראה לי שעכשיו זה תקין אבל לא הספקתי לבדוק יסודי
 

xl3391

משתמש מקצוען
Weekday(fRoshHashanah(nYearH)) = 5
לפי ההערה שכתב המתכנת אין צורך בבדיקה הזאת, כיוון שאם השנה אינה מעוברת ופסח חל בשבת, ראש השנה בהכרח חל ביום חמישי. (החריגה הזאת שפסח חל בשבת בשנה פשוטה קיימת רק כאשר זו שנה של 354 ימים ורה"ש ביום חמישי)
1594648479965.png


לדעתי הבעיה בקוד הבא ולכן הוספתי לו if
Private Function InitWorkingShabbos(d As Date) As Date
Dim nYearH As Long
Dim nMonthH As Long
Dim nDateH As Long
GregToHeb d, nYearH, nMonthH, nDateH
rh = HebToGreg(nYearH, 1, 1)
d = ShabbosOfDate(d)
InitWorkingShabbos = ShabbosOfDate(PreviousSimchasTorah(d)) '''''' '
If Weekday(rh) <> 7 Then
InitWorkingShabbos = InitWorkingShabbos - 7
End If
End Function
נראה לי שעכשיו זה תקין אבל לא הספקתי לבדוק יסודי
אכן נראה שהבעיה בקוד הזה, אבל כאשר שמחת תורה חל בשבת. ואמנם כאשר רה"ש בשבת גם שמחת תורה בשבת, אבל בתאריכים שבין רה"ש לשמחת תורה בשנה שרה"ש חל בשבת, צריך להתחשב ביום שחל בו שמחת תורה בשנה הקודמת.
למשל האם עבור 26/9/20 מתקבלת הפרשה הנכונה?
אולי כדאי לשנות ל:
קוד:
Private Function InitWorkingShabbos(D As Date) As Date
  Dim prvST As Date
  D = ShabbosOfDate(D)
  prvST = PreviousSimchasTorah(D)
  If Weekday(prvST) = 7 Then
      InitWorkingShabbos = prvST
  Else
      InitWorkingShabbos = ShabbosOfDate(prvST) - 7
  End If
End Function
 

עמיק

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

moshem

משתמש פעיל
מנוי פרימיום
בוגר/תלמיד פרוג
D I G I T A L
תיקון נוסף :
את השבת של שמחת תורה, לא החזיר בכלל ערך,
אז הוספתי את הקטע המסומן.
1625404414335.png
 

ns1992

משתמש חדש
יש אפשרות להעלות את הקוד הסופי עם התיקונים? שבו פרשות השבוע מוצגות באופן נכון בהתאם לתאריך?
 

אולי מעניין אותך גם...

הפרק היומי

הפרק היומי! כל ערב פרק תהילים חדש. הצטרפו אלינו לקריאת תהילים משותפת!


תהילים פרק קמז

א הַלְלוּיָהּ כִּי טוֹב זַמְּרָה אֱלֹהֵינוּ כִּי נָעִים נָאוָה תְהִלָּה:ב בּוֹנֵה יְרוּשָׁלִַם יְהוָה נִדְחֵי יִשְׂרָאֵל יְכַנֵּס:ג הָרֹפֵא לִשְׁבוּרֵי לֵב וּמְחַבֵּשׁ לְעַצְּבוֹתָם:ד מוֹנֶה מִסְפָּר לַכּוֹכָבִים לְכֻלָּם שֵׁמוֹת יִקְרָא:ה גָּדוֹל אֲדוֹנֵינוּ וְרַב כֹּחַ לִתְבוּנָתוֹ אֵין מִסְפָּר:ו מְעוֹדֵד עֲנָוִים יְהוָה מַשְׁפִּיל רְשָׁעִים עֲדֵי אָרֶץ:ז עֱנוּ לַיהוָה בְּתוֹדָה זַמְּרוּ לֵאלֹהֵינוּ בְכִנּוֹר:ח הַמְכַסֶּה שָׁמַיִם בְּעָבִים הַמֵּכִין לָאָרֶץ מָטָר הַמַּצְמִיחַ הָרִים חָצִיר:ט נוֹתֵן לִבְהֵמָה לַחְמָהּ לִבְנֵי עֹרֵב אֲשֶׁר יִקְרָאוּ:י לֹא בִגְבוּרַת הַסּוּס יֶחְפָּץ לֹא בְשׁוֹקֵי הָאִישׁ יִרְצֶה:יא רוֹצֶה יְהוָה אֶת יְרֵאָיו אֶת הַמְיַחֲלִים לְחַסְדּוֹ:יב שַׁבְּחִי יְרוּשָׁלִַם אֶת יְהוָה הַלְלִי אֱלֹהַיִךְ צִיּוֹן:יג כִּי חִזַּק בְּרִיחֵי שְׁעָרָיִךְ בֵּרַךְ בָּנַיִךְ בְּקִרְבֵּךְ:יד הַשָּׂם גְּבוּלֵךְ שָׁלוֹם חֵלֶב חִטִּים יַשְׂבִּיעֵךְ:טו הַשֹּׁלֵחַ אִמְרָתוֹ אָרֶץ עַד מְהֵרָה יָרוּץ דְּבָרוֹ:טז הַנֹּתֵן שֶׁלֶג כַּצָּמֶר כְּפוֹר כָּאֵפֶר יְפַזֵּר:יז מַשְׁלִיךְ קַרְחוֹ כְפִתִּים לִפְנֵי קָרָתוֹ מִי יַעֲמֹד:יח יִשְׁלַח דְּבָרוֹ וְיַמְסֵם יַשֵּׁב רוּחוֹ יִזְּלוּ מָיִם:יט מַגִּיד (דברו) דְּבָרָיו לְיַעֲקֹב חֻקָּיו וּמִשְׁפָּטָיו לְיִשְׂרָאֵל:כ לֹא עָשָׂה כֵן לְכָל גּוֹי וּמִשְׁפָּטִים בַּל יְדָעוּם הַלְלוּיָהּ:
נקרא  23  פעמים

ספירת העומר

לוח מודעות

למעלה