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

  • הוסף לסימניות
  • #1
אשמח מאוד אם מישהו יעלה קוד לתאריך עברי + פרשת השבוע לאקסס או לאקסל
בקוד שהעלו פה בפורום, הפרשה בשבועות אלו כשיש הבדל בין הפרשה בארץ לפרשה בחו"ל לא נכון,
גם כשמגדירים בקוד את המיקום לא"י.
 
  • הוסף לסימניות
  • #2
אשמח מאוד אם מישהו יעלה קוד לתאריך עברי + פרשת השבוע לאקסס או לאקסל
בקוד שהעלו פה בפורום, הפרשה בשבועות אלו כשיש הבדל בין הפרשה בארץ לפרשה בחו"ל לא נכון,
גם כשמגדירים בקוד את המיקום לא"י.
תפנה לקוד וננסה לתקן
 
  • הוסף לסימניות
  • #3
האמת היא שרציתי מזמן להעלות את הקובץ לטובת החברים,אך לא אסתייעא מילתא .
הקובץ המקורי הוא קובץ אקסס בשם " זמני היום " כמדומני.
התאמתי את הקוד לאקסל עם תוספות קטנות.
 

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

  • פונקציות תאריך עברי חדש.zip
    KB 103.2 · צפיות: 289
  • הוסף לסימניות
  • #4
שיש הבדל בין הפרשה בארץ לפרשה בחו"ל לא נכון,
גם כשמגדירים בקוד את המיקום לא"י.
אני לא רואה בקוד התייחסות לחו"ל. הפונקציה IsIsrael מחזירה תמיד TRUE.
בקוד עצמו בפונקציה GetParshaX שנמצאת במודול1, ב Select Case nParshaNumber ב Case 32 שמתייחס לפרשת בהר, הקוד לא מתבצע מכיוון שIsIsrael שווה TRUE ואין קוד לביצוע אלא רק בELSE.
יוצא שפרשות בהר ובחוקותי לא מתחברות בשנים שאינן מעוברות וכל אחת מקבלת בספירה שבת משל עצמה.
לדעתי למחוק את המילה ELSE בCase 32 בכדי שהקוד יתיחס לif שלפניו ויתבצע.
 
  • הוסף לסימניות
  • #5
ל-xl3391 תודה רבה
במודול1 יש פונקציה בוליאנית בשם "IsIsrael " בפונקציה זו אם רוצים שהקוד יתייחס לישראל צריך לתת את הערך "true", במקרה שהתייחסות היא לחו"ל צריך לרשום "false".

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

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

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

  • פונקציות תאריך עברי חדש.zip
    KB 110.3 · צפיות: 181
  • הוסף לסימניות
  • #7
אני הוספתי שם את השורות לבדיקה האם פסח חל בשבת ואינו שנה מעוברת אז הוא נפרד
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
 
  • הוסף לסימניות
  • #8
אני הוספתי שם את השורות לבדיקה האם פסח חל בשבת ואינו שנה מעוברת אז הוא נפרד
אני גם הוספתי את הקוד
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
נראה לי שעכשיו זה תקין אבל לא הספקתי לבדוק יסודי
 
  • הוסף לסימניות
  • #9
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
 
  • הוסף לסימניות
  • #10
צריך להתחשב ביום שחל בו שמחת תורה בשנה הקודמת
כפי שכבר כתבתי ל @משה כהנא לא הספקתי לבדוק את התוצאה
לכן לא רציתי לפרסם בתחילה את הקוד,המטרה היתה להדגיש שהבעיה בפונקציה השניה.
עכ"פ נראה שעכשיו הגענו לתוצאה הנכונה.
יישר כח ענק על ההשקעה העצומה והיצירתיות הרבה בפורום .
 
  • הוסף לסימניות
  • #11
תיקון נוסף :
את השבת של שמחת תורה, לא החזיר בכלל ערך,
אז הוספתי את הקטע המסומן.
1625404414335.png
 
  • הוסף לסימניות
  • #12
יש אפשרות להעלות את הקוד הסופי עם התיקונים? שבו פרשות השבוע מוצגות באופן נכון בהתאם לתאריך?
 
  • הוסף לסימניות
  • #14
@xl3391
@משה כהנא
@moshem
ביקשו כאן כמה
ואני מצטרף לבקשה להעלות את הקובץ התקין שיופיע תאריך ופרשה
היום למשל הוא מראה פרשת בהר בלבד במקום בהר בחוקתי
תודה רבה
 

פרוגבוט

תוכן שיווקי
פרסומת

הצטרפות לניוזלטר

איזה כיף שהצטרפתם לניוזלטר שלנו!

מעכשיו, תהיו הראשונים לקבל את כל העדכונים, החדשות, ההפתעות בלעדיות, והתכנים הכי חמים שלנו בפרוג!

לוח מודעות

הפרק היומי

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


תהילים פרק כה

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