Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > Microsoft Office и VBA программирование > Microsoft Office Excel
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 17.11.2016, 12:51   #1
ольгаг
Форумчанин
 
Регистрация: 22.02.2010
Сообщений: 325
По умолчанию Запрет вставки значений в ячейку из буфера обмена

Здравствуйте Уважаемые программисты!
Помогите пожалуйста возможно кодом сделать следующее:
на листе excel 2003 для ячейки A1 назначена проверка ввода только числовых значений (через данные - проверка - другой - =ечисло(A1)). Но проверка работает только при вводе значения в ячейку с клавиатуры, но если вставить из буфера обмена, то не работает.
Подскажите пожалуйста как можно запретить вставку в ячейку скопированного значения из буфера обмена?
Спасибо!
ольгаг вне форума Ответить с цитированием
Старый 17.11.2016, 13:08   #2
IgorGO
Новичок
СтарожилДжуниор
 
Аватар для IgorGO
 
Регистрация: 05.02.2008
Сообщений: 9,487
По умолчанию

полагаю, что ни как
Программисты - это люди, решающие проблемы, о существовании которых Вы не подозревали, методами, которых Вы не понимаете
IgorGO вне форума Ответить с цитированием
Старый 17.11.2016, 15:10   #3
ольгаг
Форумчанин
 
Регистрация: 22.02.2010
Сообщений: 325
По умолчанию

Нашла такой код:
в модуле листа:
Код:
Private Sub Worksheet_SelectionChange(ByVal Target As Range)
Dim cell As Range
Dim bIsNumeric As Boolean
bIsNumeric = True
For Each cell In Range("A1:A10")
    If IsNumeric(cell) = False Then
        bIsNumeric = False
        Exit For
    End If
Next cell
If bIsNumeric = False Then
    cell.ClearContents
    MsgBox "Можно вводить только числа"
End If
End Sub
Код работает если вставить в ячейку из буфера обмена не число и кликнуть по другой ячейке. Подскажите пожалуйста, можно этот код изменить так, чтобы он срабатывал сразу после вставки?
Спасибо!
ольгаг вне форума Ответить с цитированием
Старый 18.11.2016, 00:42   #4
Казанский
Старожил
 
Аватар для Казанский
 
Регистрация: 31.12.2010
Сообщений: 2,133
По умолчанию

Пробуйте, в случае ввода нечислового значения код вернет прежнее значение.
Код:
Private Sub Worksheet_Change(ByVal Target As Range)
  If Not Intersect(Target, Range("A1")) Is Nothing Then
    If VarType(Range("A1").Value2) <> vbDouble Then
      Application.EnableEvents = False
      Application.Undo
      Application.EnableEvents = True
      MsgBox "Можно вводить только числа"
    End If
  End If
End Sub
exceleved@yandex.ru Яндекс.Деньги: 410011500007619
Казанский вне форума Ответить с цитированием
Старый 18.11.2016, 08:30   #5
ольгаг
Форумчанин
 
Регистрация: 22.02.2010
Сообщений: 325
По умолчанию

Спасибо большое!
ольгаг вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Ошибка вставки буфера обмена Aleksandr H. Microsoft Office Excel 4 03.10.2016 11:25
Поиск-Find значений из Буфера Обмена. Nicko1622 Microsoft Office Word 2 17.10.2013 18:35
PasteLink - простой макрос на VBA для Excel для вставки в ячейку гипперссылки на файл в буфере обмена. wyfinger Microsoft Office Excel 4 22.05.2013 14:10
имитация вставки из буфера NIKOPAL Общие вопросы Delphi 2 14.05.2012 15:03
Вставка из буфера обмена volonc Microsoft Office Excel 12 17.07.2010 19:04