הוספת לחצן מאקרו בגוגל שיטס
-
@אוריי תודה רבה, ממש פרטי פרטים.
ולגופו של סקריפט,
אין כוחי בכתיבת סקריפט, אז אכן הקלטתי מאקרו עם כל השלבים עד ליציאת הדף מהמדפסת,
אבל בסקריפט עצמו לא מופיע השלב של ההדפסה, וכמובן שגם המאקרו עובד רק בצורה חלקית, כלומר בוחר תא, וזהו. לא ממשיך הלאה.
ניסיתי כמה וכמה פעמים להקליט. -
@שוהם307 אין אפשרות ליצור לחצן בתוך תא.
תוכל להשתמש בטריק שמופיע כאן, כדי ליצור תיבה נגללת עם המילה "הדפס" בעמודה האחרונה, ולהצמיד לטריגר המובנה onEdit() את הקוד הבא:הערה: הקוד מניח שהתיבה נמצאת בעמודה D, תוכל לשנות את מספר העמודה בשורה הראשונה.
const printSelectionColumn = 4; // מספר העמודה שמכילה את תיבת ההדפסה function onEdit(e) { var sheet = SpreadsheetApp.getActiveSheet(); var column = sheet.getActiveCell().getColumn(); var cellValue = sheet.getActiveCell().getValue(); if (column == printSelectionColumn && cellValue == "הדפס") { var row = sheet.getActiveCell().getRow(); var values = sheet.getRange(row,1,1,printSelectionColumn-1).getValues(); //תעשה מה שאתה רוצה עם הערכים שקיבלת Logger.log(JSON.stringify(values)); } }
וככה זה נראה:
-
@odeddvir אמר בהוספת לחצן מאקרו בגוגל שיטס:
תוכל להשתמש בטריק שמופיע כאן, כדי ליצור תיבה נגללת עם המילה "הדפס" בעמודה האחרונה, ולהצמיד לטריגר המובנה onEdit() את הקוד הבא:
אם יש לך סבלנות, אשמח שתרחיב לי יותר.
- כשאתה כותב 'תיבה נגללת' אתה מתכוין לבחירה מתוך רשימה נפתחת? אם כן, בשביל מה צריך טריק? מה רע באימות נתונים.
2.האם כוונתך שבהזנת המילה 'הדפס' יופעל הקוד? - את הקוד אני מכניס ב 'עורך קובצי הסקריפט', ומצמיד את הקוד לטריגר, אבל מה אני מגדיר בטריגר? איפה אני מגדיר שהקוד יופעל בהזנת המילה 'הדפס'?
תודה רבה.
- כשאתה כותב 'תיבה נגללת' אתה מתכוין לבחירה מתוך רשימה נפתחת? אם כן, בשביל מה צריך טריק? מה רע באימות נתונים.
-
@שוהם307 אמר בהוספת לחצן מאקרו בגוגל שיטס:
כשאתה כותב 'תיבה נגללת' אתה מתכוין לבחירה מתוך רשימה נפתחת? אם כן, בשביל מה צריך טריק? מה רע באימות נתונים.
אימות נתונים זהו בעצמו הטריק, כי אי אפשר להכניס פקד של לחצן בתא.
2.האם כוונתך שבהזנת המילה 'הדפס' יופעל הקוד?
ליתר דיוק, בבחירת האפשרות "הדפס" מתוך הרשימה הנפתחת.
את הקוד אני מכניס ב 'עורך קובצי הסקריפט', ומצמיד את הקוד לטריגר, אבל מה אני מגדיר בטריגר? איפה אני מגדיר שהקוד יופעל בהזנת המילה 'הדפס'?
לא צריך להגדיר כלום, הטריגר onEdit כבר מובנה ב google sheets. פשוט תדביק אותו בעורך. הקוד כבר בודק אם הערך בתיבה הנפתחת שווה ל"הדפס".
-
@שוהם307 אמר בהוספת לחצן מאקרו בגוגל שיטס:
אבל.... כלום. לא קורה כלום.
בשורה 10 בקוד לעיל אני מקבל את ערכי כל העמודות.
עיין בשורה 11 שם כתבתי בהערה://תעשה מה שאתה רוצה עם הערכים שקיבלת
בקוד לעיל (בשורה 12) אני פשוט מדפיס אותם ליומן. מה אתה רוצה לעשות איתם בדיוק?
-
@שוהם307 המממ... כפי הנראה, כדי להדפיס צריך לייצא את הערכים לקובץ נפרד בדרייב, ואחר כך לבצע עליו הדפסה.
הבעייה היא שהטריגר onEdit הוא טריגר פשוט, ולפי הגדרה הוא מוגבל ביכולות שלו, ובפרט, הוא אינו מורשה לערוך קבצים אחרים.כדי לעקוף את הבעיה, צריך לעשות קצת התעמלות: ליצור טריגר חדש על ידי המשתמש (הוא יהיה מורשה לעשות ככל שתאפשר לו), ולהפעיל אותו מתוך הקוד. (או שאתה תצטרך להפעיל אותו ידנית אחרי שבחרת הדפס)
אבל זו כבר לא עבודה לערב שבת. אי"ה בלי נדר בשבוע הבא (או אולי בשנה הבאה... ) אנסה לעזור לך.
-