Домашняя страница Undo Do New Save Карта сайта Обратная связь Поиск по форуму
МИР MS EXCEL - Гость.xls

Вход

Регистрация

Напомнить пароль

 

= Мир MS Excel/Распознование ввода в textbox только даты или даты и времени - Мир MS Excel

Регистрация · Логин: · Пароль: · · Забыли пароль?
Страница 1 из 11
Модератор форума: _Boroda_, Pelena, Manyasha, SLAVICK 
Мир MS Excel » Вопросы и решения » Вопросы по VBA » Распознование ввода в textbox только даты или даты и времени (Макросы/Sub)
Распознование ввода в textbox только даты или даты и времени
lFJl Дата: Четверг, 07.07.2016, 11:31 | Сообщение № 1
Группа: Проверенные
Ранг: Форумчанин
Сообщений: 188
Репутация: 3 ±
Замечаний: 0% ±

Excel 2007
Доброго дня!
Ввожу в textbox данные или даты или даты+ время.
определяю это кодом: [vba]
Код
textbox  = Format(Replace(textbox.Value, ",", "."), "dd.mm.yyyy hh:mm")
[/vba]
Подскажите, как определить, если допустим я ввожу только дату, то используем: [vba]
Код
textbox  = Format(Replace(textbox.Value, ",", "."), "dd.mm.yyyy")
[/vba]
А если дату и время, тогда: [vba]
Код
textbox  = Format(Replace(textbox.Value, ",", "."), "dd.mm.yyyy hh:mm")
[/vba]

И так же вывод этой информации в ячейку
Сейчас я это делаю таким образом: [vba]
Код
If textbox.Text <> "" Then Cells(ActiveCell.Row, 23).Value = CDate(textbox.Text)
[/vba]
Так вывод информации только даты, а если данные введены со временем, тогда что использовать?


Сообщение отредактировал lFJl - Четверг, 07.07.2016, 11:47
 
Ответить
СообщениеДоброго дня!
Ввожу в textbox данные или даты или даты+ время.
определяю это кодом: [vba]
Код
textbox  = Format(Replace(textbox.Value, ",", "."), "dd.mm.yyyy hh:mm")
[/vba]
Подскажите, как определить, если допустим я ввожу только дату, то используем: [vba]
Код
textbox  = Format(Replace(textbox.Value, ",", "."), "dd.mm.yyyy")
[/vba]
А если дату и время, тогда: [vba]
Код
textbox  = Format(Replace(textbox.Value, ",", "."), "dd.mm.yyyy hh:mm")
[/vba]

И так же вывод этой информации в ячейку
Сейчас я это делаю таким образом: [vba]
Код
If textbox.Text <> "" Then Cells(ActiveCell.Row, 23).Value = CDate(textbox.Text)
[/vba]
Так вывод информации только даты, а если данные введены со временем, тогда что использовать?

Автор - lFJl
Дата добавления - 07.07.2016 в 11:31
Manyasha Дата: Четверг, 07.07.2016, 13:32 | Сообщение № 2
Группа: Модераторы
Ранг: Старожил
Сообщений: 1589
Репутация: 669 ±
Замечаний: 0% ±

Excel 2007, 2010
lFJl, можно так попробовать:
[vba]
Код
    'Если не дата
    If Not IsDate(TextBox1.Value) Then
        Cells(1, 1) = "text"
    'Дата+время
    ElseIf CDbl(CDate(TextBox1.Value)) - Int(CDbl(CDate(TextBox1.Value))) > 0 Then
        TextBox1 = Format(Replace(TextBox1.Value, ",", "."), "dd.mm.yyyy hh:mm")
        With Cells(1, 1)
            .Value = CDate(TextBox1.Value)
            .NumberFormat = "dd.mm.yyyy hh:mm"
        End With
    'Дата
    Else
        TextBox1 = Format(Replace(TextBox1.Value, ",", "."), "dd.mm.yyyy")
        With Cells(1, 1)
            .Value = CDate(TextBox1.Value)
            .NumberFormat = "dd.mm.yyyy"
        End With
    End If
[/vba]
К сообщению приложен файл: primer.xlsm(17Kb)


marinamorozova_box@mail.ru
ЯД: 410013299366744 WM: R193491431804
 
Ответить
СообщениеlFJl, можно так попробовать:
[vba]
Код
    'Если не дата
    If Not IsDate(TextBox1.Value) Then
        Cells(1, 1) = "text"
    'Дата+время
    ElseIf CDbl(CDate(TextBox1.Value)) - Int(CDbl(CDate(TextBox1.Value))) > 0 Then
        TextBox1 = Format(Replace(TextBox1.Value, ",", "."), "dd.mm.yyyy hh:mm")
        With Cells(1, 1)
            .Value = CDate(TextBox1.Value)
            .NumberFormat = "dd.mm.yyyy hh:mm"
        End With
    'Дата
    Else
        TextBox1 = Format(Replace(TextBox1.Value, ",", "."), "dd.mm.yyyy")
        With Cells(1, 1)
            .Value = CDate(TextBox1.Value)
            .NumberFormat = "dd.mm.yyyy"
        End With
    End If
[/vba]

Автор - Manyasha
Дата добавления - 07.07.2016 в 13:32
lFJl Дата: Четверг, 07.07.2016, 16:23 | Сообщение № 3
Группа: Проверенные
Ранг: Форумчанин
Сообщений: 188
Репутация: 3 ±
Замечаний: 0% ±

Excel 2007
Manyasha, Спасибо большее, то что нужно! :)
 
Ответить
СообщениеManyasha, Спасибо большее, то что нужно! :)

Автор - lFJl
Дата добавления - 07.07.2016 в 16:23
Мир MS Excel » Вопросы и решения » Вопросы по VBA » Распознование ввода в textbox только даты или даты и времени (Макросы/Sub)
Страница 1 из 11
Поиск:

Яндекс цитирования
© 2010-2016 · Дизайн: MichaelCH · Хостинг от uCoz · При использовании материалов сайта, ссылка на www.excelworld.ru обязательна!