Единоразовая авто вставка текущей даты в защищенный диапазон Гугл таблицы. Трюки Google Sheets.

Поделиться
HTML-код
  • Опубликовано: 18 сен 2024
  • #googleSheets #googleScript #googleSheetsLessons
    В этом видео я расскажу как делать вставку текущей даты в защищенный диапазон гугл таблицы при редактировании ячейки, единоразово.
    То есть вставка даты произведется один раз и больше никогда не будет изменяться.
    Поддержи автора канала пальцем в верх и подпиской это для
    меня лучший стимул продолжать развиваться.
    Станьте спонсором канала, и вы получите доступ к эксклюзивным бонусам. Подробнее:
    / @stmsolution
    💰 Поддержать монетой:
    🎊 stm-solution.d...
    🥇Bitcoin - bc1q5ve3p8zmcm6z9tapts6padpmnvv572tsujukad
    📲 Через кнопку "Спасибо"
    👍 Или станьте спонсором канала!
    Все уроки по Гугл таблицам в одном плейлисте - • Google таблицы. Как со...
    Помощь по гугл таблицам - пишите в ВК id8947072
    Мой паблик в Telegram - t.me/stmsolution
    Буду рад видеть вас в моей группе ВК - public1...
    Twitter - / stm_solution
    Мой сайт stmsolution.ru
    Еще больше видео на моем канале / @stmsolution

