Новости:

Форум на данный момент в стадии обновления. Если у Вас возникли проблемы со входом в свою учетную запись - просьба писать на email: info@excel-vba.ru

Главное меню

Просмотр сообщений

В этом разделе можно просмотреть все сообщения, сделанные этим пользователем.

Просмотр сообщений

Сообщения - Максим Пожарский

#1
Добрый день, Дмитрий. Честно говоря, понимать бы в какую сторону копать)
Я подумал на функцию onEdit, потому что при ручном запуске всё отправляется, но при нажатии на чексбокс, как было задумано, почему то нет.
#2
Всем привет! Возникла проблема, как привязать скрипт к чекбоксу. Всячески перепробовал разные методы, включая триггеры, но всё равно не работает. Хотя сама функция рабочая, если её активировать в ручную. Задача в следующем: необходимо, чтобы по нажатию на чекбокс, напротив, ячейки с адресом эл. почты срабатывал скрипт, который отправляет информацию сотруднику.  Такое ощущение, что в моём скрипте функция onEdit не запускает скрипт. Было предположение, что onEdit не срабатывает из-за того, что в ячейке E2 адреса подтягиваются по формуле. Пробовал вместо onEdit функцию onChange, она вроде как обходит такие ограничения. Всё равно не срабатывает скрипт при активации чекбокса. Пробовал также адреса вручную вносить без формулы, всё равно не срабатывает.

Заранее благодарю за помощь! Таблица: https://docs.google.com/spreadsheets/d/1KN_3K35z_WwtikCEyQnBD4eymc0k2Pi-ORfrAkk2sck/edit?usp=sharing

#4
Дмитрий, спасибо большое! Таблица достаточна большая, это график сотрудников. Просто при выходе новых сотрудников каждый раз приходится добавлять строку вручную и формулы в соседние ячейки вносить. Вообще столбцов я посчитал - их 65, а копировать планируется с первого, ну то есть, со столбца А. До столбца BN.

Я так понимаю, что в скрипте, необходимо изменить значение 3 на 65, верно?
#5
Всем привет! Помогите, пожалуйста, модифицировать скрипт :pray:

function onOpen() {
SpreadsheetApp.getUi()                  //доступ к интерфейсу Google Sheets
.createMenu('Button')            //меню
.addItem('Line', 'myFunction_Button1')  //кнопка
.addToUi();
};
function myFunction_Button1() {
 var ss = SpreadsheetApp.getActiveSpreadsheet();
 var sheet = ss.getActiveSheet();
 var range = sheet.getActiveRange();
 var row = range.getRow();
 var col = range.getColumn();
 sheet.insertRowAfter(row);
 Logger.log(row);
 Logger.log(col);
}

Данный скрипт добавляет новую (пустую) строку по нажатию кнопки Line из меню от выделенной ячейки. А как сделать так, чтобы скрипт добавлял не просто пустую строку, а строку с переносом данных из предыдущей строки, то есть, формулы, если есть ?

Заранее благодарю за помощь!
#6
Добрый день знатоки Excel and Google Sheets :)
Можете, пожалуйста, меня с ориентировать, в гугл таблицах есть возможность с помощью скрипта написать программную оболочку (по типу формы в Excel)?
Задача собственно состоит в том, чтобы из простой таблицы, где задействованы две ячейки, в одну из которых вводится информация, в другой ячейке выводится информация, сделать форму, где всё работало бы также, как и в таблице, но выглядело, как программная оболочка.

Приложил скрин пример рабочей таблицы. Там где ответ, результат подтягивается через ВПР, в зависимости от того, что мы вводим в ячейку с названием такс.

Просто почему задался таким вопросом, так как таблица является общедоступной для многих сотрудников, постоянно ломают форматирование ячеек (границы/шрифт) и т д.

