I searched and searched and SEARCHED to find the code for this EXACT thing! I simply cannot tell you HOW MUCH I appreciate you doing this VIDEO!!! I have spent endless hours to try to get this to work and could not get it! AMAZING and THANK YOU SO MUCH FOR HELPING MY SANITY! :)
I remember following this 2 years ago took me easily 3 hours or so and I got a headache. It felt like a huge achievement to complete it. Now I made this code for a new sheet and it took me 30 min, felt easy, but most importantly,; this video has proven valueable over and over. I use this code in a sheet I use weekly and it has saved me lots of time. Thanks a bunch!
I had an issue as many have with the ranged error. Two things - an error will be returned if you run the code from the editor OR debugger. The reason for this is the conditions of the fields are not being met on the spreadsheet side and this is normal. The other thing is recheck ALL OF YOUR SYNTAX. I chased this problem for far longer than I should have and found I had typed a "v" where a "u" should have gone in value - was too easy to miss but it looked right at a glance. Once this correction was made the code started to function correctly. Another great video by this youtuber!
I love the way you explain everything by stages, without delving into too much technicalities and even makes the improvements on it easy to grasp, so that even a code-ignorant like me can follow it easily. Subscribing to your channel in 3, 2, 1...!
There have been a few questions on how to run the same script on more than one sheet, but not all of them. Through simple copy and paste, I quickly created multiple scripts, one for each sheet I wanted the script to run on, giving each a unique name (e.g., Script1, Script2, Script3. - I gave mine the name of the sheet they corresponded to). Note, you can only have one script named "onEdit." You will want to reserve the onEdit name for the short "master script" that will run the rest. After creating each new script, copy and paste the same code into each. Then, change the script name on the first line of code (right after "function" and before "(e)" to match the name of the new script. Then, change the sheet reference in the code located right after "getName() ===" to match the name of the sheet that script should run on. Finally, go back to your original onEdit script and delete all of the code and paste the following new code, making the onEdit script the "master script" to run the rest of them (of course, modify the script names to match your script names, adding however many scripts you have): function onEdit(e) { script1(e); script2(e); script3(e); } Remember to save the scripts. While on the onEdit master script, click "Run." The sheet-specific scripts will execute in the order they appear in your onEdit master script. I have no coding skills. But after some research, this approach worked for me.
You might want to check this guy's vid at 3:30 ru-vid.com/video/%D0%B2%D0%B8%D0%B4%D0%B5%D0%BE-N4V0FZASK60.html He talks about the "OR" statement and how you can use it This will make your code a lot shorter and quicker to execute. I also got no coding knowledge but trust me it's easy EDIT: It's not very easy tho For it to work properly my if statement had to be: if(col === targetColumn && row >= startRow && e.source.getActiveSheet().getName() === ws ||col === targetColumn && row >= startRow && e.source.getActiveSheet().getName() === bs){ bs stands for bullsh!t as well as var bs = Sheet 2 I had to repeat almost the entire statement inside IF() So in theory you could expand this row infinitely for as many sheets as you want In the end it works, even though it's not as compact as I'd like
Great tutorial, I have a very little experience with programming language, but you really made it for me. I do still have one question related to this timestamp method. I realized that this method only works with cell edited manually, so for example I paste 3 rows of data, it would only update timestamp for the first cell only, the second and third one wouldn't be updated. Could you please help me with this one ? Really appreciate your woks man!
I am so glad I stumbled on your channel this is perfect. now I have to figure out that when our receptionist receives a package, based on the tracking number it will fill in the carrier in cell 3 Thanks so much for this tutorial
i really appreciate and do love everything you teach. It's so simple and easy to use in real work. I practice and really use it in my restaurant. I would like to thank you for all these knowledge. If you come to Thailand, let me know, I will guide you around enjoy Bangkok for 1 day....Thankssssssssssss my real teacher
I really appreciate the video which you have made, it is very easier for the non-technical person to understand, thank you so much. I am the new person who is going to use this script in our master sheet and also I would like to see more videos to learn the same from scratch... :)
I freaking love you, man! Thanks for the lesson, it works wonders! S2 Thank you, thank you a lot! I can't express how grateful I am to you right now! Best regards!
Congratulations ! i not speak well english, but you explain very easy and simple , thanks for your work , definettly best tutorial ever ! hugs from Perú
I've been browsing for hours now, finally I Found this thankyou so much. I just have one question, If I want to track the changes on other sheet then timestamp into the current sheet, how should I do that :). Thankyou
Thank you so much, brother! This is exactly the solution I was looking for! I was experimenting with circular reference formulas, but the date would update the following day after inputting content into adjacent cells. So I needed a different solution. I thought of using some sort of script and just searched RU-vid. Thank goodness I found your video! You saved me so much time! Well done, great work! - Greeting from Toronto, Canada!
@@ExcelGoogleSheets This only works when the owner of the sheet makes any change but if anyone enter any value then the timestamp doesnot appear. I want to create the same when anyone can enter the value
@@subhamdey1922 Code.gs function onEdit(e) { addTimestamp (e); } function addTimestamp (e){ //variables I 7 R 7/16:38 Fix Date Delay > var startRow 2; = var targetColumn = 1; var ws = "My Data"; //get modified row and column var row = e. .range.getRow(); var col = e.range.getColumn(); if (col === targetColumn && row >= startRow && e.source.getActiveSheet().getName() WS var currentDate = new Date(); e.source.getActiveSheet().getRange (row, 4).setValue(currentDate); if (e.source.getActiveSheet().getRange (row, 3).getValue() ""){ e.source.getActiveSheet().getRange (row, 3).setValue(currentDate); } // END IF check if date created exists } // END IF check column, row, worksheet
Hey there, this is an incredible instruction, very detailed. Could you explain, how to apply this function to additional worksheets (but not all) in the workbook?
This is quite amazing! I found a different way of doing it, it is simple, but works for me. I created a "form" with google forms..... as a question you can ask: what is the package id? and let the response be text (the id)... once the answer is submitted you can ask google forms to send the results to a google spreadsheet..... the time stamp is a default column.
for those who want the code plus a few tweaks function onEdit(e) { addTimestamp(e); } function addTimestamp(e) { var startRow = 2; var targetColumn = 10; var ws = "testSheetOne" ; var row = e.range.getRow(); var col = e.range.getColumn(); var insertColumn1 = 12 var insertColumn2 = 13 if(col === targetColumn && row >= startRow && e.source.getActiveSheet().getName() === ws ) { var currentDate = new Date (); e.source.getActiveSheet().getRange(row,insertColumn2).setValue(currentDate); if(e.source.getActiveSheet().getRange(row,insertColumn1).getValue() == ""){ e.source.getActiveSheet().getRange(row,insertColumn1).setValue(currentDate); } } } //ru-vid.com/video/%D0%B2%D0%B8%D0%B4%D0%B5%D0%BE-548dD3iXetg.html
Hi! First of all thank you for all the learnings I get in this channel! This may be a dumb question but Im very new in spreadsheet, so was thinking if you could guide me through on how to automatically add a time stamp based on the last edit made in the spreadsheet?
Great instructions! Thanks. Is there a way to make the timestamp trigger when you paste several rows of data into the target column? Currently it only adds the timestamp to the top line where the start of the list was pasted.
Thank you so much sir for sharing this knowledge with us. Sir one thing I need to know if I want to apply this code in multiple sheet on same worksheet then what should to do??
Hello! this is a great tutorial, but how to get the timestamp from when any cell from a range is modified? cant find out how to set the range beside the number of column
Awesome Video.. I did notice that the speed of the editing the 1st column will affect if the function runs. Meaning Try to enter data really fast in column 1 to simulate auto fill and it skips rows trying to keep up. Thank you for your time and knowledge sharing.
I love it ...explained so simply... I am facing one issue - I have a Script (s1) which takes data from webpage and updates it. Now have added your script(s2) with the same Gsheet. But it doesn't enter if the sheet i updated by s1 but works fine if manually edited.. Your feedback please...
Are you able to advise on how to run script for multiple timestamps on one sheet? Also, for the same timestamp to only work on selected sheets...i am struggling to make either scenario to work ? Do you have videos to cover these?
hi, Thank you for sharing this video - Add Timestamp when cell is changed. this is working for me. i would like to use two app script i.e onEdit & addTimestamp in same excel sheet. How can i do this which adding two script for same sheet. both script i have learnt from this channel. at present i have added both the script and only one script which addTimestamp is working but onEdit script is not working (i.e: Dynamic Drop Down Based on Another Cell & Multiple Selections Updated Automatically) Please help me in this regards
This is a great tutorial and it used to work perfectly but as of 2021-11-05 it fails. The debugger says that several of the variables are "undefined". ("e", "ws", "row", "col", "currentDate") Has something changed in the scripting syntax to break this script?
Just edit the code and it should be live on your Sheet. Only way to test the code is by actually editing a cell in other words, since you're running the code from inside the script editor.
Great video! Really thorough. Is there a way to do this same type of thing but instead of a timestamp its a user-stamp based on the email of who edited the document?
Thank you so much for doing this, I love this page so much. You are contributing to something that is going to change the world, and I can't thank you enough. Thank you for all these tutorials, they have helped me insurmountably.
FYI you can also easily add a timestamp by using Lamda instead of Appscript. For example. Assuming A1 is a Checkbox (true/false) then you could use this formula =LAMBDA(now,cell,if(cell,now,))(now(),A1) which will print the time whenever that checkbox is checked off and it is static. It will not change onEdit or refresh. It will only update when you click the checkbox. Now you can change the logic to whatever I'm just using the checkbox as an example. I believe this is a newer feature in google sheets.
would you please elaborate how to lock cells automatically after entry is made in sheets so that cells can't be edited after making an entry. Thanks in advance
This is really helpful!!! thank you so much for this. If its alright, I just have a quick question, what if I want to add another specific sheet with this function? Thank you so much in advance!!!
Amazing tutorial, Can you make another video about date stamp but with multiple sheet with different layout and multiple Columns that have a dedicated date stamp column for each?
Thank you so much for creating this tutorial, so helpful! One question I have is, is there a way to have the script display a particular date format? I know that I can format it in sheets using but that only changes what you see, not the actual data in the cell. Thanks again!
Hi, greeting from Argentina. You're the Best of the best! Thanks to you and your tutorials i'm making a lot ok changes in my business. I konow very little about programming (i just know what i saw in a few videos of yours) so i want to know how can i run this function to give me a different time stamp (in differente columns) depending on the value of the first column. Being precise, i need to calculate the time lapses between events taking place in my business (i have an aesthetic center here in Argentina i want to know how much time the clients wait in the waiting room and how much time their spend in the consulting room). So, in the first column i have a drowpdown list with the differente events. For example, the first event would be "client arrives". When you select that option, the idea is to register that specific dat and time in a column called "arrival". Then, the next event would be "client is being attended in the consulting room". When you select that option, the idea is to register that specific date and time in another column called "in consultating room" (this new event shouldn't change the timestamp in the column "arrival"). This workflow would allow me to take into accountance the average waiting time and the average consulting time (and i would also allow me to have an alert, in real time, if someone has been waiting for too long). After watching your video i managed to make the time stamp exactyly as you did it (it's amazing by the way). I imagined that i would only have to change the if condition (when it sais "getValue() == "")) and that i could just put "getValue() == "client arrives" but sadly that didn't worked. Please, could you help me? Thanks in advance for everything!
@@ExcelGoogleSheets I finally did it. Guess how? With your other video about timestamps. You're the best. Thanks for sharing all your knowledge to the world
Great Tuto, one question, what happen if you have more than one spreadsheet? , each spreadsheet need their own variables if you duplicate but change the name or it will work automatically?
If you manually run the function you'll get an error and that's normal. The function needs to run automatically when changes are made in the spreadsheet.
If we wanted to create another column "Done" and every time done is typed in it, last modified gets updated. We are having a hard time writing that script. Similarly we created a to do list. "Column A" has a check box, every time the box is checked we also want the last modified to update all in the same sheet. Checkbox checked = last modified should update "Done" typed in the "Done" column = last modified should update Your help would be greatly appreciated. Btw this was an amazing video!
Thanks for this great class , I have a problem when I try to bring new data into my spread sheet from Formulario , it doesnt work because of there's any editable change thats why it doesnt run the macro, could you give me some advice please
Thanks for all your videos, I have learned a lot. This script doesn't work when a cell auto-populates, only if you edit the cell yourself. I'm parsing data from emails using script and regex. Is there a way to get the script to timestamp when the script runs?
onEdit will only (and always will) run when a user does input, it will NOT run programatically. so, if you are using a script to scrape info from emails, then in that script you should add in procedure to also add a timestamp when the data is put into G-Sheets.
@@mr_shanes Thanks Shane for this info. I have tried this before but I don't know enough about script yet to make it add the timestamp. I am still learning though so hopefully I will get it soon.
suggestion: to suit the context of a package ID and comments, which might instead be something like "Status" (en route, delivered, etc), the script would be better suited to monitor column 2 (because a package ID wont change, but its status will).
Very helpful! Thank you. I have a question: What if I want to add timestamp in "Other" worksheet too? So when I'm in "My Data", the timestamp is still written in the first and fourth column of My Data, but, when I'm in "Other", the timestamp will be written in the first column of "Other" worksheet only. Thank you