הזנת תכנים באמצעות טופס בגליון גוגל שיטס
-
שלום, יש לי גליון גוגל שיטס מעוצב
יש שדות שמוגדרים עם "תפריט נפתח" עם כמה אפשרויות בחירה ויש שדות של מלל חופשי.
משהו כזה:
אני רוצה ליצור טופס גוגל עם אפשרות להזין תוכן בהתאם לשדות הנ"ל ושזה יוסיף שורה בכל שליחת טופס בלי לשנות את העיצוב ובלי למחוק שורות או במידה ונוספו שורות בגליון עצמו שלא באמצעות הטופס גוגל שזה יוסיף שורה מיד אחרי זה ולא ישתבש.
האם ניתן לבצע זאת? כיצד? אשמח לעזרה מבעלי נסיון.
תודה רבה מראש -
@shraga כתב בהזנת תכנים באמצעות טופס בגליון גוגל שיטס:
אשמח לעזרה מבעלי נסיון.
לא בנסיון של כזה דבר בדיוק, אבל מהדברים שכן ניסיתי אני חושב לענ"ד.
אם אתה לא הולך גם להוסיף ידני וגם ע"י הטופס,
תוכל לקבל את הנתונים מהטופס בגליון אחר ובגליון המעוצב לסחוב בכל עמודה את השורות מהעמודה הרצויה מהגליון של הטופס. -
@shraga יש לך 2 אופציות
א. לקבל באמצעות נוסחאות בתאים בגיליון הרלוונטי את כלל השורות מהגיליון שאליו נכנסות התשובות.
ב. להשתמש בסקריפט פשוט שיעתיק בכל פעם את השורה החדשה..דוגמה לאופציה השניה שלדעתי עדיפה יותר
function registrationAnswers() { var ss = SpreadsheetApp.getActiveSpreadsheet(); var sheet = ss.getSheetByName("תגובות לטופס 1"); // שם הגיליון שמכיל את התשובות מהטופס var lastRowProcessed = sheet.getRange("E1").getValue(); // השורה האחרונה שעובדה if (lastRowProcessed === sheet.getLastRow()) { return; } var dataRange = sheet.getRange(lastRowProcessed + 1, 1, sheet.getLastRow() - lastRowProcessed, 4); var data = dataRange.getValues(); for (var i = 0; i < data.length; i++) { Logger.log(data[i]); Logger.log(data); myFunction(data[i]); } sheet.getRange("E1").setValue(sheet.getLastRow()); // מגדיר מחדש את מספר השורה האחרונה שעובדה } function myFunction(row) { var ss = SpreadsheetApp.getActiveSpreadsheet(); var sheet = ss.getSheetByName("נתונים"); // שם הגיליון שבו אתה רוצה להדביק את הערכים var newRow = sheet.getLastRow() + 1; var range = sheet.getRange(newRow, 1, 1, 4); range.setValues([[row[0], row[1], row[2], row[3]]]); }
הקוד רושם לאחר כל העתקת שורות את מספר השורה שהועתקה בתא E1 וממנה הוא מתחיל שוב בפעם הבאה.