Коллеги, имеется вопрос: У меня есть столбец в котором я могу выбирать значения ячеек только с помощью списка валидатора. Все хорошо, если делать ручками, однако смысл списка теряется, если вставить в данное поле скопированные ячейки… ВОПРОС: КАК МНЕ БЫТЬ?))) ЗАРАНЕЕ БЛАГОДАРЕН. |
|
Списку неважно — руками вы ввели, или скопировали. Другое дело, если значение получено с помощью формулы. Если это так, то и вопрос нужно строить соответственно. Это РАЗНЫЕ ВЕЩИ. А вы про копирование говорите. |
|
{quote}{login=}{date=04.08.2008 02:15}{thema=}{post}Списку неважно — руками вы ввели, или скопировали. Другое дело, если значение получено с помощью формулы. Если это так, то и вопрос нужно строить соответственно. Это РАЗНЫЕ ВЕЩИ. А вы про копирование говорите.{/post}{/quote} Хорошо, сформулирую иначе: как мне сделать так, чтобы в определенную ячейку/диапазон нельзя было бы вставить скопированное значение, но можно было выбрать из списка! |
|
Все дело в тоМ, что формулу я не использую… ВЛУКАП там не уместен… |
|
Просто защитите нужные ячейки от изменений |
|
{quote}{login=}{date=04.08.2008 02:36}{thema=}{post}Просто защитите нужные ячейки от изменений{/post} Это, конечно, хорошо, но не получится выбрать значение с помощью валидатора. Все сделано для того, чтобы нерадивые смогли выбрать значение только из списка, а не копировали туда все подряд… |
|
Тогда от нерадивый скройте лист с «базой» |
|
{quote}{login=}{date=04.08.2008 02:57}{thema=}{post}Тогда от нерадивый скройте лист с «базой»{/post}{/quote} Нерадивые ДОЛЖНЫ заполнять базу руками. Для этого я им предоставляю возм-ть пользоваться списками, однако некоторые хитрецы копируют и вставляют, что мне абс ненужно. |
|
Тогда (как вариант): заполнение через форму. Лист будет скрыт. У нерадивого (если уж нельзя его обучить или дат ему по башке) будет только одно окошко для ввода. По кнопочке ОК данные занесутся в «Базу» (Список). |
|
{quote}{login=}{date=04.08.2008 03:14}{thema=}{post}Тогда (как вариант): заполнение через форму. Лист будет скрыт. У нерадивого (если уж нельзя его обучить или дат ему по башке) будет только одно окошко для ввода. По кнопочке ОК данные занесутся в «Базу» (Список).{/post}{/quote} ОК, сейчас попробую))) ПАСИБА! |
|
а как вы различаете ситуации может вам просто хочется чтоб введённое значение обязательно принадлежало введённому вами списку допустимых значений? |
|
{quote}{login=}{date=04.08.2008 03:21}{thema=}{post}а как вы различаете ситуации может вам просто хочется чтоб введённое значение обязательно принадлежало введённому вами списку допустимых значений?{/post}{/quote} Да, пожалуй именно этого я и хочу))) |
|
kaa Пользователь Сообщений: 508 |
дык в данные — проверка наверняка есть галка «список допустимых значений». при вводе значений, отличных от него эксёл может вполне ругацца матом, если его этому научить… |
Kaa, скорее всего разговор о том, чтобы пополнять этот самый список… Опять гадаем. |
|
{quote}{login=kaa}{date=04.08.2008 03:28}{thema=}{post}дык в данные — проверка наверняка есть галка «список допустимых значений». при вводе значений, отличных от него эксёл может вполне ругацца матом, если его этому научить… :){/post}{/quote} Если знаете как, научите меня пожалуйста!!! БУДУ очень благодарен!!! |
|
Ах вон оно в чем дело! Я то думал это пройденный этап. Тогда так? Меню Данные — Проверка — Список. Показываем диапазон. Еслу поругацца — смотрим закладку сообщение об ошибках. |
|
ГАДАТЬ НЕ НАДО. В ПРИКР ФАЙЛЕ НА ПЕРВОМ ЛИСТЕ УПРОЩ ФОРМА ТОГО, ЧТО МНЕ НАДО. ЕСЛИ ПРОСТО ВЫБИРАТЬ МОДЕЛЬ ИЗ СПИСКА — ВСЕ ХОРОШО. Теперь попробуйте скопировать ERICSSON справа и вставить в поле под MANUF… То же самое с числом. Я поставил на модел ограничение 5 символов. Если руками — все гут, если скопировать огромное число справа и вставить туда — оно вставится… Теперь поняли меня? |
|
Вот насчет «Гадать не надо» — вы АБСОЛЮТНО правы — нужно сразу файл выкладывать. |
|
Думал, Вы меня со слов поймете… Не поняли… Ну да ладно))) |
|
Так ведь опять вам в Данные — проверка. Ставьте ограничение и на к-во символов. В чем проблема? |
|
попробуйте после настройки ваших списков допустимых значений для ячейки |
|
Давайте уточнимся. Вам нужно осуществлять ввод только из заданного набора значений. При попытке ввести что-либо вручную — матерные слова с воплями. Но при этом нужно исключить возможность ввода при помощи копипаст. Так? |
|
{quote}{login=}{date=04.08.2008 04:30}{thema=}{post}попробуйте после настройки ваших списков допустимых значений для ячейки разумеется незащитить формулу а скрыть формулу |
|
{quote}{login=}{date=04.08.2008 04:30}{thema=}{post}Давайте уточнимся. Вам нужно осуществлять ввод только из заданного набора значений. При попытке ввести что-либо вручную — матерные слова с воплями. Но при этом нужно исключить возможность ввода при помощи копипаст. Так?{/post}{/quote} Да, все верно для поля МАНУФ. Для поля модель — необх ввести вручную ровно 5 цифр, иначе мат и ругань. ОК? |
|
Для ограничения 5 цифр — проблемы нет. А вот для ввода названия я бы использовал комбобокс. Попробуйте. По крайней мере по правой кнопке вставить не удастся. Из меню Правка тоже. |
|
{quote}{login=}{date=04.08.2008 05:24}{thema=}{post}Для ограничения 5 цифр — проблемы нет. А вот для ввода названия я бы использовал комбобокс. Попробуйте. По крайней мере по правой кнопке вставить не удастся. Из меню Правка тоже.{/post}{/quote} Мне неудобно спрашивать — поподробнее насчет комбобокса, ПОЖАЛУЙСТА. |
|
Страшновато, но встряну в разговор с призраками (Отца_Гамлета/Коммунизма/???). Если события специально не отключены, то чтобы не копировалось на списках, можно, например, в коде листа записать: Private Sub Worksheet_SelectionChange(ByVal Target As Range) |
|
Guest Гость |
#30 04.08.2008 18:50:07 {quote}{login=:)}{date=04.08.2008 06:00}{thema=}{post}Страшновато, но встряну в разговор с призраками (Отца_Гамлета/Коммунизма/???). Если события специально не отключены, то чтобы не копировалось на списках, можно, например, в коде листа записать: Private Sub Worksheet_SelectionChange(ByVal Target As Range) ещё предусмотреть ну думаю всплывёт ещё всякого. НЕ ТЕНИ А IP!!! |
Запрет вставки с буфера обмена в ячейку |
||||||||
Ответить |
||||||||
Ответить |
||||||||
Ответить |
||||||||
Ответить |
||||||||
Ответить |
Как запретить copy-paste на листах эксель?
Есть сложный документ, нагруженый форматируемыми ячейками, условными форматами и т.п. мутью. Часто возникает необходимость переностить данные из одного файла эксель в этот крутой, и ясен пень, особогениальные сотрудники делают это методом копи-пейст. При этом слетают условные форматирования, форматы ячеек — я уж молчу про границы и заливки. Вербальные и даже анальные внушения на предмет того точбы это не делать и перености рукаи не помогют — собственно хоче запретить это в самом файле.
Желательно чтобы выводилось сообщение о запрете или что-то в этом духе.
можно убрать возможность выделения ячеек, соответственно нельзя «в лоб» выделить и скопировать ячейки
В екселе 2003: пункт меню Сервис-Защита-Защитить лист и настраиваешь защиту по пунктам
В екселе 2007: вкладка Главная-блок Ячейки -Формат — Защитать лист… и настраиваешь защиту по пунктам
учти, что по умолчанию в формате ячеек по умолчанию включена защита ячейки (правая кнопка мышки по ячейке — Формат ячеек…- вкладка Защита)
Этот вариант совсем не катит — потому что должна оставатся возможность вносить значения РУКАМИ. Простыми, трудовыми, намазолеными менеджерскими руками… но БЕЗ возможности вставлять из буфера… ИЛИ если вставлять — то ТОЛЬКО значение — без форматирований, размеров текстов и т.п. чуши
Поппробуйте научить сотрудников вставлять только значения (ПКМ / специальная вставка) — эту функцию можно вывести на панельку и переназначить на нее сочетание клавишь Ctrl+V (если очень нужно). Но эту работу придется выполнять на каждой пользовательской машине.
Возможно VBA позволит сделать это лишь для указзанного файла.
Это как раз то что я сделал в первую очередь — запретил пользоваться обычной вставкой и научил юзать специальную. НО! выяснилось что даже при использовании специальной вставки вставляется не только значение но и условное_форматирование. Другими словами — действительно, вставляется только значение, но при этом впихивается и условное_форматирование… ИМХО это просто недоработка самого экселя — единственное решение которое я вижу это просто запретить использовать copy-paste полностью. Но если лист имеет структуру, защищён так чтобы часть ячеек редактировать а часть нет — то сделать это простыми методами нельзя… Мне бы подошёл и сложный — лишь бы он был…
Посмотрите такой вариант.
Кнопка на панели инструментов, в меню по ПКМ, комбинации Ctrl+v и Shift+Insert переназначены на вставку только значений, условное_форматирование не захватывается. Все это только на Лист1, в других листах и книгах все как обычно. Для нормальной встаки оставлен путь Правка-Вставить. Есть еще несколько путей обхода, но я думаю, что Вашим «особогениальным» не нужно будет их находить и поэтму не стал блокировать совсем все.
Скажи мне, кудесник, любимец ба’гов…
Яндекс-деньги: 41001632713405
Webmoney: R289877159277; Z102172301748; E177867141995
Если честно — совершенно не понял как это сделано и как перенести в свой файл…
Мне кажется что тут проще сделать макрос, который просто будет запрещать вставлять что-либо и как-либо, с всплывающем сообщением (ЗАПРЕЩЕНО!ЕПТ!)
только я не знаю как такой макрос сделать
Да вот в том то и дело что просто запретить его нежелательно — нужно сделать так чтобы по дефолту вставлялись ТОЛЬКО значения либо простой текст.
А я вставил в меню ПКМ следующий пункт и чуствую себя «нормально»
Sub AddShortCut()
With ComBar.Controls.Add(Type:=msoControlButton)
.OnAction = "MyPaste"
.FaceId = 22
.Caption = "Вставить значение"
End With
End Sub
Private Sub MyPaste()
Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks:=False, Transpose:=False
End Sub
Цитата: _Boroda_ от 23.07.2009, 14:22
Дак я ж так и сделал
Если не получается вставить макросы в свой файл или, как я уже писал, в мой файл с макросами вставить свою табличку — присылай кусочек своего файла (предполагаю, что весит он немало).
Да я бы с радостью — но у меня 8 менеджеров и у каждого такой файл свой… не все же 8 присылать — тем более что там есть инфа которую не хотелось бы публично светить. Поэтому хочу разобраться сам.
Что такое этот макрос? Где он хранится и куда его собсно вставлять?
Наивно полагал что это какая-то особо-сложная формула в ячейке — а это оказывается что-то роде программы внутри файла… вот это и вызывает сложности — начиная от простого переноса, заканчивая тем как это привязывать к нужным листам и т.п.
Из всех предложенных вариантов, ничего не понял…
помогите, мне тоже нужна такая возможность «запрета вставки»…
не ужели нет какого нить простого макроса, с запретом кнопки вставки…
Находясь в среде Excel нажмите «Alt+F11», откроется окно редактора VBA
Раскройте VBAProject(«Ваша Книга«) … в модуле «ЭтаКнига» вставьте следующий код
Private Sub Workbook_Open()
With Application
.OnKey "^{v}", "MyPaste"
.OnKey "+{INSERT}", "MyPaste"
.Run ("AddMyPaste")
End With
End Sub
Private Sub Workbook_BeforeClose(Cancel As Boolean)
'восстанавливаем всё на место при выходе
With Application
.OnKey "^{v}"
.OnKey "+{INSERT}"
.CommandBars("Cell").Reset ' Восстановление системного контекстного меню ячейки
End With
End Sub
затем, ПКМ по VBAProject вызываем меню и добавляем(insert) новый модуль
в Вновь созданный модуль вставьте следующий код
Sub AddMyPaste()
With CommandBars("Cell").Controls.Add(Type:=msoControlButton, Before:=1)
.OnAction = "MyPaste"
.FaceId = 22
.Caption = "Вставить значение"
End With
End Sub
Private Sub MyPaste()
On Error Resume Next
Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone
End Sub
во вложении файл с кодом
Что-то у меня все равно вставляется…
я копирую данные из другого ексел файла, и вставляю в пример из вложения… и все равно вставляется, даже с заливкой и с линиями….
не понятно((
А макросы включили?
В меню ПКМ «Вставить значение» появилось?
сделал все как описано…
а что за меню ПКМ? я делал написано:
Цитироватьзатем, ПКМ по VBAProject вызываем меню и добавляем(insert) новый модуль
в Вновь созданный модуль вставьте следующий код
и туда вставлял код
ПКМ — Правая Кнопка Мышки
Если Вы запускаете файл и Разрешаете запуск макросов, то в меню ПКМ на ячейке(когда выделена одна/группа ячеейк, а не строка или столбец) должен появиться новый пункт «Вставить значение», если такового не появилось, значит макросы отключены. Возможно, Вам надо сменить уровень безопасности Excel на менее «жесткий» (Сервис/Параметры/Безопасность/Безопасность макросов) Рекомендую «Среднюю» поставить.
все, я понял…. макрос работает….
только вот никакого запрета copy-paste тут нет. Ведь необходимо чтобы вообще никак нельзя было вставить скопированное…
вот в чем вопрос…)
Что Вам мешает?
Включите воображение
Private Sub MyPaste()
msgbox("Здесь нельзя вставить скопированное :)")
End Sub
Если через Ctrl +V или shift +insert, то вставку блокирует… но вот если вставлять через Правка — Вставить, то все равно вставляется. Можно ли как то и это заблокировать?
Если для Вас так важно, что бы изменения не вносились в лист, то не проще ли воспользоваться стандартными средствами (Защитить Лист)
Во вложении файл, который кроме клавишь отключает Вставку изо всех контекстных меню.
Это максимум, что я могу для Вас сделать.
спасибо!! все отлично работает))
boa
у меня опять проблема…запускал вам пример дома на 2007 excel’e, все работало… а вот на работе на 2003, почему то через Правка-Вставить, все равно вставляется… хотя в меню ПКМ — Вставить, блокируется…
непонятно((
Странно, в 2007-м тоже должно вставляться из меню панели
я не знаю как отключить эту вставку
- Профессиональные приемы работы в Microsoft Excel
-
►
Обмен опытом -
►
Microsoft Excel -
►
запрет copy-paste
Настройка проверки данных
Вы захотите использовать функцию проверки данных в Excel, чтобы ограничить ячейки определенным текстом. В вашем случае: «Test1», «Test2» и «Test3»
- Выберите ячейки, которые должны принимать только значения «Test1», «Test2» и «Test3»
-
На вкладке Данные в группе Инструменты данных, нажмите на кнопку проверки данных.
-
В раскрывающемся списке Разрешить: выберите Список
-
В поле Источник: введите Test1, Test2, Test3
-
Нажмите кнопку ОК, чтобы применить изменения.
На этом этапе каждая ячейка, выбранная на шаге 1, будет иметь раскрывающийся список, связанный с ней. Пользователи электронной таблицы только будет в состоянии войти Test1, test2 или TEST3. Если они попытаются ввести что-то еще, они получат следующее сообщение об ошибке:
При желании вы можете настроить текст сообщения об ошибке, щелкнув вкладку « Предупреждение об ошибке » в шаге 4 сверху.
Запретить копирование / вставку данных проверенных ячеек
Это будет прекрасно работать, за исключением случая, когда кто-то вставляет содержимое поверх ячеек. Единственный способ предотвратить это — написать макрос, который обнаруживает обновления для ячеек, определяет, включена ли проверка данных в ячейках, и затем запрещает вставку, если это правда.
- Выберите все ячейки, которые имеют проверку данных и назовите их DataValidationRange. Вы можете назвать диапазоны ячеек, введя имя слева от строки формул, где расположен адрес ячейки.
- В модуле кода для рабочего листа (например, Sheet1) добавьте следующий код:
Private Sub Worksheet_Change(ByVal Target As Range) 'Does the validation range still have validation? If HasValidation(Range("DataValidationRange")) Then Exit Sub Else Application.Undo MsgBox "Error: You cannot paste data into these cells." & _ "Please use the drop-down to enter data instead.", vbCritical End If End Sub Private Function HasValidation(r) As Boolean 'Returns True if every cell in Range r uses Data Validation On Error Resume Next x = r.Validation.Type If Err.Number = 0 Then HasValidation = True Else HasValidation = False End Function
К сожалению, VBA — единственный способ не допустить того, чтобы кто-то вставил над ячейками. Это было проблемой с проверкой данных в Excel с самого начала. Надеюсь, это поможет в любом случае.
Для ячейки с раскрывающимся списком проверки данных при копировании содержимого из другой ячейки и вставке в нее раскрывающийся список исчезнет и будет заменен новым вставляемым содержимым. В некоторых случаях вы хотите предотвратить копирование и вставку другого содержимого в ячейку с помощью раскрывающегося списка, что бы вы сделали, чтобы с этим справиться? В этой статье вы познакомитесь с методом VBA для решения этой проблемы.
Запретить копирование и вставку ячейки с раскрывающимся списком в Excel
Запретить копирование и вставку ячейки с раскрывающимся списком в Excel
1. Откройте рабочий лист с ячейкой раскрывающегося списка, которую вы хотите запретить копировать и вставлять.
2. Нажмите другой + F11 клавиши одновременно, чтобы открыть Приложения Microsoft Visual Basic окно.
3. в Приложения Microsoft Visual Basic окна, дважды щелкните имя текущего рабочего листа на левой панели, затем скопируйте и вставьте приведенный ниже код VBA в редактор кода. Смотрите скриншот:
Код VBA: запретить копирование и вставку ячейки с раскрывающимся списком
Private Sub Worksheet_Change(ByVal Target As Range)
'Updated by Extendoffice 20200903
Dim xValue As String
Dim xCheck1 As String
Dim xCheck2 As String
Dim xRg As Range
Dim xArrCheck1() As String
Dim xArrCheck2() As String
Dim xArrValue()
Dim xCount, xJ As Integer
Dim xBol As Boolean
' If Target.Count > 1 Then
' Exit Sub
' End If
xCount = Target.Count
ReDim xArrCheck1(1 To xCount)
ReDim xArrCheck2(1 To xCount)
ReDim xArrValue(1 To xCount)
Application.EnableEvents = False
On Error Resume Next
xJ = 1
For Each xRg In Target
xArrValue(xJ) = xRg.Value
xArrCheck1(xJ) = xRg.Validation.InCellDropdown
xJ = xJ + 1
Next
Application.Undo
xJ = 1
For Each xRg In Target
xArrCheck2(xJ) = xRg.Validation.InCellDropdown
xJ = xJ + 1
Next
xBol = False
For xJ = 1 To xCount
If xArrCheck2(xJ) <> xArrCheck1(xJ) Then
xBol = True
Exit For
End If
Next
If xBol Then
MsgBox "The selected cells containg data validation drop-down lists, no pasting allowed."
Else
xJ = 1
For Each xRg In Target
xRg.Value = xArrValue(xJ)
xJ = xJ + 1
Next
End If
Application.EnableEvents = True
End Sub
4. Нажмите другой + Q ключи для выхода из Приложения Microsoft Visual Basic окно.
5. Когда вы вставляете содержимое в ячейку с раскрывающимся списком, появляется диалоговое окно, напоминающее вам, что вставка запрещена. Смотрите скриншот:
Внимание: Этот VBA просто работает при вставке одной ячейки. Если вы скопируете и вставите несколько ячеек, это не сработает.
Статьи по теме:
Как создать раскрывающийся список с несколькими флажками в Excel?
Многие пользователи Excel, как правило, создают раскрывающийся список с несколькими флажками, чтобы выбирать несколько элементов из списка за раз. На самом деле вы не можете создать список с несколькими флажками с проверкой данных. В этом руководстве мы покажем вам два метода создания раскрывающегося списка с несколькими флажками в Excel. В этом руководстве представлен метод решения проблемы.
Создать раскрывающийся список из другой книги в Excel
Создать раскрывающийся список проверки данных среди листов в книге довольно просто. Но если данные списка, необходимые для проверки данных, находятся в другой книге, что вы будете делать? В этом руководстве вы узнаете, как подробно создать раскрывающийся список из другой книги в Excel.
Создайте раскрывающийся список с возможностью поиска в Excel
Для раскрывающегося списка с многочисленными значениями найти подходящий — непростая задача. Ранее мы ввели метод автоматического заполнения раскрывающегося списка при вводе первой буквы в раскрывающемся списке. Помимо функции автозаполнения, вы также можете сделать раскрывающийся список доступным для поиска для повышения эффективности работы при поиске правильных значений в раскрывающемся списке. Чтобы сделать раскрывающийся список доступным для поиска, попробуйте метод, описанный в этом руководстве.
Автоматическое заполнение других ячеек при выборе значений в раскрывающемся списке Excel
Допустим, вы создали раскрывающийся список на основе значений в диапазоне ячеек B8: B14. При выборе любого значения в раскрывающемся списке необходимо, чтобы соответствующие значения в диапазоне ячеек C8: C14 автоматически заполнялись в выбранной ячейке. Для решения проблемы методы, описанные в этом руководстве, окажут вам услугу.
Дополнительные руководства для раскрывающегося списка …
Лучшие инструменты для работы в офисе
Kutools for Excel Решит большинство ваших проблем и повысит вашу производительность на 80%
- Снова использовать: Быстро вставить сложные формулы, диаграммы и все, что вы использовали раньше; Зашифровать ячейки с паролем; Создать список рассылки и отправлять электронные письма …
- Бар Супер Формулы (легко редактировать несколько строк текста и формул); Макет для чтения (легко читать и редактировать большое количество ячеек); Вставить в отфильтрованный диапазон…
- Объединить ячейки / строки / столбцы без потери данных; Разделить содержимое ячеек; Объединить повторяющиеся строки / столбцы… Предотвращение дублирования ячеек; Сравнить диапазоны…
- Выберите Дубликат или Уникальный Ряды; Выбрать пустые строки (все ячейки пустые); Супер находка и нечеткая находка во многих рабочих тетрадях; Случайный выбор …
- Точная копия Несколько ячеек без изменения ссылки на формулу; Автоматическое создание ссылок на несколько листов; Вставить пули, Флажки и многое другое …
- Извлечь текст, Добавить текст, Удалить по позиции, Удалить пробел; Создание и печать промежуточных итогов по страницам; Преобразование содержимого ячеек в комментарии…
- Суперфильтр (сохранять и применять схемы фильтров к другим листам); Расширенная сортировка по месяцам / неделям / дням, периодичности и др .; Специальный фильтр жирным, курсивом …
- Комбинируйте книги и рабочие листы; Объединить таблицы на основе ключевых столбцов; Разделить данные на несколько листов; Пакетное преобразование xls, xlsx и PDF…
- Более 300 мощных функций. Поддерживает Office/Excel 2007-2021 и 365. Поддерживает все языки. Простое развертывание на вашем предприятии или в организации. Полнофункциональная 30-дневная бесплатная пробная версия. 60-дневная гарантия возврата денег.
Вкладка Office: интерфейс с вкладками в Office и упрощение работы
- Включение редактирования и чтения с вкладками в Word, Excel, PowerPoint, Издатель, доступ, Visio и проект.
- Открывайте и создавайте несколько документов на новых вкладках одного окна, а не в новых окнах.
- Повышает вашу продуктивность на 50% и сокращает количество щелчков мышью на сотни каждый день!
Комментарии (12)
Оценок пока нет. Оцените первым!