Доброе утро. Товарищи, коллеги, выручайте! Жития нету, пользователи превратили общедоступную таблицу в работу 5летнего ребенка. Не таблица а радуга. Как можно запретить закрашивание в документе, чтобы формулы сами все делали? P.S. тискал поиск по форуму. Нашел сообщение одного пользователя о том, что можно это сделать макросом.
Дело в том, что куча формул и УФ форматирования уже сделана с рассчетом на то, что даты пишут как простое числовое значение. Проще поставить "обязаловку" на указание даты с разделителем в виде запятой, чем начинать делать все заново.
Пытался реализовать ограничение для юзеров. Дабы они могли вписать в ячейку только дату формата ДД,ММ или ДД,ММ,ГГ (с запятой). Получилось немного "топорно" и я застрял как раз на возможности вводить ДД,ММ,ГГ. В общем, понимаю, что без вашего совета никак. Пример прикрутил. P.S. Прекрасно понимаю, что эту задачу можно реализовать проверкой данных по формуле. Жаль что ума у меня пока маловато.
Доброе утро. Собственно суть вопроса в теме, попробую его немного развернуть. Есть ли возможность с помощью формулы и УФ сделать так, чтобы определенная ячейка, в которую вписываются данные во второй раз (редактируются имеющиеся данные), окрашивалась? Перекопал весь форум, был вариант с автоматической защитой ячейки при вписании в нее данных, этот метод вообще для меня идеален, но, к сожалению, не сработает т.к. таблица общедоступная и строка UserInterFace=true выдает в ней ошибку. --- P.S. Спасибо форуму и его умам, за то, что они (вы) есть.
В таком случае в таблице должно было все выделиться. У меня пользователи такие, что проще под них подстроиться чем научить чему-то. Т.е. пусть УФ думает, что проверяет обычное действительное число. (Надеюсь не определят как оффтоп)
Заметил одну проблемку. Такое уф работает только с числами/датами с одним разделительным знаком (13,03). Если писать с двумя (13,03,13) - выделяет как текст. Есть этому решение? Пробовал поставить туда проверку данных на действительное число, а потом УФ реагирующее на ошибку. Видимо на такую ошибку оно не реагирует. (Скорее я просто не дорос до такого)
Добрый день. Подскажите как такое реализовать, чтобы условное форматирование срабатывало на любой текст (не число) в ячейке и выделяло ее. Пробовал функцию =ЕТЕКСТ, но она с условным форматированием у меня не заработала. С приемом "условное форматирование" на сайте ознакомлен.
Проверил на сочетании клавиш. Макрос не срабатывает. Вопрос можно считать закрытым. Всем кто мне пытался помочь - огромное спасибо. Благодаря вам, сегодня я стал намного умнее.
...при общем доступе нельзя ставить-снимать защиту
Очень полезную вещь прицепили к своему сообщению. Спасибо. Выходит я ничего не смогу сделать с этим. И по сути адекватная работа автофильтров в общедоступной таблице в принципе невозможна?
Sub Workbook_Open() ActiveSheet.Protect DrawingObjects:=False, Contents:=True, Scenarios:= _ False, AllowFormattingCells:=True, AllowFormattingColumns:=True, _ AllowFormattingRows:=True, AllowSorting:=True, AllowFiltering:=True, _ AllowUsingPivotTables:=True, UserInterfaceOnly:=True For Each iList In Worksheets If iList.FilterMode = True Then _ iList.ShowAllData Next End Sub
Убрал все листы. Оставил только 1 в книге. (Там всего 1 и нужен) К сожалению, ошибка осталась.
Макрос Sub Workbook_Open() ActiveSheet.Protect UserInterfaceOnly:=True ActiveSheet.Protect DrawingObjects:=False, Contents:=True, Scenarios:= _ False, AllowFormattingCells:=True, AllowFormattingColumns:=True, _ AllowFormattingRows:=True, AllowSorting:=True, AllowFiltering:=True, _ AllowUsingPivotTables:=True For Each iList In Worksheets If iList.FilterMode = True Then _ iList.ShowAllData Next End Sub
Сделал 2 строки ActiveSheet.Protect, чтобы видеть где защита листа а где защита VBA Заработало, но снова до тех пор, пока не сделал таблицу общедоступной.
Все работает, но до тех пор пока не сделаю таблицу общедоступной. Вот макрос (пробовал без пароля) Sub Workbook_Open() ActiveSheet.Unprotect For Each iList In Worksheets If iList.FilterMode = True Then _ iList.ShowAllData ActiveSheet.Protect DrawingObjects:=True, Contents:=True, Scenarios:=True _ , AllowFormattingCells:=True, AllowFormattingColumns:=True, _ AllowFormattingRows:=True, AllowInsertingColumns:=True, AllowInsertingRows _ :=True, AllowInsertingHyperlinks:=True, AllowSorting:=True, _ AllowFiltering:=True, AllowUsingPivotTables:=True Next End Sub
Если я все правильно понимаю, снятие и установка защиты возможна только после снятия с таблицы статуса "доступ к книге" (общедоступность) Выходит моя затея невыполнима?
Ловко, осталось еще додуматься как. Пойду мучать гугл. Спасибо за совет. Очень помогли. Выложу потом готовый макрос, так сказать "авось еще кому поможет"
Понимаю в какую вы сторону клоните. Но будет ли оно "макрос" работать в файле? Я имею ввиду сам макрос для себя будет снимать защиту и отрабатывать задачу, или будет просто снимать защиту с файла и тем самым открывать доступ пользователям к тому, к чему не нужно?
Доброго времени суток. Решил я тут на днях, сделать таблицу с автофильтрами и общедоступностью. И вот я себе подумал, каждый будет редактировать и создавать свои правила фильтрации а потом сохранять. На выходе получим хаос. Присобачил к книге макрос, который при открытии книги обнуляет настройки фильтров. И тут начались проблемы. Оказалось этот макрос не работает если таблица с защитой. Есть какие еще варианты? Буду рад советам. Таблицу вылодить не могу т.к. там рассчет зп соткрудников. (Сами понимаете).
Макрос: Sub Workbook_Open() For Each iList In Worksheets If iList.FilterMode = True Then _ iList.ShowAllData Next End Sub
P.S. Поиск тискал, подобных вопросов/ответов не нашел.