Visual Basic, .NET, ASP, VBScript
 

   
   
     

Форум - VBA

Страница: 1 |

 

  Вопрос: Проверка вводимых значений в ячейку Добавлено: 15.02.08 18:42  

Автор вопроса:  APS | ICQ: 234458121 
Есть задача. Необходимо чтобы в некоторые ячейки можно было вводить только определенные символы, например, только латиницу, цифры и дефис. Понятно, что можно задействовать команду Проверка из меню Данные, но вот как там прописать, что можно вводить только латиницу, цифры и дефис, я так и не смог разобраться.
Решить этот вопрос надо только с помощью функций Excel, т.к. макросы пользователь может отрубить...

Ответить

  Ответы Всего ответов: 9  

Номер ответа: 1
Автор ответа:
 LonerWanderer



Вопросов: 18
Ответов: 66
 Профиль | | #1 Добавлено: 18.02.08 09:40
ИМХО без макросов никак

Ответить

Номер ответа: 2
Автор ответа:
 Andrew_nik



Вопросов: 15
Ответов: 30
 Профиль | | #2 Добавлено: 19.02.08 14:50
Надо свораганить что-то вроде этого. В данном случае процедура позволяет вводить в Textbox только буквы.

Private Sub TextBox1_KeyPress(ByVal KeyAscii As MSForms.ReturnInteger)
Dim a As Integer
a = KeyAscii
If a < 97 Or a > 122 Then
'   MsgBox "Недопустимый символ!"
   KeyAscii = 0 ' отбрасывание символа
End If
End Sub

Ответить

Номер ответа: 3
Автор ответа:
 LonerWanderer



Вопросов: 18
Ответов: 66
 Профиль | | #3 Добавлено: 19.02.08 15:50
1. Фильтр на ввод символов необходимо ставить на ЯЧЕЙКУ, а не на текстбокс формы.
2. Данный код - макрос.

Ответить

Номер ответа: 4
Автор ответа:
 TolikT



Вопросов: 1
Ответов: 5
 Профиль | | #4 Добавлено: 20.02.08 09:52
Не знаю, как тут вставить файл с примером, поэтому ссылка на другой форум.
http://forum.developing.ru/showthread.php?t=13037

Метод, конечно, что называется "через задницу", но работает.
Однако всё-равно главный недостаток метода проверки никак не убрать. А именно вставка данных методом Копировать/Вставить.

Ответить

Номер ответа: 5
Автор ответа:
 night-roll



Вопросов: 36
Ответов: 326
 Профиль | | #5 Добавлено: 20.02.08 14:20
Данные/Проверка/Список и ручками...

a;b;c;d;e;1;2;3;4;-;+;

Ответить

Номер ответа: 6
Автор ответа:
 APS



ICQ: 234458121 

Вопросов: 38
Ответов: 107
 Профиль | | #6 Добавлено: 20.02.08 15:38
Данный способ был проверен в первую очередь и он не работает так, как надо. ; аналогична оператору ИЛИ.

Ответить

Номер ответа: 7
Автор ответа:
 LonerWanderer



Вопросов: 18
Ответов: 66
 Профиль | | #7 Добавлено: 20.02.08 15:49
Я так понимаю, что макросы пользователь может отключить. А доступ к машине (машинам) пользователей есть?
Можно написать макрос, но сохранить книгу как надстройку и подключить ее у каждого пользователя. Такой вариант не рассматривался? Обычно пользователи не лезут в надстройки.
Еще как вариант - подписать проект своей цифровой подписью и поставить потом галку "Доверять этому издателю". Книга будет загружаться без запроса о макросах. Правда, макросы все равно должны быть включены.
ИМХО с надстройкой самый правильный вариант.

Ответить

Номер ответа: 8
Автор ответа:
 APS



ICQ: 234458121 

Вопросов: 38
Ответов: 107
 Профиль | | #8 Добавлено: 20.02.08 16:23
http://vbnet.ru/online/showprofile.aspx?id=8063К сожалению, такие варинты не прокатят, т.к. доступа к машинам пользователей нет. Это файл, содержащий форму для заполнения клиентами компании. Проверять значение необходимо, т.к. клиенты частенько вместо латиницы пишут кириллицу, а у нас потом система не воспринимает эти поля и приходится искать и вручную править. Очень геморройно, т.к. поток файлов большой.

Ответить

Номер ответа: 9
Автор ответа:
 LonerWanderer



Вопросов: 18
Ответов: 66
 Профиль | | #9 Добавлено: 20.02.08 17:07
Еще вариант.
Писать 2 макроса:
1. Проверяет ввод "ненужных" символов
2. Заменяет русские буквы латинскими в определенных ячейках.
Если у пользователя включены макросы - хорошо. Он правильно заполнит.
Если нет - когда книга приходит к вам, то запускаете макрос замены. По крайней мере не придется искать похожие буквы руками.

Ответить

Страница: 1 |

Поиск по форуму



© Copyright 2002-2011 VBNet.RU | Пишите нам