Excellent. But If I want to get data from an HTML form into the spreadSheet and once data sequentially is filled into the spreadsheet column 4, will still work the trigger function?
I have a sheet shared with multiple people. What would the syntax be to capture the user's email that makes the changes? From what I found in the docs, I tried the following to no luck: [ e.getEmail(), e.changeType, e.source.getSheetName(), e.source.getActiveSheet().getActiveRange().getA1Notation(), new Date() ]
Hi David, I want my sheet to retain its formating if someone mistakenly pastes extenal data (i.e from excel) with different formating via Ctrl+V. Can this be done using any trigger or something else? Thanks
Would it be possible to combine this function with data scraping of a website to collect data from the website over time and to form that data collected over time into a graph? Is there a better way to do this?
Hi, Im trying to set up this type of trigger but the changes will come from the google app script. Meaning user wont directly access the google sheets and will use an application that will send data to google sheet. Problem is I dont think the trigger is not capturing the changes when the changes is done by a set of code on google apps script. Can you help me with this? Thanks!
Hi Ray, yes unfortunately this is a limitation of both simple and installable triggers. According to Apps Script Documentation: "Script executions and API requests do not cause triggers to run. For example, calling FormResponse.submit() to submit a new form response does not cause the form's submit trigger to run." Which can be referenced in the docs here: developers.google.com/apps-script/guides/triggers/installable If this is a strict requirement for your application, I would suggest setting up a time based trigger which checks the state of the spreadsheet say every 1 or 5 minutes. Record all that data, perhaps in PropertiesService. Then, after another minute or 5, check the state of all the data in the spreadsheet again and cross reference that to the data you have stored in PropertiesService. If there is anything that differs, record the changes somewhere in your change log. This is neither a simple nor clean way to produce your desired result, but it may be the only way. I would be open ears to hear if anyone else had a more efficient way!
Hey man, this was great content! I have a question, I am trying to do this but for INSERT GRID. Not quite sure how to go about this. The logic is that every time I open a new tab in the spreadsheet, it automatically copies and pastes the content from the source sheet to the new one. Any help would be much appreciated. Thanks!
When you removed the filter, that event wasn't logged. Does anyone know a trigger which will catch filter changes?
Excellent. But If I want to get data from an HTML form into the spreadSheet and once data sequentially is filled into the spreadsheet column 4, will still work the trigger function?
@David Weiss How would you get the reference to the row or column that has been deleted/inserted?
I have a sheet shared with multiple people. What would the syntax be to capture the user's email that makes the changes? From what I found in the docs, I tried the following to no luck:
[
e.getEmail(),
e.changeType,
e.source.getSheetName(),
e.source.getActiveSheet().getActiveRange().getA1Notation(),
new Date()
]
is with e.user
So the changes in the "change log" sheet is not logged? Why is that?
Hi David, I want my sheet to retain its formating if someone mistakenly pastes extenal data (i.e from excel) with different formating via Ctrl+V. Can this be done using any trigger or something else? Thanks
Hi David, thanks for the video. Have one question. How can I detect changes of a dependent sheet if master sheet changed?
Very helpful! Thanks!!
Which one is faster between on edit and on change?
What if the spreadsheet is shared among multiples users (editors), how can we capture users info who made the changes ? Thanks in advance
Спасибо! Увы, так и не нашел возможность отслеживать изменения, вызванные скриптами, а не пользователем
Would it be possible to combine this function with data scraping of a website to collect data from the website over time and to form that data collected over time into a graph? Is there a better way to do this?
Hi, Im trying to set up this type of trigger but the changes will come from the google app script. Meaning user wont directly access the google sheets and will use an application that will send data to google sheet. Problem is I dont think the trigger is not capturing the changes when the changes is done by a set of code on google apps script. Can you help me with this? Thanks!
Hi Ray, yes unfortunately this is a limitation of both simple and installable triggers. According to Apps Script Documentation:
"Script executions and API requests do not cause triggers to run. For example, calling FormResponse.submit() to submit a new form response does not cause the form's submit trigger to run."
Which can be referenced in the docs here: developers.google.com/apps-script/guides/triggers/installable
If this is a strict requirement for your application, I would suggest setting up a time based trigger which checks the state of the spreadsheet say every 1 or 5 minutes. Record all that data, perhaps in PropertiesService. Then, after another minute or 5, check the state of all the data in the spreadsheet again and cross reference that to the data you have stored in PropertiesService. If there is anything that differs, record the changes somewhere in your change log. This is neither a simple nor clean way to produce your desired result, but it may be the only way. I would be open ears to hear if anyone else had a more efficient way!
what if we want to create trigger when new row is created
Hey man, this was great content! I have a question, I am trying to do this but for INSERT GRID. Not quite sure how to go about this. The logic is that every time I open a new tab in the spreadsheet, it automatically copies and pastes the content from the source sheet to the new one. Any help would be much appreciated. Thanks!
I love you bro