הוספת לחצן מאקרו בגוגל שיטס
-
שלום רב,
אני מעוניין להוסיף לחצן בתוך הגיליון, שייתן פקודת הדפסה.
האם שייך כזה דבר?
ואם לא, יש פיתרון אחר?
תודה רבה.פוסט זה נמחק! -
שלום רב,
אני מעוניין להוסיף לחצן בתוך הגיליון, שייתן פקודת הדפסה.
האם שייך כזה דבר?
ואם לא, יש פיתרון אחר?
תודה רבה.@שוהם307
כן, יש אפשרות.- להקליט סקריפט (מאקרו) (או לכתוב אם אתה יודע) ולקרוא לו שם
- בגילון לבחור הוספה>שרטוט>צורה
ולהוסיף איזה צורה שאתה רוצה ולמקם אותה היכן שאתה רוצה - לבחור את הצורה וללחוץ על ה3 הנקודות בצד שמאל ולבחור בהקצאת סקריפט
ופשוט לרשום את שם הסקריפט שברצונך להוסיף...
בהצלחה!!1
-
@שוהם307
כן, יש אפשרות.- להקליט סקריפט (מאקרו) (או לכתוב אם אתה יודע) ולקרוא לו שם
- בגילון לבחור הוספה>שרטוט>צורה
ולהוסיף איזה צורה שאתה רוצה ולמקם אותה היכן שאתה רוצה - לבחור את הצורה וללחוץ על ה3 הנקודות בצד שמאל ולבחור בהקצאת סקריפט
ופשוט לרשום את שם הסקריפט שברצונך להוסיף...
בהצלחה!!1
@אוריי תודה רבה, ממש פרטי פרטים.
ולגופו של סקריפט,
אין כוחי בכתיבת סקריפט, אז אכן הקלטתי מאקרו עם כל השלבים עד ליציאת הדף מהמדפסת,
אבל בסקריפט עצמו לא מופיע השלב של ההדפסה, וכמובן שגם המאקרו עובד רק בצורה חלקית, כלומר בוחר תא, וזהו. לא ממשיך הלאה.
ניסיתי כמה וכמה פעמים להקליט. -
@אוריי תודה רבה, ממש פרטי פרטים.
ולגופו של סקריפט,
אין כוחי בכתיבת סקריפט, אז אכן הקלטתי מאקרו עם כל השלבים עד ליציאת הדף מהמדפסת,
אבל בסקריפט עצמו לא מופיע השלב של ההדפסה, וכמובן שגם המאקרו עובד רק בצורה חלקית, כלומר בוחר תא, וזהו. לא ממשיך הלאה.
ניסיתי כמה וכמה פעמים להקליט. -
@שוהם307
אני לא מבין הרבה בסקריפט אבל זה תוצאה ראשונה בחיפוש בגוגל -
@odeddvir אני יסביר את עצמי.
אני רוצה שבכל שורה יהיה לחצן 'הדפס' ואז הוא יבחר רק את השורה הנוכחית וידפיס אותה לפי הגדרות הדפסות מיוחדות שאגדיר לו.נ.ב. אם זה תגיד שזה מורכב מידי, אז אצטרך לעשות את הכל באקסל של אופיס ולשתף את הקובץ.
-
@שוהם307 ההסבר שנתת מאוד חלקי, ובהתאם - גם המוטיבציה שלי לעזור לך.
תן דוגמא מפורטת מה בדיוק אתה רוצה לעשות. מה הכוונה "לפי הגדרות הדפסות מיוחדות שאגדיר לו"? -
@שוהם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)); } }
וככה זה נראה:
-
@שוהם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.האם כוונתך שבהזנת המילה 'הדפס' יופעל הקוד? - את הקוד אני מכניס ב 'עורך קובצי הסקריפט', ומצמיד את הקוד לטריגר, אבל מה אני מגדיר בטריגר? איפה אני מגדיר שהקוד יופעל בהזנת המילה 'הדפס'?
תודה רבה.
- כשאתה כותב 'תיבה נגללת' אתה מתכוין לבחירה מתוך רשימה נפתחת? אם כן, בשביל מה צריך טריק? מה רע באימות נתונים.
-
@odeddvir אמר בהוספת לחצן מאקרו בגוגל שיטס:
תוכל להשתמש בטריק שמופיע כאן, כדי ליצור תיבה נגללת עם המילה "הדפס" בעמודה האחרונה, ולהצמיד לטריגר המובנה onEdit() את הקוד הבא:
אם יש לך סבלנות, אשמח שתרחיב לי יותר.
- כשאתה כותב 'תיבה נגללת' אתה מתכוין לבחירה מתוך רשימה נפתחת? אם כן, בשביל מה צריך טריק? מה רע באימות נתונים.
2.האם כוונתך שבהזנת המילה 'הדפס' יופעל הקוד? - את הקוד אני מכניס ב 'עורך קובצי הסקריפט', ומצמיד את הקוד לטריגר, אבל מה אני מגדיר בטריגר? איפה אני מגדיר שהקוד יופעל בהזנת המילה 'הדפס'?
תודה רבה.
@שוהם307 אמר בהוספת לחצן מאקרו בגוגל שיטס:
כשאתה כותב 'תיבה נגללת' אתה מתכוין לבחירה מתוך רשימה נפתחת? אם כן, בשביל מה צריך טריק? מה רע באימות נתונים.
אימות נתונים זהו בעצמו הטריק, כי אי אפשר להכניס פקד של לחצן בתא.
2.האם כוונתך שבהזנת המילה 'הדפס' יופעל הקוד?
ליתר דיוק, בבחירת האפשרות "הדפס" מתוך הרשימה הנפתחת.
את הקוד אני מכניס ב 'עורך קובצי הסקריפט', ומצמיד את הקוד לטריגר, אבל מה אני מגדיר בטריגר? איפה אני מגדיר שהקוד יופעל בהזנת המילה 'הדפס'?
לא צריך להגדיר כלום, הטריגר onEdit כבר מובנה ב google sheets. פשוט תדביק אותו בעורך. הקוד כבר בודק אם הערך בתיבה הנפתחת שווה ל"הדפס".
- כשאתה כותב 'תיבה נגללת' אתה מתכוין לבחירה מתוך רשימה נפתחת? אם כן, בשביל מה צריך טריק? מה רע באימות נתונים.
-
הבנתי, וביצעתי את כל האמור.
כשאני מפעיל את הסקריפט בעורך הוא רושם לי מה מכיל כל עמודה ואף מציג לי שעמודה 12 היא TRUE, שזה אומר שמופיע שם המילה 'הדפס'.(בגיליון אצלי זה בעמודה 12, וכמובן ששיניתי את הקוד מעמודה 4 ל 12)
אבל.... כלום. לא קורה כלום.@שוהם307 אמר בהוספת לחצן מאקרו בגוגל שיטס:
אבל.... כלום. לא קורה כלום.
בשורה 10 בקוד לעיל אני מקבל את ערכי כל העמודות.
עיין בשורה 11 שם כתבתי בהערה://תעשה מה שאתה רוצה עם הערכים שקיבלת
בקוד לעיל (בשורה 12) אני פשוט מדפיס אותם ליומן. מה אתה רוצה לעשות איתם בדיוק?
-
@שוהם307 אמר בהוספת לחצן מאקרו בגוגל שיטס:
אבל.... כלום. לא קורה כלום.
בשורה 10 בקוד לעיל אני מקבל את ערכי כל העמודות.
עיין בשורה 11 שם כתבתי בהערה://תעשה מה שאתה רוצה עם הערכים שקיבלת
בקוד לעיל (בשורה 12) אני פשוט מדפיס אותם ליומן. מה אתה רוצה לעשות איתם בדיוק?
-
@odeddvir אמר בהוספת לחצן מאקרו בגוגל שיטס:
בקוד לעיל (בשורה )12 אני פשוט מדפיס אותם ליומן.
אהה..
ואני רוצה אותם בהדפסה ישירה מהמדפסת, מה נעשה?@שוהם307 המממ... כפי הנראה, כדי להדפיס צריך לייצא את הערכים לקובץ נפרד בדרייב, ואחר כך לבצע עליו הדפסה.
הבעייה היא שהטריגר onEdit הוא טריגר פשוט, ולפי הגדרה הוא מוגבל ביכולות שלו, ובפרט, הוא אינו מורשה לערוך קבצים אחרים.כדי לעקוף את הבעיה, צריך לעשות קצת התעמלות: ליצור טריגר חדש על ידי המשתמש (הוא יהיה מורשה לעשות ככל שתאפשר לו), ולהפעיל אותו מתוך הקוד. (או שאתה תצטרך להפעיל אותו ידנית אחרי שבחרת הדפס)
אבל זו כבר לא עבודה לערב שבת. אי"ה בלי נדר בשבוע הבא (או אולי בשנה הבאה...
) אנסה לעזור לך.
-
@שוהם307 המממ... כפי הנראה, כדי להדפיס צריך לייצא את הערכים לקובץ נפרד בדרייב, ואחר כך לבצע עליו הדפסה.
הבעייה היא שהטריגר onEdit הוא טריגר פשוט, ולפי הגדרה הוא מוגבל ביכולות שלו, ובפרט, הוא אינו מורשה לערוך קבצים אחרים.כדי לעקוף את הבעיה, צריך לעשות קצת התעמלות: ליצור טריגר חדש על ידי המשתמש (הוא יהיה מורשה לעשות ככל שתאפשר לו), ולהפעיל אותו מתוך הקוד. (או שאתה תצטרך להפעיל אותו ידנית אחרי שבחרת הדפס)
אבל זו כבר לא עבודה לערב שבת. אי"ה בלי נדר בשבוע הבא (או אולי בשנה הבאה...
) אנסה לעזור לך.
-