Страницы: 1
RSS
Ввод в textbox даты без точек
 
Всем добрый день.

Бьюсь над решением задачи битый час. Помогите пожалуйста.

Есть форма, в форме два поля textbox для заполнения.
В первое поле "№ реестра" - ввожу номер реестра, во второй "Дата передачи реестра" - дату.

Как сделать чтобы при вводе даты в поле "Дата передачи реестра" - пользователь мог вводить простую последовательность чисел, а точки - разделители даты, проставлялись автоматически.

Например, если мне нужно в textbox ввести дату 30 марта 2013, то введя в textbox 300313, я получал бы дату 30.03.13

Решение проблемы при помощи установки сторонних календарей и библиотек не предлагать, нужно чтобы пользователь сам вводил даты вручную в данное поле, но чтобы весь процесс был более быстрым, точки вводить не требовалось.
 
http://www.planetaexcel.ru/techniques/6/51/
Я сам - дурнее всякого примера! ...
 
Цитата
pinguindell пишет:
Решение проблемы при помощи установки сторонних календарей и библиотек не предлагать, нужно чтобы пользователь сам вводил даты вручную в данное поле
Зря - ввод при помощи календаря позволит избежать ошибок при ручном вводе, которые будут НЕИЗБЕЖНО.
 
Серёжа, Юра, а если так? Спасибо огромное нашему форуму, нашим уважаемым ЗНАТОКАМ. Этот ввод даты мне в своё время очень здорово помог. Дата вволится без точек
 
А разве это дата?
 
Именно дата. Но она появляется при переходе к следующему текстбоксу. Небольшая добавка. Вводишь дату
любую, к примеру 30032013 Нажимаешь TAB или стрелку (вверх-вниз) и появляется дата.
 
Очень неудобно - сначала ведь заполняется верхний ТекстБокс, а потом нижний. И чтобы увидеть изменение, нужно вернуться в первый... Я бы создавал дату из введённого текста при нажатии на кнопку. Но у Вас в ячейке ведь остался текст )) (первый файл - второй не смотрел)
 
Всё удобно! Можно ENTER,ом. Вводи номер, вводи дату.
 
Ну а в ячейке что имеем?
 
Попробуйте в свои текстбоксы ввести буквенные значения.
 
В ячейке должен быть формат даты.
Насчёт буквенных значений: в первый текстбокс они прекрасно вводятся и переносятся.
magrifa. Только я не пойму, а зачем буквенные значения во втором текстбоксе?Или у меня что-то с головой, или по Вашему надо вволить: Тридцатое марта две тысячи двенадцатого года???
 
SERZH,, то, что в ячейке дата - результат неявного преобразования текста в дату - посмотрите на выравнивание. Лучше сделать это явно, как показано в примере по ссылке. У Вас же просто переносится текст (а в ТектБоксе ВСЕГДА текст) в ячейку. Без какого-либо преобразования.
По поводу нечисловых символов - если в верхнем ТекстБоксе это ещё допустимо - может ведь быть такой номер 123а,- то для ТекстБокса, куда вводится дата, следовало бы добавить проверку на ввод ТОЛЬКО чисел.
 
Цитата
SERZH пишет:
В ячейке должен быть формат даты.
Кто-нибудь может нечаянно этот формат поменять )))
 
И не помешал бы контроль за количеством введённых символов: попробуйте ввести 3032013 (пропустили нолик при вводе) - получим в ячейке число.
 
Это вы сделали для себя, потому и знаете.А я вот не знаю.
Посмотрите как в первый текстбокс вводят даты, хоть с точками или без точек,
но он вам разрешит вводить только дату
 
Юр, если пользоваться ссылкой (а она очень хорошая), то тогда и вопрос с формой должен отпасть сам собой. В этом случае юзерформа просто не нужна.
А насчёт "нечаянно этот формат поменять", Я так понимаю, что человеку в ячейке нужна дата, и не важно какой формат: текст, дата или число. Всё равно в ячейке будет, к примеру, 30.03.2013
 
Не - просто нужно так же обработать ТекстБокс, как в примере по ссылке обрабатывается ячейка - вот я о чём ))
А по поводу формата в ячейке - не совсем так: если там будет текст, а не дата, то операции с датой могут быть невозможны.
 
Юр, просто я уже год пользуюсь этим вводом даты. И календарь не нужен, и объём файла гораздо меньше и с формулами прекрасно работает.
 
Да я не против ))) Но лучше обезопаситься.
 
Юрий М, SERZH, magrifa, KuklP, - большое спасибо за пояснения то что нужно.  :)
 
Добрый день.
Никак не могу  настроить форму ввода даты без точек.
Уже копировал код из файла представленного выше  (Date.xlsm)
Но выходит ошибка. Не пойму никак - что я делаю не так.
 
Цитата
Сергей Халиков написал: копировал код из файла
А саму ФОРМУ переносили/копировали? Или свою создавали? Покажите проблемный файл
Согласие есть продукт при полном непротивлении сторон
 
Свой создавал.
Странно фото ошибки и сам файл были в сообщении.
 
Потому, что в момент ввода, Me.ActiveControl это "MultiPage1"
Согласие есть продукт при полном непротивлении сторон
 
Я  прошу прощения. (я с VBA  на ВЫ).
Что нужно сделать, чтоб заработало?  
 
Цитата
Сергей Халиков написал: Что нужно сделать
Нужно все ПЕРЕделать. Но это, думаю, задача не для бесплатного раздела. Или отказаться от MultiPage
Согласие есть продукт при полном непротивлении сторон
 
Спасибо. Буду думать. Может Календарь вставлю.
Еще раз спасибо.  
 
Цитата
Sanja написал:
Или отказаться от MultiPage
Так и сделал - заработало.
Страницы: 1
Наверх