Форум программистов
 
Контакты: о проблемах с регистрацией, почтой и по другим вопросам пишите сюда - alarforum@yandex.ru, проверяйте папку спам! Обязательно пройдите активизацию e-mail.

Вернуться   Форум программистов > Технологии > Общие вопросы по программированию, компьютерным наукам
Регистрация

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

Ответ
 
Опции темы
Старый 19.01.2018, 01:21   #1
Марина11
Пользователь
 
Регистрация: 26.09.2017
Сообщений: 11
Репутация: 10
По умолчанию Запретить ввод формулы в диапазон ячеек

Здравствуйте! Подскажите, как решить такой вопрос: есть количество клиентов, которые вносяться в определенную графу отчёта и понятно, что это целое число. Но некоторые сотрудники умудряються вместо значения, например, цифры 89 внести это в виде формулы =60+9+10. Необходимо запретить вносить таким образом данные, но незнаю как. Пришла к выводу, что здесь, скорее всего нужен макрос VBA, но пока не нашла ничего из кодов, что могло бы помочь. Подскажите, пожалуйста, кто что сможет. Уточнее - нужно для версии Excel 2003/
Заранее благодарю!
Марина11 вне форума   Ответить с цитированием
Старый 19.01.2018, 08:04   #2
Aleksandr H.
2 the Nation Glory
Профессионал
 
Аватар для Aleksandr H.
 
Регистрация: 27.05.2014
Адрес: Wild West Ukraine
Сообщений: 2,435
Репутация: 885

skype: aleksandr.gryb
По умолчанию

A1:D4 только числа, иначе пусто
Код:

Private Sub Worksheet_Change(ByVal Target As Range)
Dim cell As Range
    Application.EnableEvents = False
    For Each cell In Target
        If Not Application.Intersect(cell, Range("A1:D4")) Is Nothing Then
           If Not IsNumeric(cell.Value) Then
              cell.Value = vbNullString
           End If
        End If
    Next cell
    Application.EnableEvents = True
End Sub

__________________
Mailto: media.project@ukr.net
Aleksandr H. вне форума   Ответить с цитированием
Старый 19.01.2018, 14:17   #3
Марина11
Пользователь
 
Регистрация: 26.09.2017
Сообщений: 11
Репутация: 10
По умолчанию

почему-то макрос не срабатывает - формула всё равно вводиться.
Вложения
Тип файла: xls Книга1.xls (18.5 Кб, 3 просмотров)
Марина11 вне форума   Ответить с цитированием
Старый 19.01.2018, 14:59   #4
Serge_Bliznykov
МегаМодератор
СуперМодератор
 
Регистрация: 09.01.2008
Сообщений: 24,479
Репутация: 5308
По умолчанию

Цитата:
Сообщение от Марина11 Посмотреть сообщение
формула всё равно вводится.
попробуйте такой макрос:
Код:

Private Sub Worksheet_Change(ByVal Target As Range)
Dim cell As Range
    Application.EnableEvents = False
    For Each cell In Target
        If Not Application.Intersect(cell, Range("A1:D4")) Is Nothing Then
           If Not IsNumeric(cell.Value) Then
              cell.Value = vbNullString
           Else
              cell.Value = 1 * cell.Value
           End If
        End If
    Next cell
    Application.EnableEvents = True
End Sub

Serge_Bliznykov вне форума   Ответить с цитированием
Старый 19.01.2018, 15:02   #5
Aleksandr H.
2 the Nation Glory
Профессионал
 
Аватар для Aleksandr H.
 
Регистрация: 27.05.2014
Адрес: Wild West Ukraine
Сообщений: 2,435
Репутация: 885

skype: aleksandr.gryb
По умолчанию

Код:

Private Sub Worksheet_Change(ByVal Target As Range)
Dim cell As Range
    Application.EnableEvents = False
    For Each cell In Target
        If Not Application.Intersect(cell, Range("A1:D4")) Is Nothing Then
           If Not IsNumeric(cell.Value) Or cell.HasFormula Then
              cell.Value = vbNullString
           End If
        End If
    Next cell
    Application.EnableEvents = True
End Sub

__________________
Mailto: media.project@ukr.net
Aleksandr H. вне форума   Ответить с цитированием
Старый 19.01.2018, 16:18   #6
Serge_Bliznykov
МегаМодератор
СуперМодератор
 
Регистрация: 09.01.2008
Сообщений: 24,479
Репутация: 5308
По умолчанию

Цитата:
Сообщение от Aleksandr H. Посмотреть сообщение
Код:

if Not IsNumeric(cell.Value) Or cell.HasFormula Then

на мой взгляд у меня (пост #4) более дружелюбное к пользователю решение - если он введёт формулу, то в ячейку вставится результат вычислений, а не пустая строка.
Serge_Bliznykov вне форума   Ответить с цитированием
Старый 19.01.2018, 16:28   #7
Aleksandr H.
2 the Nation Glory
Профессионал
 
Аватар для Aleksandr H.
 
Регистрация: 27.05.2014
Адрес: Wild West Ukraine
Сообщений: 2,435
Репутация: 885

skype: aleksandr.gryb
По умолчанию

Юзерфрендли не заказывали.
Раз контора такая жесткая, что не позволяет формулами пользоваться, нечего баловать юзверя с подстановками результатов, пускай на арифмометре считает, а в ЕТ вносит суто число.
__________________
Mailto: media.project@ukr.net
Aleksandr H. вне форума   Ответить с цитированием
Ответ

Опции темы

Ваши права в разделе
Вы не можете создавать новые темы
Вы не можете отвечать в темах
Вы не можете прикреплять вложения
Вы не можете редактировать свои сообщения

BB коды Вкл.
Смайлы Вкл.
[IMG] код Вкл.
HTML код Выкл.

Быстрый переход

Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Распространение формулы на диапазон листов guitar2003 Microsoft Office Excel 4 02.06.2016 15:39
диапазон ячеек marina krasa Microsoft Office Excel 1 03.05.2013 19:47
диапазон ячеек в excel studentki Microsoft Office Excel 5 12.07.2012 16:00
Запретить ввод более одной десятичной точки в форму ввода("некорректный ввод") adller_one PHP 1 14.01.2011 00:59
Диапазон ячеек равен 0 segail Microsoft Office Excel 16 14.02.2010 23:14


05:35.


Powered by vBulletin® Version 3.8.8 Beta 2
Copyright ©2000 - 2018, Jelsoft Enterprises Ltd.

RusProfile.ru


Справочник российских юридических лиц и организаций.
Проекты отопления, пеллетные котлы, бойлеры, радиаторы
интернет магазин respective.ru