Комментарии • 60

  • @DmitriyDeveloper
    @DmitriyDeveloper 3 года назад +3

    Хочу сказать тебе огромное спасибо, что ты делаешь такое хорошее дело, делишься знаниями с нами! Мне лично очень помогают твои уроки. Ты молодец, продолжай пожалуйста снимать, не останавливайся. Очень доступно объясняешь и поднимаешь интересные темы. Тяжело найти на просторах ютуба того кто действительно все показывает и рассказывает. В основном пишут код и такиее... "Ну все, вот так, подписывайтесь и ставьте лайки", а из урока ничего не понятно. Вобщем спасибо тебе!

    • @stmsolution
      @stmsolution  3 года назад +3

      Спасибо за добрые слова, стараемся.

  • @mir9209
    @mir9209 3 года назад

    Боженька, это ты? Мужик, ты невероятен! Все по полочкам! Я уже мозг вывихнул пока пытался что-то сделать и наткнулся на твои ролики. Спасибо, что ты есть!

    • @stmsolution
      @stmsolution  3 года назад +1

      Спасибо за такой эмоциональный отзыв)) Стараемся.

  • @user-zn4bh4fl2x
    @user-zn4bh4fl2x 3 года назад

    Несколько месяцев назад пробовала как раз скрипт oneEdit для фиксации изменения значения в ячейке. Как раз не срабатывал, если пользователь не из рабочей группы вносил изменения. Завтра же попробую ваш скрипт, очень удачно опять зашла в гости на ваш канал. :)
    Спасибо за уроки!

    • @stmsolution
      @stmsolution  3 года назад

      Заходите по чаще))

  • @4ernikavideo
    @4ernikavideo Год назад +3

    Решение вопроса по работе скрипта на НУЖНОМ ЛИСТЕ, если у вас несколько листов, а не во всей КНИГЕ, как в коде из видео.
    Ответ подсказали на профильном форуме. Пишем такой код и радуемся работе Скрипта на НУЖНОМ нам листе! :)
    И еще. На профильном форуме дали два совета:
    - вместо единичных кавычек в названии листа поставить двойные кавычки.
    - вместо тройных знаков "===" (равно) поставить двойные знаки равенства "=="
    function auto_set_date(){
    var sheet = SpreadsheetApp.getActiveSheet();
    if (sheet.getName() == "НУЖНЫЙ_ЛИСТ"){
    var ar = sheet.getActiveRange();
    var a_col = ar.getColumn();
    if(a_col == 2 && ar.offset(0,6).getValue() == ""){
    ar.offset(0,6).setValue(new Date());
    }
    }
    }
    PS
    естественно не забываем поменять название на ваш лист: if (sheet.getName() == "НУЖНЫЙ_ЛИСТ"){
    и выбрать при редактировании какой ячейки в какую ячейку будет проставляться штамп даты: if(a_col == 2 && ar.offset(0,6).getValue() == ""){

    • @stmsolution
      @stmsolution  Год назад

      да, об этом не указал, спасибо!!

  • @mysteriouswounder247
    @mysteriouswounder247 7 месяцев назад +1

    Primite blagodarnost iz Uzbekistana))) Spasibo vam bolshoe

  • @aknazarabdyldaev9790
    @aknazarabdyldaev9790 2 года назад +1

    Спасибо!

  • @Kulibin_Mali
    @Kulibin_Mali 3 года назад

    Как всегда необходимые лайфхаки!!!
    Было бы здорово в описание к видео добавлять сам код или ссылку на таблицу с примером (например) :)))

    • @stmsolution
      @stmsolution  3 года назад

      расчет на то что бы вы повторили и научились))

    • @andrey-nevedomii0_o
      @andrey-nevedomii0_o 2 года назад

      @@stmsolution и это правильный рассчет!) еще раз молодец!)

  • @user-sy9gr4tk6m
    @user-sy9gr4tk6m Год назад

    Впервые столкнулся с написанием скрипта и получилось благодаря вам! Огромное спасибо!
    Все на столько ясно, что тут же подписался на ваш канал, надеюсь найти очень много полезного.
    По данному уроку прошу помочь с еще одним условием: чтобы данные действия выполнялись на всех листах за исключением некоторых

  • @Yogsvet
    @Yogsvet 5 месяцев назад

    Спасибо за ваши видео. Есть вопрос. Вот мы защитились, чтобы кто-то не подменил нам дату. Мы молодцы. Но ведь если у человека есть доступ на редактирование файла, то у него автоматически есть доступ к телу скрипта через меню таблицы. Как нам защитить сам скрипт, от изменений пользователями таблицы?

  • @eliseenkov
    @eliseenkov Год назад

    Спасибо за полезные уроки и ответы в комментариях. Смог победить работу скрипта на всех листах.
    Подскажите, как победить вставку скриптом одинаковых значений, при растягивании 3-го столбца за "узелок". В каком направлении думать?

  • @РоманИгнатов-м2д
    @РоманИгнатов-м2д 3 года назад +2

    💪👍

  • @vadymfedorchenko
    @vadymfedorchenko 2 года назад +1

    Здравствуйте! Спасибо большое за полезный урок!
    Подскажите пожалуйста как сделать чтоб дата проставлялась только в конкретном листе?
    У меня в документе 2 листа и скрипт работает в каждом невзирая на переменную getSheetBy Name
    эта функция работает на каждом листе в 5 колонке а не только в "ES"
    function auto_set_date() {
    var ss = SpreadsheetApp.getActiveSpreadsheet();
    var sheetEs = ss.getSheetByName('ES');
    var arEs = sheetEs.getActiveRange();
    var a_colEs = arEs.getColumn();
    if ((a_colEs === 5 && arEs.getValue()===('Done')) && arEs.offset(0,1).getValue()===''){
    arEs.offset(0,1).setValue(new Date());
    }
    }

    • @stmsolution
      @stmsolution  2 года назад +1

      Получайте activeSheet().getName() и проверяйте через if если равно нужному имени то пропускаем иначе, проставляем даты

  • @macseo
    @macseo Год назад

    Подскажите можно ли сделать селектор для выбора времени (часов и минут) на подобии того как в таблицах дата руками выбирается?

  • @viktormakar9636
    @viktormakar9636 Год назад

    Как сделать что бы поменять скрипт чтоб изменяемых ячеек было три и соответственно три дати?

  • @maxpointer4253
    @maxpointer4253 3 года назад +1

    давно интересует вопрос..
    хотелось бы, что бы регистрировалась дата и адрес почты того кто вносит изменения и следовательно не могли инкогнито сделать изменения ...
    бывают не родиевые администраторы что открывают доступ с правами редактирования для тех кто получил ссылку ..
    есть и стандартные решения (к примеру ГуглФормы) но оказывается можно обойти если напрямую вносить данные в таблицу если получил ссылку ...

    • @stmsolution
      @stmsolution  3 года назад +2

      Можно запретить в настройках редакторам давать права редактора))

    • @maxpointer4253
      @maxpointer4253 3 года назад

      @@stmsolution ну можно ваще самому всё делать и за работников работать..
      а вопрос в том что бы редакторы оставляли отпечаток в той строке которую создают...

    • @stmsolution
      @stmsolution  3 года назад

      Вы написали что редакторы дают другим доступ, я вам написал что можно запретить это делать... И избавится от одной из проблем безопасности

    • @МихаилСмирнов-ы7б
      @МихаилСмирнов-ы7б 3 года назад

      @@stmsolution в такой ситуации вносить какие либо изменения смогут только назначенные вами через google аккаунты редакторы а их действия можно отследить нажатием правой кнопкой на ячейку. А другие пользователи вообще не смогут получить доступ к редактированию=)

    • @МихаилСмирнов-ы7б
      @МихаилСмирнов-ы7б 3 года назад

      Но тема всё-же интересная... Можно ли как-то выводить автора заполнившего конкретную ячейку?... Вариант применения такой. Есть общая таблица где к примеру складские сотрудники забивают операции и формируют предварительный акт приёмки товара который потом будет подписан. Тогда графа представитель склада будет заполняются фамилией конкретного сотрудника заполнившего это строку=) конечно можно сделать для каждого сотрудника отдельную таблицу и просто стягивать данные но тогда и просматривать общую базу сотрудник должен будет в другой таблице что немного не удобно=) Применений может быть море=) просто интересно есть ли такая механика=)

  • @АндрейАнохин-м6о

    Добрый день. Как сделать так, что бы дата ставилась при введении в контрольную ячейку определенного слова?

  • @maximkozlov6883
    @maximkozlov6883 3 года назад

    Насяльника, запили как со сторонними api работать. И как дополнение свое сделать тоже запили. Бомба будет.

  • @ЕкатеринаБычкова-н1й

    Добрый день! Прошу помочь разобраться, как сделать подсветку даты за два месяца до ее наступления.

    • @stmsolution
      @stmsolution  3 года назад

      =$A1>$A1-60, попробуйте так

  • @еленаигнатенко-е2ю
    @еленаигнатенко-е2ю 3 года назад

    добрый день! подскажите, пожалуйста, как вычислить разницу между первой и последней датой?

    • @stmsolution
      @stmsolution  3 года назад

      Отнять от последней первую)) не совсем понял вопрос))

  • @michal2007
    @michal2007 3 года назад

    Что если удалить строку с данными, которая пересекает заблокированный столбец, удалится?

  • @alexcdromov
    @alexcdromov Год назад +1

    4:10 Вопрос, а как сделать, чтобы только на определенных листах работал этот код? В таблице не на всех листах нужна авто дата, прописал лист как на видео только со своим названием, а дата всё равно проставляется на всех листах

    • @stmsolution
      @stmsolution  Год назад +1

      if (sheet.getName()==="Нужный лист"){весь код}

    • @4ernikavideo
      @4ernikavideo Год назад

      @@stmsolution Здравствуйте. такая же проблема - код из видео работает на всех листах... добавил ваш дополнительный код строкой №1: if (sheet.getName()==="Нужный лист"){весь код} - вместо "Нужный лист" вписал название своего листа на русском и в скобки {весь код} включил весь код начиная с function auto_set_date(){ - теперь вообще ничего не работает и даже на нужном листе... есть какое-то решение этой проблемы? Спасибо.
      PS
      честно говоря, в коде, названия моих листов на русском языке имеют красную окраску...может я и ошибаюсь, но предположил, что это гугл не хочет работать с русским языком и по этому код работает на всех листах. Но тут у меня есть условие - названия листов могут быть только на русском языке. Как быть в такой ситуации?

    • @alexcdromov
      @alexcdromov Год назад +1

      @@4ernikavideo у меня тоже не получилось, сделал как ты написал с англ названиями, мало чего понимаю, но дело точно не в языке

    • @alexcdromov
      @alexcdromov Год назад +1

      @@stmsolution Возможно показать как правильно добавить строку для нужных листов на примере? может я и код неправильно стащил с видео
      function Auto_set_date() {
      let ss = SpreadsheetApp.getActiveSpreadsheet();
      let sheet = ss.getSheetByName('плазма');('гильотина');
      let ar = sheet.getActiveRange();
      let a_col = ar.getColumn();
      // let a.row = ar.getrow();
      if(a_col === 4 && ar.offset(0,-2).getValue()==='') {
      ar.offset(0,-2).setValue(new Date());
      }
      }

    • @4ernikavideo
      @4ernikavideo Год назад +1

      @@alexcdromov ребята, получилось! Ответ подсказали на профильном форуме. Пишем такой код и радуемся работе Скрипта на НУЖНОМ нам листе! :)
      И еще. На профильном форуме дали два совета: вместо единичных кавычек в названии листа поставить двойные кавычки. И вместо тройных знаков "===" (равно) поставить двойные знаки равенства "=="
      function auto_set_date(){
      var sheet = SpreadsheetApp.getActiveSheet();
      if (sheet.getName() == "НУЖНЫЙ_ЛИСТ"){
      var ar = sheet.getActiveRange();
      var a_col = ar.getColumn();
      if(a_col == 2 && ar.offset(0,6).getValue() == ""){
      ar.offset(0,6).setValue(new Date());
      }
      }
      }
      PS
      естественно не забываем поменять название на ваш лист: if (sheet.getName() == "НУЖНЫЙ_ЛИСТ"){
      и выбрать при редактировании какой ячейки в какую ячейку будет проставляться штамп даты: if(a_col == 2 && ar.offset(0,6).getValue() == ""){

  • @stmsolution
    @stmsolution  3 года назад +2

    Пишите ваши замечания и предложения, а так же вопросы. Постараюсь на все ответить!
    Если вам нравится видео, вы можете его поддержать лайком а так же, при желании, поддержать канал монетой
    🎊 stm-solution.diaka.ua/donate
    🥇Bitcoin - bc1q5ve3p8zmcm6z9tapts6padpmnvv572tsujukad
    📲 Через кнопку "Спасибо"
    👍 Или станьте спонсором канала!

    • @МихаилСмирнов-ы7б
      @МихаилСмирнов-ы7б 3 года назад

      Есть одно предложение=) даже наверно просьба=) добавлять код в коммент... Я просто периодически смотрю видео на работе где нет звука... Так что приходится смотреть видео с телефона и если код не видно... то открывать урок на ПК чтобы разглядеть ";" и т.д=) возможно это в какой-то степень поднимет просмотры закрепдяшки слыхал что это как-то влияет на статистику=)

  • @elenoramalygina2796
    @elenoramalygina2796 3 года назад

    Здравствуйте, очень интересно как сделать так что бы в ячейке было имя например Лена и когда мышкой наводишь появляется информация о данной Лене и т.д. то есть в ячейке только название а когда наведёшь курсор на ячейку то показывает информацию, как это сделать? Подскажите пожалуйста

    • @stmsolution
      @stmsolution  3 года назад +1

      Нажмите правой и найдите пункт вставить примечание

    • @elenoramalygina2796
      @elenoramalygina2796 3 года назад

      @@stmsolution спасибо большое, получилось 🙏

  • @murat.ondasyn
    @murat.ondasyn 3 года назад

    Здравствуйте.Существуют ли какие-либо ограничения для GOOGLE App script относительно того, сколько раз скрипт может вызываться веб-сайтом?
    СПАСИБО

    • @stmsolution
      @stmsolution  3 года назад

      Есть ограничения по времени работы, 6мин остальное не слышал

    • @murat.ondasyn
      @murat.ondasyn 3 года назад

      @@stmsolution спасибо за ответ.
      Во на счет 6 минут я тоже слышал и читал. Но не понял суть. Можете пожалуйста объяснить. Спасибо за ранее

    • @murat.ondasyn
      @murat.ondasyn 3 года назад

      @@stmsolution это совокупность всех вызовов за 24 часа? Или один вызов не должен приввшать лимит

    • @murat.ondasyn
      @murat.ondasyn 3 года назад

      @@stmsolution или между каждым вызовом скрипта промежуток должен быть 6 минут ?)))

  • @leodev87
    @leodev87 Год назад

    Качество картинки упало, 720p текст размытый

  • @user-vb5qh1ox1i
    @user-vb5qh1ox1i 3 года назад

    Как сделать что бы выводилась только дата 01.09.1999 ? без времени?

    • @stmsolution
      @stmsolution  3 года назад

      Utilities.format(new Date(), "GMT+3","dd.mm.yyyy")

    • @Обучениепосанитарномуминимуму
      @Обучениепосанитарномуминимуму 3 года назад

      @@stmsolution Не совсем понятно, куда это писать?)

    • @stmsolution
      @stmsolution  3 года назад

      @@Обучениепосанитарномуминимуму в редакторе кода вместо new Date()

    • @daryatabachkova
      @daryatabachkova 3 года назад

      @@stmsolution у меня не получается добавить дату без времени. Что я делаю не правильно?
      function auto_set_date() {
      let ss = SpreadsheetApp.getActiveSpreadsheet();
      let sheet = ss.getSheetByName('Card');
      let ar = sheet.getActiveRange();
      let a_col = ar.getColumn();
      if(a_col ===3 && ar.offset(0,-2).getValue()===''){
      ar.offset(0,-2).setValue(Utilities.format(new Date(), "GMT+3","dd.mm.yyyy"));
      }
      }

    • @АндрейКазаков-п6у
      @АндрейКазаков-п6у 2 года назад +1

      @@daryatabachkova, Utilities.format(new Date(), "GMT+3","dd.MM.yyyy") - ошибка была в том, что "mm" нужно писать заглавными буквами - "MM"