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

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

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

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

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

Ответ
 
Опции темы Поиск в этой теме
Старый 20.09.2010, 17:46   #1
alvazor
Форумчанин
 
Регистрация: 02.07.2009
Сообщений: 122
По умолчанию ошибка про вводе текста через TextBox в ячейку листа

Здравствуйте ВСЕМ!
При вводе текста через TextBox формы в ячейки листа, имеющие формат ОБЩИЙ, если случайно первым ввести в тектбокс символ знака равенства, возникает ошибка 1004
Ошибки нет, если формат ячейки листа - текстовый (см. вложение), но ужасно неудобно заранее столбить текстовые форматы на листе только для этой цели.
Можно, конечно, принудительно прикреплять символ, например, кавычек, перед любым вводимым текстом, а при последующем выводе его в форму - игнорировать, но тоже как-то криво...
Может кто подскажет что-нить путевое?
С уважением
Вложения
Тип файла: rar InputTxt.rar (13.1 Кб, 12 просмотров)
alvazor вне форума Ответить с цитированием
Старый 20.09.2010, 20:22   #2
doober
Старожил
 
Аватар для doober
 
Регистрация: 02.05.2009
Сообщений: 3,907
По умолчанию

Это спасает?
Код:
Private Sub txtInput_KeyPress(ByVal KeyAscii As MSForms.ReturnInteger)
If KeyAscii = 61 Then
txtInput.Enabled = False
txtInput.Enabled = True
End If

End Sub
Анализ,обработка данных Недорого
doober вне форума Ответить с цитированием
Старый 21.09.2010, 09:45   #3
alvazor
Форумчанин
 
Регистрация: 02.07.2009
Сообщений: 122
По умолчанию

Спасибо за идею, doober!
Мне нужен был запрет только на ввод знака = только как первого символа текста. Но если даже ввести такое условие, то в Вашем варианте запрет происходит, но фокус из окна ввода теряется (его не вернуть, т.к. иначе символ все же введется)
Применил следующее:
Private Sub txtInput_Change()
If Len(txtInput.Text) = 1 Then
If txtInput.Text = Chr(61) Then txtInput = ""
End If
End Sub

Теперь все ОК!
Доработка - во вложении
Вложения
Тип файла: rar InputTxt.rar (13.1 Кб, 9 просмотров)
alvazor вне форума Ответить с цитированием
Старый 21.09.2010, 12:36   #4
alvazor
Форумчанин
 
Регистрация: 02.07.2009
Сообщений: 122
По умолчанию

Для логического завершения - во вложении дополнительно введена опция "пропустить ошибку" при вводе текстом числа, даты с двумя цифрами года или некорректной формулы.
В принципе, эти ошибки не мешают, но на листе зеленые уголки ячеек мозолят глаза....
Вложения
Тип файла: rar InputTxt2.rar (14.6 Кб, 15 просмотров)
alvazor вне форума Ответить с цитированием
Ответ


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



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Вывод сообщения при вводе цыфры в ячейку vasyater Microsoft Office Excel 2 23.06.2010 16:32
Создание листа с одновременным созданием формулы на ячейку нового листа ShamanK Microsoft Office Excel 4 02.05.2010 22:00
Сообщение пользователю о вводе данных в ячейку robbe Microsoft Office Excel 2 24.03.2010 05:03
Картинку в ячейку листа GWolf Microsoft Office Excel 3 16.04.2009 17:51
При вводе значения в ячейку нужно изменить ее размер skobarka Microsoft Office Excel 2 26.09.2008 16:35