Страницы: 1
RSS
Ограничения по вводу данных в ячейки
 
Помогите создать код ВБА по ограничению ввода данных:  
- в ячейку (группу ячеек) разрешено вводить только "ТЕКСТ" и "ПРОБЕЛ";  
- в ячейку (группу ячеек) разрешено вводить только "ЧИСЛА" и "DELETE";  
- в ячейку (группу ячеек) разрешено вводить только "ДАТЫ" и "ПРОБЕЛ".  
СПАСИБО!
 
Следующий код, расположенный в модули требуемого листа допустит ввод текста в столбец "A", ввод чисел в столбец "B" и ввод даты (и пробела) в столбец "C".  
Private Sub Worksheet_Change(ByVal Target As Range)  
 
   If Target <> "" Then  
       Select Case Target.Column  
           Case 1: If Application.IsText(Target) Then Exit Sub  
           Case 2: If IsNumeric(Target) Then Exit Sub  
           Case 3: If IsDate(Target) Or Target = " " Then Exit Sub  
       End Select  
       Target.Select: Target.ClearContents  
       MsgBox "Недопустимо"  
   End If  
     
 
End Sub
Чем шире угол зрения, тем он тупее.
 
Код не увидел?!  
Сам же изначально ошибся в постановке задачи.  
Помогите создать код ВБА по ограничению ввода данных:  
- в ячейку (группу ячеек) разрешено вводить только "ТЕКСТ" ИЛИ "ПРОБЕЛ";  
- в ячейку (группу ячеек) разрешено вводить только "ЧИСЛА" ИЛИ "DELETE";  
- в ячейку (группу ячеек) разрешено вводить только "ДАТЫ" ИЛИ "ПРОБЕЛ".  
СПАСИБО!
 
Я привел код в качестве примера. Подставьте требуемые диапазоны проверки и требуемые условия.  
 
P.S. А что значит разрешить вводить "DELETE"?
Чем шире угол зрения, тем он тупее.
 
Но текст может начинаться и с ЦИФРЫ.  
Разрешить вводить "DELETE" означает, что данная ячейка (диапазон ячеек) может быть очищена (удалено значение) ТОЛЬКО клавишей "DELETE", а для чисел и даты -  
ТОЛЬКО клавишей ПРОБЕЛ
 
Если текст начинается с цифры - он все равно текст. Текст, в принципе, может состоять из одних цифр.    
Вам нужно проверять каждый введенный символ, или значение ячейки целиком?  
Пока ввод не закончен, никто не скажет что в ячейке.  
А проверять можно все, что угодно. Например, контролировать коды всех введенных символов, или использовать шаблоны (оператор Like). Все зависит от конкретной задачи.  
 
Поставьте вопрос корректнее - получите нужный Вам ответ.
Чем шире угол зрения, тем он тупее.
 
Ну как ещё корректнее ???  
 
- в ячейке (группе ячеек) должен быть только ТЕКСТ и этот ТЕКСТ можно УДАЛИТЬ только клавишей ПРОБЕЛ;  
- в ячейке (группе ячеек) должно быть только ЧИСЛО и это ЧИСЛО можно УДАЛИТЬ (ОБНУЛИТЬ) только клавишей DELETE;  
- в ячейке (группе ячеек) должна быть только ДАТА и эту ДАТУ можно УДАЛИТЬ только клавишей ПРОБЕЛ.  
 
Такие требования для загрузки таблицы в SAP R/3
 
Пардон, вот код:  
{/post}{/quote}  
SAS888! Вы позволите мне добавить одну строчку в Ваш код:  
Private Sub Worksheet_Change(ByVal Target As Range)  
   If Target <> "" Then  
       Select Case Target.Column  
           Case 1: If Application.IsText(Target) Then Exit Sub  
           Case 2: If IsNumeric(Target) Then Exit Sub  
           Case 3: If IsDate(Target) Or Target = " " Then Exit Sub  
       End Select  
       Target.Select: Target.ClearContents  
       Target.Select: Target.NumberFormat = "General"  
       MsgBox "Недопустимо"  
   End If  
   End Sub  
Иначе при ошибочном вводе в даты в ячейку "к тому не предназначенную", например, в числовую, формат даты оставался.  
С уважением, Александр.
 
Здравствуйте, а будьте добры, подскажите. Можно ли дописать код так, что бы в столбце с цифрами можно было вводить "-"; " "; "."; "," в любой последовательности
Страницы: 1
Читают тему
Наверх