דילוג לתוכן
  • דף הבית
  • קטגוריות
  • פוסטים אחרונים
  • משתמשים
  • חיפוש
  • חוקי הפורום
כיווץ
תחומים

תחומים - פורום חרדי מקצועי

💡 רוצה לזכור קריאת שמע בזמן? לחץ כאן!
OdedDvirO

OdedDvir

@OdedDvir
אודות
פוסטים
2.4k
נושאים
59
קבוצות
0
עוקבים
21
עוקב אחרי
0

פוסטים

פוסטים אחרונים הגבוה ביותר שנוי במחלוקת

  • בדיקת תקינות של תעודת זהות באקסל
    OdedDvirO OdedDvir

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

    =LET(N,REPT(0,9-LEN(A1))&A1,LET(P,"0246813579",MOD(MID(N,1,1)+MID(P,MID(N,2,1)+1,1)+MID(N,3,1)+MID(P,MID(N,4,1)+1,1)+MID(N,5,1)+MID(P,MID(N,6,1)+1,1)+MID(N,7,1)+MID(P,MID(N,8,1)+1,1)+MID(N,9,1),10)=0))
    

    מצורף קובץ משופר: בדיקת תקינות תעודת זהות.xlsx


  • איך אני יכול לפצל קובץ וורד גדול לפי מקטעים
    OdedDvirO OdedDvir

    @אוריי תדביק את הקוד הבא במודול:

    Public Sub SplitActiveDocumentBySection()
        Dim outputDoc As Document
        Dim sectionCount As Integer
        Dim currentSection As Section
        Dim baseFileName As String
        
        sectionCount = ActiveDocument.Sections.Count
        If MsgBox("Would you like to split this document into " & sectionCount & " sections?", vbYesNo) <> vbYes Then Exit Sub
    
        baseFileName = CreateObject("Scripting.FileSystemObject").GetBaseName(ActiveDocument.Name)
        For Each currentSection In ActiveDocument.Sections
            Application.StatusBar = "Saving section " & currentSection.Index & " of " & sectionCount & "..."
            currentSection.Range.Copy
            Set outputDoc = Documents.Add(Visible:=False)
            outputDoc.Range.Paste
            outputDoc.SaveAs ActiveDocument.Path & "\" & baseFileName & "_Section_" & Right$("000" & currentSection.Index, 4) & ".docx"
            outputDoc.Close
        Next currentSection
        Application.StatusBar = "All Done!"
        Set outputDoc = Nothing
    End Sub
    

  • סידור נתונים מאקסל למיזוג
    OdedDvirO OdedDvir

    @יהודי-טוב בבקשה:
    שלב א: תוסיף כותרות לעמודות
    efe3c98b-d7e6-4fa0-b072-a94e72e98469-תמונה.png
    שלב ב: יצירת שאילתה
    בחר את כל הטבלה ע"י Ctrl+A ומהתפריט למעלה נתונים > מטבלה ותלחץ על אישור.
    84e5cf62-0f6f-4550-8fb1-de08053e5ff8-תמונה.png
    ייפתח לך חלון של PowerQuery.
    שלב ג: קיבוץ הנתונים לפי כתובת:
    קליק ימני על הכותרת "כתובת", ותבחר קיבוץ לפי...
    0369e4cb-96d5-4154-856d-f473ecd95bad-תמונה.png
    בחלון שייפתח תכניס את הערכים כפי שמופיע להלן באדום:
    2b54a693-71c1-4c44-a04f-ce0cce7eb614-תמונה.png
    ותלחץ על אישור.
    אנחנו נקבל עמודה חדשה עם שגיאה (כי אקסל לא יודע לסכום טקסט, כמובן)
    אבל כבר נתקן את זה. אנחנו צריכים לשנות את הטקסט שסימנתי בצהוב:
    4b5c0d4a-aeb9-4e9a-a1be-f04602a588a0-תמונה.png
    כנס לנוסחא, תלחץ על Ctrl+Shift השמאליים כדי להפוך את כיוון הקריאה, ותשנה את הטקסט שבצהוב לטקסט הבא:

    Text.Combine([משפחה],", ")
    

    הנה הנוסחא המתוקנת:
    f72eef11-1509-492e-9ce4-a343b7f99282-תמונה.png
    תקיש אנטר ותקבל את התוצאה הרצויה:
    ac3e474e-86a1-4a86-abae-854671e7ac28-תמונה.png
    שלב ד: שמירת הטבלה החדשה:
    תבחר מהתפריט למעלה "סגור וטען" כדי להדביק בגליון חדש, או סגור וטען ב... כדי להדביק בגליון קיים.

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


  • np.unravel_index בjs
    OdedDvirO OdedDvir

    אז ככה:
    אודה שלא התעמקתי עד הסוף, אבל כפי הבנתי הפונקציה ממירה אינדקס לינארי לאינדקס N מימדי, בהנתן גודל המימדים הרצוי.

    אני אנסה להמחיש על ידי דוגמא:

    נניח שאני רוצה לבנות בנין הדומה למבנה קוביה הונגרית, מימדי הקוביה הן 3x3x3.
    אם כן, הבניין יכיל 3 קומות ובכל קומה 9 דירות: 3 לאורך ו-3 לרוחב. סה"כ 27 דירות.

    אני רוצה לתת מספר לכל דירה.
    אני אתחיל בסריקה קומה אחר קומה מ-1 עד 3, ובכל קומה אני אסרוק את הדירות שורה שורה, בכל פעם אני אתן מספר עוקב מ-1 עד 27.
    (למעשה, מספרי הקומות הן 0 עד 2 ומספרי הדירות יהיו 0-26. למה? כי מתכנתים אמיתיים לא סופרים מ-1...)

    בוא נראה, מה האינדקס של כל דירה? הוא תלת מימדי [x,y,z]
    X – קומה
    Y – שורה
    Z - טור

    מספר דירה אינדקס
    0 [0,0,0]
    1 [0,0,1]
    2 [0,0,2]
    3 [0,1,0]
    4 [0,1,1]
    5 [0,1,2]

    כעת אני אשאל: היכן נמצאת דירה מספר 12 בקוביה? האינדקס הלינארי של הדירה הוא 12, אבל מה האינדקס התלת מימדי שלה?

    נכון, היא בקומה השניה (1) בשורה השניה (1) ובטור הראשון (0)
    כלומר באינדקס [1,1,0]
    (שים לב שוב שהיא הדירה ה-13 כי מתחילים מ-0...)

    הפונקציה unravel_index מבצעת את הפעולה שעשיתי למעלה: היא מקבלת שני ארגומנטים, א. האינדקס הלינארי, ב. מימדי התחום
    ומחזירה את האינדקס ה-N מימדי.

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

    unravel_index(12,(3,3,3))
    

    אמורה להחזיר את האינדקס התלת מימדי: (1,1,0)


  • אקסס-קריאה למאקרו יותר מ19 פעמים?
    OdedDvirO OdedDvir

    @יהודי-טוב אויש, מאקרו....
    זה נראה בעייה של מאקרו מקונן (Nested), כלומר שהמאקרו קורא למאקרו שקורא למאקרו וכו' 19 פעמים ברציפות. טוב שיש הגבלה רק עד 19 רבדים ולא יותר...
    אגב, התנהגות של קריאה בתוך קריאה בתוך קריאה וכו' בעומק של 19 רמות (!!!) זה נשמע מאוד כמו לוגיקה שגוייה. תבדוק את ההגיון מאחורי המאקרו היטב.

    כמו שציין @avi-rz אם תצרף צילום של המאקרו אולי זה יסייע לעזור לך, אבל אני הייתי נמנע לגמרי משימוש במאקרו, ועובר לקוד VBA, שהרבה יותר קל לדיבוג.


  • עזרה| מיזוג דואר עם תאריכים מותאמים אישית
    OdedDvirO OdedDvir

    @zvinissim זה מפני שהתאריך מאוחסן באקסל בתור מספר, ורק מעוצב כתאריך.
    הפתרון הכי מהיר זה להמיר את התאריכים למחרוזת על ידי הפונקצייה Text(), תוסיף עוד עמודה לתאריך, ותכתוב בה את הנוסחה:

    =TEXT(J3,"dd/mm/yyyy")
    

    את העמודה הזו תייבא במיזוג הדואר.

    עריכה:
    במקרה שלך אולי תרצה לייצא רק את החודש והשנה:

    =TEXT(J3,"mm/yyyy")
    

  • כיווץ קבצים מרובים למס' ארכיונים עצמאיים
    OdedDvirO OdedDvir

    @UA יש תוכנה חינמית בשם Folder-Axe שעושה בדיוק את זה: מחלקת תיקיה למספר תיקיות לפי קריטריונים לבחירתך, גודל, מספר קבצים, שם ועוד.
    תוכל לבחור בתוכנה לכווץ כל תיקיה לארכיון ZIP נפרד.
    צילום מסך:
    a1530e8e-0ddf-47a2-a0b0-fedef3e88547-תמונה.png


  • הפעלת וינדווס טרמינל (wt) כמנהל
    OdedDvirO OdedDvir

    @chv בעקבות הפוסט קיצור דרך למיקום מסוים במחשב
    הצלחתי להפעיל את הטרמינל כמנהל כך:

    1. יצרתי משימה חדשה במתזמן המשימות:
    e14ccf37-35cb-4ab3-bab9-ed998012aeff-תמונה.png

    2. בקטגוריה Actions הגדרתי פעולה חדשה:
    1abebbbe-d75e-4057-8b66-95f0c2a2c448-תמונה.png

    3. יצרתי קיצור דרך על שולחן העבודה:
    וביעד רשמתי:

    C:\Windows\System32\schtasks.exe /run /tn "AdminTerminal"
    

    עכשיו הקצתי קיצור מקשים כרצוני (למשל Ctrl + Alt + T)
    e8add582-71fd-4347-8148-bb6af168ac29-תמונה.png

    זהו. עובד.


  • תכנון פונקציה: האם לשים פרמטרים מרובים או מערך
    OdedDvirO OdedDvir

    לא זה ולא זה.
    הדרך הנכונה היא ליצור אובייקט שמכיל את כל השדות ולהעביר אותו לפונקציה.
    כך C#:

    public record JobSpecifications {
       public string JobName {get; set;}
       public double WorkHours {get; set;}
       ...
    }
    
    public decimal CalculatePrice(JobSpecifications specs)
    {
       ...
       return price;
    }
    
    

    זה יעיל מכל הבחינות, והרבה יותר קל לתחזוקה.


  • API למיקוד לפי כתובת בישראל- האם קיים?
    OdedDvirO OdedDvir

    לכל מאן דבעי: נפתח בנטפרי.


  • SQL - GROUP BY HEBREW MONTH ?
    OdedDvirO OdedDvir

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


  • מסד נתונים כטבלא בשני ממדים
    OdedDvirO OdedDvir

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

    זה הדברים הקטנים האלו בתכנות שעלולים לגרום בעיות גדולות בהמשך.
    דוגמא משעשעת לכך היא הטעות שהשתרבבה לגוגל באחד העדכונים ל ChromeOS, וגרמה לאלפי משתמשים להנעל מחוץ לחשבון שלהם.
    הטעות היתה בהשמטת תו אחד בודד בבדיקה של סיסמת המשתמש בתנאי if, בו בטעות השתמשו באופרטור הבינארי & במקום באופרטור הלוגי &&.
    דהיינו כתבו:

    if (key_data_.has_value() & !key_data_->label().empty()) {
    

    במקום

    if (key_data_.has_value() && !key_data_->label().empty()) {
    

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


  • מסד נתונים כטבלא בשני ממדים
    OdedDvirO OdedDvir

    התחביר הנכון הוא כך:

    SELECT monthYear,
           SUM(CASE WHEN name = 'REOUVEN' THEN price END) AS REOUVEN,
           SUM(CASE WHEN name = 'SHIMON' THEN price END) AS SHIMON,
           SUM(CASE WHEN name = 'LEVI' THEN price END) AS LEVI    
    FROM AZMANOT
    GROUP BY monthYear
    ORDER BY monthYear DESC;
    

  • bootstrap-vue CSS יצירת משבצות
    OdedDvirO OdedDvir

    @חוקר הנה נקודת התחלה בשבילך: תשתמש בכרטיסיות.
    תחליף את שורות 45-48 בקוד הבא:

     <b-card-group deck>
       <b-col cols="3" class="my-2" v-for="(val, key) in slotsA">
         <b-card v-bind:header="key">
           <b-card-text>{{ val }}</b-card-text>
         </b-card>
       </b-col>
    </b-card-group>
    

    התוצאה (לא הפכתי LTR):
    bffe45e7-9d7e-427f-ab32-1192abbc7989-תמונה.png


  • שינוי שפת תוכנה
    OdedDvirO OdedDvir

    @ארי לענ"ד הפתרון שלך הוא הנכון. כמה נקודות למחשבה:
    1.צור טבלה עם הערכים השונים לכל שפה.
    2. אם תתן שם ראוי לכל פקד, התחזוקה של טבלת השפה תהיה קלה ביותר.
    3. מבנה הטבלה הוא כזה:

    FormName ControlName HebrewCaption EnglishCaption
    frmSomeForm cmdView הצג View

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

    עריכה:
    תוך כדי כתיבה ראיתי שכבר דוד קדמני. בכל מקרה אני מוסיף כאן את הקוד בטעינת טופס:
    בהנחה ששם השפה נמצא במשתנה CurrentLanguageName:

    Dim ctrl As Control
    For Each ctrl In Me.Controls
       Select Case ctrl.ControlType
          Case acLabel, acTextBox
             Dim TextValue As String
             TextValue = Nz(DLookup(CurrentLanguageName & "Caption", "LangTable", _
             "FormName='" & Me.Name & "' AND ControlName='" & ctrl.Name &"'"),"")
             If Len(TextValue) > 0) Then
                If ctrl.ControlType = acLabel Then
                    ctrl.Caption = TextValue
                Else
                    ctrl.Value = TextValue
                End If
             End If
       End Select
    Next ctrl
    

  • התייעצות | בניית מסד נתונים לתכנת "הדרן עלך" | אקסל
    OdedDvirO OdedDvir

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

    מזהה שם המסכת
    1 ברכות
    2 שבת
    3 עירובין

    וכו'

    טבלה ב: פרקים:

    מזהה שם הפרק מזהה מסכת
    1 מאימתי 1
    2 היה קורא בתורה 1
    3 מי שמתו 1

    וכו'

    טבלה ג: תאריכי החזרות:

    מזהה פרק חזרה א חזרה ב חזרה ג חזרה ד
    3 1/1/2021 3/1/2021

    טבלאות א,ב נשארות נעולות ללא שינויים.
    טבלה ג מתעדכנת לפי הצורך.


  • בירור | שמות קיצורי הדרך לנתיבים בתיקיות
    OdedDvirO OdedDvir

    @מלאכת-מחשבת

    1. רשימה ענקית
    2. רשימה חלקית
    3. רשימה חלקית בעברית

  • cmd | סגירה בסיום ההפעלה
    OdedDvirO OdedDvir

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

    explorer "C:\Users\Desktop\הדרן עלך data\הדרן עלך.xlsm"
    

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


  • בנית מסד נתונים לבית הכנסת באקסס
    OdedDvirO OdedDvir

    @fimoshe הבקשה שלך מאוד כללית. במה אתה צריך הכוונה? אם יש דבר מסוים שנתקעת בו, נא לפרט בבקשה וננסה לעזור. אם אתה מבקש עזרה באקסס באופן כללי - תוכל לבדוק את המדריך שלי כאן.


  • עזרה - שינוי שם בקבצי PDF מרובים לפי טקסט מתוך המסמך
    OdedDvirO OdedDvir

    @yossiz אמר בעזרה - שינוי שם בקבצי PDF מרובים לפי טקסט מתוך המסמך:

    יש עדיין מה לשפר בסקריפט שכתבתי:

    אני לא מבין בPS אבל הנה השני סנט שלי:

    צריך לתת שם ייחודי לכל קובץ כדי שלא יהיה שגיאה כאשר יש שני קבצים עם שם תורם זהה

    לשנות את שם הקובץ המקורי ל: שם המקורי+שם התורם.

    צריך לטפל שבהרצה שנייה הסקריפט יתעלם מקבצים שכבר טופלו

    לבדוק אם שם הקובץ גדול מ-10 תווים (ואז הוא טופל)

    צריך לסנן תווים מיוחדים מתוך השם החדש הקובץ

    $Path.Split([IO.Path]::GetInvalidFileNameChars()) -join '_'
    

    ממיר את כל התווים הלא תקניים לקו תחתון (מקור)

    ישר כח על העזרה @yossiz !

  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 91
  • 92
  • 5 / 92
  • התחברות

  • אין לך חשבון עדיין? הרשמה

  • התחברו או הירשמו כדי לחפש.
  • פוסט ראשון
    פוסט אחרון
0
  • דף הבית
  • קטגוריות
  • פוסטים אחרונים
  • משתמשים
  • חיפוש
  • חוקי הפורום