Ограничение на ввод в ячейку в зависимости от значения в другой ячейки

Автор bakusserg, 11 мая 2014, 21:43

0 Пользователи и 1 гость просматривают эту тему.

bakusserg

Если в ячейке столбца B(фамилия) пусто, то при попытке ввода числа в ячейку столбца C,D или E в соответствующей строке, — запрет на ввод с выдачей сообщения о необходимости сначала заполнить ячейку в столбце фамилия. Желательно при этом, чтобы курсор автоматически переводился на ячейку в столбце B(фамилия). При этом в ячейки запрещено вводить 0 и отрицательные значения. Как это реализовать? , через проверку данных не получается. Документ во вложении.


bakusserg

Да так, спасибо  :beer:. Вот бы ещё курсор автоматически переводился в ячейку в столбце B(фамилия) при попытке ввода в ячейки C,D,E , если не заполнена фамилия.

celler

У Вас ведь помимо требования относительно столбца B ещё и несколько условий по C3:E7:
1. число
2. >0
3. целое
Поэтому не всегда нужен переход в графу Фамилия, а иногда нужно остаться в C3:E7 и выдать соответствующее сообщение. Это нужно писать хитрый макрос, обрабатывающий все возможные ситуации.

luu

А есть ли какая-то возможность ограничить вставку значений копипастом?
Очень часто бывает так, что делаешь форму для заполнения с выпадающими списками, проверкой по условиям, предупреждениями при неверных данных. А в итоге умный пользователь просто вставляет откуда-нибудь значение при помощи Ctrl+C -> Ctrl+V и вся форма ломается

economist

Если через Ctrl+V вставлено легальное значение - это нормально. Функционал проверки данных невсесилен. Кто-то считает умным блокировать/переназначить на "ничто" сочетание Ctrl+V, но это оо...очень некрасиво. Я бы с такой конторой не ужился. Если люди копируют откуда-то - значит "оно" уже где-то есть, и может есть смысл нстроить авто-обмен? 

Против "самых умных" пользователей (они могут и макросом значения вставлять, Ctrl+V им не нужен) - нужно делать "финальную" валидацию, скажем по кнопке внизу "формы". Примерно 90% контроля можно реализовать "итоговой" формулой, а на 10% нужен макрос.   
Руб. за сто, что Питоньяк
Любит водку и коньяк!
Потому что мне, без оных, -
Не понять его никак...

luu

Цитата: economist от 13 декабря 2019, 12:40
Если через Ctrl+V вставлено легальное значение - это нормально. Функционал проверки данных невсесилен. Кто-то считает умным блокировать/переназначить на "ничто" сочетание Ctrl+V, но это оо...очень некрасиво. Я бы с такой конторой не ужился. Если люди копируют откуда-то - значит "оно" уже где-то есть, и может есть смысл нстроить авто-обмен? 

Против "самых умных" пользователей (они могут и макросом значения вставлять, Ctrl+V им не нужен) - нужно делать "финальную" валидацию, скажем по кнопке внизу "формы". Примерно 90% контроля можно реализовать "итоговой" формулой, а на 10% нужен макрос.   
В том-то и дело, что против легальных значений никто против ничего не имеет. Пусть даже в кривом форматировании.
Но именно через Ctrl+V умудряются вставить "нелегалов".
Сейчас это валидируется соседним столбцом с формулами для проверки каждой ячейки. но особо упоротым пользователям это ничуть не мешает отправлять заполненные неликвидом формы.

Во вложении пример.
Обычно на такой форме включена защита листа, а с ячеек С2:С58 защита снята, чтобы пользователь вносил данные.
Выбор значений реализован через Данные -> Проверка

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

Здесь для примера все они одинаковые, но в реальности список допустимых значений не повторяется в ячейках и сам список может быть довольно большим.
Поэтому и вопрос в том, чтобы либо проверять вставляемое значение до вставки и не позволять вставлять неликвид, либо сообщать о том, что вставлен неликвид (что сейчас и делается в соседнем столбце), но позволять исправить свою ошибу (а вот к этому уже вернуться не получается, потому что настройки "Проверка..." уже удалены из ячейки)


mikekaganski

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

luu

Цитата: mikekaganski от 13 декабря 2019, 15:00
Вы говорите не о вставке значений в  ячейки, а о копировании другой ячейки и фактической замене имеющейся ячейки с валидацией другой при вставке? Это не запретить; надо писать запрос в багтрекер...
Да, все верно. Вопрос именно в копировании.
Очень жаль, что это пока непобедимо :(