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

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
-
איך אני יכול לפצל קובץ וורד גדול לפי מקטעים@אוריי תדביק את הקוד הבא במודול:
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
-
סידור נתונים מאקסל למיזוג@יהודי-טוב בבקשה:
שלב א: תוסיף כותרות לעמודות
שלב ב: יצירת שאילתה
בחר את כל הטבלה ע"יCtrl+A
ומהתפריט למעלה נתונים > מטבלה ותלחץ על אישור.
ייפתח לך חלון של PowerQuery.
שלב ג: קיבוץ הנתונים לפי כתובת:
קליק ימני על הכותרת "כתובת", ותבחר קיבוץ לפי...
בחלון שייפתח תכניס את הערכים כפי שמופיע להלן באדום:
ותלחץ על אישור.
אנחנו נקבל עמודה חדשה עם שגיאה (כי אקסל לא יודע לסכום טקסט, כמובן)
אבל כבר נתקן את זה. אנחנו צריכים לשנות את הטקסט שסימנתי בצהוב:
כנס לנוסחא, תלחץ עלCtrl+Shift
השמאליים כדי להפוך את כיוון הקריאה, ותשנה את הטקסט שבצהוב לטקסט הבא:Text.Combine([משפחה],", ")
הנה הנוסחא המתוקנת:
תקיש אנטר ותקבל את התוצאה הרצויה:
שלב ד: שמירת הטבלה החדשה:
תבחר מהתפריט למעלה "סגור וטען" כדי להדביק בגליון חדש, או סגור וטען ב... כדי להדביק בגליון קיים.באופן הזה, הטבלה שיצרנו תתעדכן עם כל שינוי של הנתונים בטבלה המקורית. בהצלחה!
-
np.unravel_index בjsאז ככה:
אודה שלא התעמקתי עד הסוף, אבל כפי הבנתי הפונקציה ממירה אינדקס לינארי לאינדקס 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 פעמים?@יהודי-טוב אויש, מאקרו....
זה נראה בעייה של מאקרו מקונן (Nested), כלומר שהמאקרו קורא למאקרו שקורא למאקרו וכו' 19 פעמים ברציפות. טוב שיש הגבלה רק עד 19 רבדים ולא יותר...
אגב, התנהגות של קריאה בתוך קריאה בתוך קריאה וכו' בעומק של 19 רמות (!!!) זה נשמע מאוד כמו לוגיקה שגוייה. תבדוק את ההגיון מאחורי המאקרו היטב.כמו שציין @avi-rz אם תצרף צילום של המאקרו אולי זה יסייע לעזור לך, אבל אני הייתי נמנע לגמרי משימוש במאקרו, ועובר לקוד VBA, שהרבה יותר קל לדיבוג.
-
עזרה| מיזוג דואר עם תאריכים מותאמים אישית@zvinissim זה מפני שהתאריך מאוחסן באקסל בתור מספר, ורק מעוצב כתאריך.
הפתרון הכי מהיר זה להמיר את התאריכים למחרוזת על ידי הפונקצייה Text(), תוסיף עוד עמודה לתאריך, ותכתוב בה את הנוסחה:=TEXT(J3,"dd/mm/yyyy")
את העמודה הזו תייבא במיזוג הדואר.
עריכה:
במקרה שלך אולי תרצה לייצא רק את החודש והשנה:=TEXT(J3,"mm/yyyy")
-
כיווץ קבצים מרובים למס' ארכיונים עצמאיים@UA יש תוכנה חינמית בשם Folder-Axe שעושה בדיוק את זה: מחלקת תיקיה למספר תיקיות לפי קריטריונים לבחירתך, גודל, מספר קבצים, שם ועוד.
תוכל לבחור בתוכנה לכווץ כל תיקיה לארכיון ZIP נפרד.
צילום מסך:
-
הפעלת וינדווס טרמינל (wt) כמנהל@chv בעקבות הפוסט קיצור דרך למיקום מסוים במחשב
הצלחתי להפעיל את הטרמינל כמנהל כך:1. יצרתי משימה חדשה במתזמן המשימות:
2. בקטגוריה Actions הגדרתי פעולה חדשה:
3. יצרתי קיצור דרך על שולחן העבודה:
וביעד רשמתי:C:\Windows\System32\schtasks.exe /run /tn "AdminTerminal"
עכשיו הקצתי קיצור מקשים כרצוני (למשל Ctrl + Alt + T)
זהו. עובד.
-
תכנון פונקציה: האם לשים פרמטרים מרובים או מערךלא זה ולא זה.
הדרך הנכונה היא ליצור אובייקט שמכיל את כל השדות ולהעביר אותו לפונקציה.
כך C#:public record JobSpecifications { public string JobName {get; set;} public double WorkHours {get; set;} ... } public decimal CalculatePrice(JobSpecifications specs) { ... return price; }
זה יעיל מכל הבחינות, והרבה יותר קל לתחזוקה.
-
API למיקוד לפי כתובת בישראל- האם קיים?לכל מאן דבעי: נפתח בנטפרי.
-
SQL - GROUP BY HEBREW MONTH ?@איש-נחמד אין פונקציה מובנית לחישוב תאריך עברי.
אתה צריך לחשב בעצמך את החודש העברי, ולשמור אותו בשדה נפרד ברשומה. ואז תוכל לבצע שאילתת קיבוץ עליו.
לא צינת את השפה בה אתה משתמש, אבל יש ספריות בשביל זה.
אם התאריך סטטי (השדה לא נתון לשינויים), תחשב את מספר החודש העברי (על ידי קוד כנ"ל) בזמן יצירת הרשומה, ואם הוא נתון לשינויים - תחשב אותו בזמן עדכון שדה התאריך הלועזי. -
מסד נתונים כטבלא בשני ממדים@שואף למרות שהקוד לכאורה יעבוד גם בלי התוספות האלו, כתבתי שלענ"ד זה עניין של הרגלים טובים. הללו נועדו כדי למנוע בעיות בעתיד, כשכבר הספקת לשכוח פעמיים מה כתבת כאן בקוד, ואתה מוצא את עצמך מחפש בנרות את הבעיה.
זה הדברים הקטנים האלו בתכנות שעלולים לגרום בעיות גדולות בהמשך.
דוגמא משעשעת לכך היא הטעות שהשתרבבה לגוגל באחד העדכונים ל ChromeOS, וגרמה לאלפי משתמשים להנעל מחוץ לחשבון שלהם.
הטעות היתה בהשמטת תו אחד בודד בבדיקה של סיסמת המשתמש בתנאיif
, בו בטעות השתמשו באופרטור הבינארי&
במקום באופרטור הלוגי&&
.
דהיינו כתבו:if (key_data_.has_value() & !key_data_->label().empty()) {
במקום
if (key_data_.has_value() && !key_data_->label().empty()) {
מה שגרם להחזרה של ערך
false
גם במקרה של סיסמה נכונה, ולהציג למשתמש את ההודעה ש"אנו מצטערים, אבל לא הצלחנו לאמת את סיסמתך." -
מסד נתונים כטבלא בשני ממדיםהתחביר הנכון הוא כך:
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 יצירת משבצות -
שינוי שפת תוכנה@ארי לענ"ד הפתרון שלך הוא הנכון. כמה נקודות למחשבה:
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
-
התייעצות | בניית מסד נתונים לתכנת "הדרן עלך" | אקסל@פלורידה הואיל ומדובר כאן בטבלאות, התצורה הקלאסית היא לדמות מסד נתונים רלציונאלי, וליצור טבלה לכל ישות במסד.
דהיינו טבלה אחת למסכתות, טבלה אחת לפרקים, וטבלה אחת לתאריכי החזרות.
כל טבלה תכיל את הנתונים הרלוונטים ליישות שלה.
דוגמא:
טבלה א: מסכתות:מזהה שם המסכת 1 ברכות 2 שבת 3 עירובין וכו'
טבלה ב: פרקים:
מזהה שם הפרק מזהה מסכת 1 מאימתי 1 2 היה קורא בתורה 1 3 מי שמתו 1 וכו'
טבלה ג: תאריכי החזרות:
מזהה פרק חזרה א חזרה ב חזרה ג חזרה ד 3 1/1/2021 3/1/2021 טבלאות א,ב נשארות נעולות ללא שינויים.
טבלה ג מתעדכנת לפי הצורך. -
בירור | שמות קיצורי הדרך לנתיבים בתיקיות- רשימה ענקית
- רשימה חלקית
- רשימה חלקית בעברית
-
cmd | סגירה בסיום ההפעלה@פלורידה אכן טעיתי, הפקודה
exit
לא תעזור כאן, כי כך היא הדרך שקבצי Batch פותחים מסמכים בצורה כזו, ולא ממשיכים הלאה עד לקבלת קוד סגירה מהמסמך.
אבל תוכל לפתור את הבעיה על ידי הרצת המסמך דרך קריאה לאקספלורר, כך:explorer "C:\Users\Desktop\הדרן עלך data\הדרן עלך.xlsm"
בלי שום פקודה נוספת, והקובץ יסגר מיד, כי אקספלורר יחזיר קוד תקין.
-
בנית מסד נתונים לבית הכנסת באקסס