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

Вход

Регистрация

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

 

= Мир MS Excel/Изменение числа в дате с SpinButton - Мир MS Excel

Старая форма входа
  • Страница 1 из 1
  • 1
Модератор форума: китин, _Boroda_  
Мир MS Excel » Вопросы и решения » Вопросы по VBA » Изменение числа в дате с SpinButton (Макросы/Sub)
Изменение числа в дате с SpinButton
Паштет Дата: Суббота, 27.05.2017, 19:26 | Сообщение № 1
Группа: Проверенные
Ранг: Форумчанин
Сообщений: 155
Репутация: 7 ±
Замечаний: 0% ±

Excel 2010
Есть TextBox куда вноситься текущая дата. Как сделать так, чтобы можно было с помощью SpinButton регулировать числа в плюс/минус.

Из своих ковырялок пробовал следующее:
[vba]
Код
Private Sub SpinButton1_Change()
Dim Today, Newday As Date
Today = Me.TextBox001
Me.TextBox001 = Format(Today, "dd.mm.yyyy")
End Sub

Private Sub SpinButton1_SpinDown()
Dim Today, Newday As Date
Today = Me.TextBox001
NewDate = DateAdd("d", -1, Today)
Me.TextBox001 = Format(Newday, "dd.mm.yyyy")
      

End Sub

Private Sub SpinButton1_SpinUp()
Dim Today, Newday As Date
Today = Me.TextBox001
NewDate = DateAdd("d", 1, Today)
Me.TextBox001 = Format(Newday, "dd.mm.yyyy")

End Sub
[/vba]
Но даты просто улетали, то на 1899 год, то на 2000 и тд.

Попробовал вот такую штуку:
[vba]
Код
Private Sub SpinButton1_SpinDown(): dDate = DateSerial(Year(dDate), Month(dDate), Day(dDate) - 1): CommandButton5_Click: End Sub
Private Sub SpinButton1_SpinUp(): dDate = DateSerial(Year(dDate), Month(dDate), Day(dDate) + 1): CommandButton5_Click: End Sub
[/vba]
Но не могу понять, какую команду в конце активизировать.
Реализовать хочу в TextBox001 (дата поступления)
К сообщению приложен файл: 0549949.xlsm (52.0 Kb)


Сообщение отредактировал Паштет - Суббота, 27.05.2017, 19:28
 
Ответить
СообщениеЕсть TextBox куда вноситься текущая дата. Как сделать так, чтобы можно было с помощью SpinButton регулировать числа в плюс/минус.

Из своих ковырялок пробовал следующее:
[vba]
Код
Private Sub SpinButton1_Change()
Dim Today, Newday As Date
Today = Me.TextBox001
Me.TextBox001 = Format(Today, "dd.mm.yyyy")
End Sub

Private Sub SpinButton1_SpinDown()
Dim Today, Newday As Date
Today = Me.TextBox001
NewDate = DateAdd("d", -1, Today)
Me.TextBox001 = Format(Newday, "dd.mm.yyyy")
      

End Sub

Private Sub SpinButton1_SpinUp()
Dim Today, Newday As Date
Today = Me.TextBox001
NewDate = DateAdd("d", 1, Today)
Me.TextBox001 = Format(Newday, "dd.mm.yyyy")

End Sub
[/vba]
Но даты просто улетали, то на 1899 год, то на 2000 и тд.

Попробовал вот такую штуку:
[vba]
Код
Private Sub SpinButton1_SpinDown(): dDate = DateSerial(Year(dDate), Month(dDate), Day(dDate) - 1): CommandButton5_Click: End Sub
Private Sub SpinButton1_SpinUp(): dDate = DateSerial(Year(dDate), Month(dDate), Day(dDate) + 1): CommandButton5_Click: End Sub
[/vba]
Но не могу понять, какую команду в конце активизировать.
Реализовать хочу в TextBox001 (дата поступления)

Автор - Паштет
Дата добавления - 27.05.2017 в 19:26
Pelena Дата: Суббота, 27.05.2017, 19:50 | Сообщение № 2
Группа: Админы
Ранг: Местный житель
Сообщений: 19177
Репутация: 4417 ±
Замечаний: ±

Excel 365 & Mac Excel
Если правильно поняла, то надо что-то типа
[vba]
Код
Private Sub SpinButton1_SpinDown(): TextBox001 = Format(CDate(TextBox001) - 1, "DD.MM.YYYY"): End Sub
[/vba]


"Черт возьми, Холмс! Но как??!!"
Ю-money 41001765434816
 
Ответить
СообщениеЕсли правильно поняла, то надо что-то типа
[vba]
Код
Private Sub SpinButton1_SpinDown(): TextBox001 = Format(CDate(TextBox001) - 1, "DD.MM.YYYY"): End Sub
[/vba]

Автор - Pelena
Дата добавления - 27.05.2017 в 19:50
Паштет Дата: Суббота, 27.05.2017, 22:59 | Сообщение № 3
Группа: Проверенные
Ранг: Форумчанин
Сообщений: 155
Репутация: 7 ±
Замечаний: 0% ±

Excel 2010
Все верно. Спасибо
 
Ответить
СообщениеВсе верно. Спасибо

Автор - Паштет
Дата добавления - 27.05.2017 в 22:59
RAN Дата: Воскресенье, 28.05.2017, 10:41 | Сообщение № 4
Группа: Друзья
Ранг: Экселист
Сообщений: 5660
Репутация: 1163 ±
Замечаний: 0% ±

2010
[vba]
Код
Private Sub UserForm_Initialize()
    SpinButton1.Value = CDbl(Date)
End Sub
Private Sub SpinButton1_Change()
    TextBox001.Value = Format(SpinButton1, "dd.mm.yyyy")
End Sub
[/vba]


Быть или не быть, вот в чем загвоздка!

Сообщение отредактировал RAN - Воскресенье, 28.05.2017, 10:57
 
Ответить
Сообщение[vba]
Код
Private Sub UserForm_Initialize()
    SpinButton1.Value = CDbl(Date)
End Sub
Private Sub SpinButton1_Change()
    TextBox001.Value = Format(SpinButton1, "dd.mm.yyyy")
End Sub
[/vba]

Автор - RAN
Дата добавления - 28.05.2017 в 10:41
Мир MS Excel » Вопросы и решения » Вопросы по VBA » Изменение числа в дате с SpinButton (Макросы/Sub)
  • Страница 1 из 1
  • 1
Поиск:

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