Добрый день! Помогите пожалуйста разобраться, как сделать что бы при заполнении файла можно было выбрать только данные для конкретной ячейки. Что с помощью Данные-проверка данных - это понятно. Но тут не все так просто.
Когда я устанавливаю Проверку данных и защищаю лист проходит следующее:
1. Или человек не может воспользоваться вообще фильтром. 2. Или же человек может воспользоваться фильтром но при этом может вставить любое значение. К примеру ctrl C - ctrl V и вместо 30,000 так появляется 30000,00, 30 0000, 30.000 и т.д. вариации. Понятное дело что при автоматической формуле подсчета не всегда данные считаются (если вставлен текстовый формат). Нечто подобное и с текстом. Вместо Компания №1 может быть Компания№1, Компания № 1, Компания 1 и т.д.
Вариаций мало, буквально 15шт для цифр и текста, т.е. прописать их все в проверке данных реально и пользоваться будет удобно. Весь вопрос как это сделать?! Заранее большое спасибо!
Добрый день! Помогите пожалуйста разобраться, как сделать что бы при заполнении файла можно было выбрать только данные для конкретной ячейки. Что с помощью Данные-проверка данных - это понятно. Но тут не все так просто.
Когда я устанавливаю Проверку данных и защищаю лист проходит следующее:
1. Или человек не может воспользоваться вообще фильтром. 2. Или же человек может воспользоваться фильтром но при этом может вставить любое значение. К примеру ctrl C - ctrl V и вместо 30,000 так появляется 30000,00, 30 0000, 30.000 и т.д. вариации. Понятное дело что при автоматической формуле подсчета не всегда данные считаются (если вставлен текстовый формат). Нечто подобное и с текстом. Вместо Компания №1 может быть Компания№1, Компания № 1, Компания 1 и т.д.
Вариаций мало, буквально 15шт для цифр и текста, т.е. прописать их все в проверке данных реально и пользоваться будет удобно. Весь вопрос как это сделать?! Заранее большое спасибо!ostryk
Private Sub Worksheet_SelectionChange(ByVal Target As Range) If Not Intersect(Target, Range("a1:k20")) Is Nothing Then Application.CutCopyMode = False End Sub
[/vba]
ostryk, здравствуйте, а если так? [vba]
Код
Private Sub Worksheet_SelectionChange(ByVal Target As Range) If Not Intersect(Target, Range("a1:k20")) Is Nothing Then Application.CutCopyMode = False End Sub
Может Вы не совсем правильно ставите защиту листа?. Почитайте тут как можно и защиту поставить и фильтры разрешить
Возможно. Т.к. в макросах не силен, то не особо понял суть.
Наверное с примером будет лучше.
Красное - это то что меняться не должно. Там всегда одна и та же информация. Т.е. эти ячейки вообще заблокировать я хочу Желтое - это там где фильтр, т.е. люди должны выбирать только из предложенных значений (они внизу таблицы по столбцу С) НУ а белое, это то что будет постоянно меняться и там никакими фильтрами не придумать ничего.
Вот и вопрос, так мне сделать так что бы в белое люди вносили все как хотят, в желтое - только из фильтра а красные не могли трогать совсем?! При этом исключить злосчастный ctrl C - ctrl V
Может Вы не совсем правильно ставите защиту листа?. Почитайте тут как можно и защиту поставить и фильтры разрешить
Возможно. Т.к. в макросах не силен, то не особо понял суть.
Наверное с примером будет лучше.
Красное - это то что меняться не должно. Там всегда одна и та же информация. Т.е. эти ячейки вообще заблокировать я хочу Желтое - это там где фильтр, т.е. люди должны выбирать только из предложенных значений (они внизу таблицы по столбцу С) НУ а белое, это то что будет постоянно меняться и там никакими фильтрами не придумать ничего.
Вот и вопрос, так мне сделать так что бы в белое люди вносили все как хотят, в желтое - только из фильтра а красные не могли трогать совсем?! При этом исключить злосчастный ctrl C - ctrl Vostryk
ostryk, переписала с номерами столбцов, так понятнее? [vba]
Код
Private Sub Worksheet_SelectionChange(ByVal Target As Range) If Target.Column = 4 Or Target.Column = 8 Or Target.Column = 10 Or Target.Column = 11 Then Application.CutCopyMode = False End Sub
[/vba]
ostryk, переписала с номерами столбцов, так понятнее? [vba]
Код
Private Sub Worksheet_SelectionChange(ByVal Target As Range) If Target.Column = 4 Or Target.Column = 8 Or Target.Column = 10 Or Target.Column = 11 Then Application.CutCopyMode = False End Sub
Думаю нужно совместить то - что предложила Manyasha, с защитой листа, поскольку если отдельно будут пробелы: Защита листа не защитит от вставки в незащищенные ячейки. Отключение режима копирования от Manyasha, не защитит от удаления заблокированных ячеек, вставки и удаления строк и столбцов.
Думаю нужно совместить то - что предложила Manyasha, с защитой листа, поскольку если отдельно будут пробелы: Защита листа не защитит от вставки в незащищенные ячейки. Отключение режима копирования от Manyasha, не защитит от удаления заблокированных ячеек, вставки и удаления строк и столбцов.SLAVICK
О точно , просто с активацией ячеек(а я поставил запрет) и нечего не написали - я открыл файл посмотрел, что ячейки активируются - дальше проверять не стал. Ну пусть будут разные варианты защиты - ТС выберет, что ему нужно .
О точно , просто с активацией ячеек(а я поставил запрет) и нечего не написали - я открыл файл посмотрел, что ячейки активируются - дальше проверять не стал. Ну пусть будут разные варианты защиты - ТС выберет, что ему нужно .SLAVICK