Заранее благодарю за помощь и советы!
#7
Спасибо вам добрый человек :) Я вчера читал статью, которую вы мне отправили, но не до конца разобрался ??? Пытался сам, но напутал много всего и в итоге ничего не получилось(
Можете, пожалуйста, посоветовать, что можно почитать, чтобы я мог научиться элементарные скрипты хотя бы писать, может есть какой мануал?
На просторах интернета много всего, но фиг знает, что из этого полезно, а что нет
#8
Здравствуйте Casag! Подскажите, пожалуйста, что не так делаю в скрипте? Он почему то копирует пустой лист :-\
function myFunction_Button1() {
var sh = SpreadsheetApp.openById('1HLF22eVwFqFXQPrKoTDAL4MXrAXZvdZE44WjItxAIiQ').getSheetByName('Шаблон_2024');
var ss = SpreadsheetApp.getActive();
var sheetOld = ss.getSheetByName('Шаблон_2024');
ss.insertSheet(0,{template: sheetOld}).setName('Месяц_2024');
}


Я же правильно понимаю функция ss.getSheetByName('Шаблон_2024'); в ней указывается имя листа, который копируем из другой таблицы, ранее к которой обращались?
#9
Всем добрый день! Помогите, пожалуйста, доработать скрипт :-\
Мне нужно, чтобы по запуску скрипта копировался лист (как шаблон) из другой таблицы. И желательно, чтобы скопированный лист ставился не в конце, а в начале таблицы.
Я пока только учусь писать скрипты, написал следующий скрипт, который копирует лист из текущей таблицы, но ставит его в самый конец, что не очень удобно, так как много вкладок присутствует.
function onOpen() { 
SpreadsheetApp.getUi()                  //доступ к интерфейсу Google Sheets 
.createMenu('Новая кнопка')            //меню 
.addItem('Шаблон графика', 'myFunction_Button1')  //кнопка "Код 1"
.addToUi();
};
function myFunction_Button1() {
var ss = SpreadsheetApp.getActive();
var sheetOld = ss.getSheetByName('Сентябрь_2024');
var sheetNew = sheetOld.copyTo(ss);
sheetNew.setName('Месяц_2024');
}


Копирование привязал к кнопке.
Очень нужно, чтобы копирование листа было из другой таблицы :-[

Заранее благодарю!
#10
Спасибо огромное за помощь Casag!  :-D Работает скрипт! Вы просто гений 8-)
#11
У меня в основном рабочем графике каждый новый месяц копируется в новый лист, а там уже правятся рабочие часы и так далее... Вот хотелось бы, чтобы допустим, при копировании в новый лист, скрипт также работал.  :-\

У каждого нового листа соответствующее название новому месяцу (Август_2024/Сентябрь_2024/Октябрь_2024) и так далее. Можно ли так сделать? Пытался сам, но не понимаю, как скрипт можно продублировать.
#12
Добрый день, Casag! Можете, пожалуйста, подсказать, можно ли данный скрипт дублировать в одном коде, чтобы каждый раз, допустим, не менять название листа внутри скрипта при копировании листа?
#13
Добрый день! Спасибо вам огромное Casag!!! :-D
Очень помогли, всё работает просто супер, как и хотелось чтобы работало
#14
Всем добрый день! Помогите, пожалуйста, доработать скрипт :-\
Уже была похожая ранее тема, собственно оттуда я и скопировал скрипт, чтобы при заданном значении ячейки столбец скрывался, чтобы не руками его каждый раз скрывать или наоборот добавлять.
Есть график, который разбит по месяцам, количество дней в каждом месяце разное и вот хотелось бы сделать так, чтобы при выборе, к примеру, месяца ИЮНЬ, где не 31 день, а 30 следом идущий столбец со значением 01 был скрыт и не мешался, а если выбираем месяц там, где 31 день, то естественно столбец бы не скрывался. Ну и проблема с февралём, где дней 29, то есть, по логике нужно скрывать два столбца. Хотелось бы, чтобы график при выборе того или иного месяца отображался с корректным значением дней в столбцах.
Таблица: https://docs.google.com/spreadsheets/d/1HmvYn2u4WPHkN4G9nd8_tNWEWWYy9evQqFyRdVy9KX8/edit#gid=1549940855
function onEdit(e) {   
  const specificSheet = "Лист2"   // имя листа, на котором будет отслеживание изменения значений ячеек   
  const specificCellColumn = 31    // номер столбца для отслеживания изменений   
   
  let sheetCheck = (e.range.getSheet().getName() == specificSheet)   
  let cellCheck = (e.range.getColumn() == specificCellColumn)   
   
  if (!(sheetCheck && cellCheck)) {   
    return   
  }   
  else {   
    var cellVal = e.range.getValue();   
    if (cellVal >1) {   
      e.range.getSheet().hideColumns(e.range.getColumn());}   
  }   
}


Я вроде в скрипте поменял на свои данные но он выдаёт ошибку в переменной e.range.getSheet
#15
Дмитрий здравствуйте! Я не стал создавать новую тему, чтобы не плодить похожие. Появился вопрос касаемо парсинга..
Я парсил данные с сайта https://www.avionio.com/ru/airport/muc/departures
Всё прекрасно работало, но потом почему то некоторые ячейки с вложенной IMPORTXML формулой перестали прогружать инфу, но не все правда ячейки, а только некоторые.
Таблица: https://docs.google.com/spreadsheets/d/1HmvYn2u4WPHkN4G9nd8_tNWEWWYy9evQqFyRdVy9KX8/edit#gid=1642939295
Формула вроде везде простая, но вот ячейки с временем и статусом перестали транслировать инфу с сайта, хотя до этого всё работало. Можете, пожалуйста, подсказать с чем это может быть связано?
Заранее благодарю!
Яндекс.Метрика Рейтинг@Mail.ru