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

Вход

Регистрация

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

 

= Мир MS Excel/Вывести из времени час - Мир MS Excel

Регистрация · Логин: · Пароль: · · Забыли пароль?
  • Страница 1 из 1
  • 1
Модератор форума: _Boroda_, Manyasha, SLAVICK, китин  
Мир MS Excel » Вопросы и решения » Вопросы по VBA » Вывести из времени час (Макросы/Sub)
Вывести из времени час
Паштет Дата: Понедельник, 12.11.2018, 10:17 | Сообщение № 1
Группа: Пользователи
Ранг: Участник
Сообщений: 82
Репутация: 1 ±
Замечаний: 0% ±

Excel 2010
Элементарный кажется вопрос, но упорно не хочет реализовываться. необходимо из формы textbox, которая отображает текущее время, вывести отдельно в ячейку на лист часы, а в другую минуты. Написал такой код, но в ячейки пишутся двойные нули :( :
[vba]
Код
Private Sub UserForm_Initialize()
times = Format(Now, "hh.nn")
End Sub
Private Sub zapis1_Click()
With Sheets("Статистика")
        iLastRow = .Cells(Rows.Count, 1).End(xlUp).Row + 1
    ...
        .Cells(iLastRow, 10) = Hour(times)
        .Cells(iLastRow, 11) = Minute(times)
    ...  
End With
End Sub
[/vba]
К сообщению приложен файл: 3187858.xls(61.0 Kb)
 
Ответить
СообщениеЭлементарный кажется вопрос, но упорно не хочет реализовываться. необходимо из формы textbox, которая отображает текущее время, вывести отдельно в ячейку на лист часы, а в другую минуты. Написал такой код, но в ячейки пишутся двойные нули :( :
[vba]
Код
Private Sub UserForm_Initialize()
times = Format(Now, "hh.nn")
End Sub
Private Sub zapis1_Click()
With Sheets("Статистика")
        iLastRow = .Cells(Rows.Count, 1).End(xlUp).Row + 1
    ...
        .Cells(iLastRow, 10) = Hour(times)
        .Cells(iLastRow, 11) = Minute(times)
    ...  
End With
End Sub
[/vba]

Автор - Паштет
Дата добавления - 12.11.2018 в 10:17
_Boroda_ Дата: Понедельник, 12.11.2018, 10:28 | Сообщение № 2
Группа: Модераторы
Ранг: Местный житель
Сообщений: 13660
Репутация: 5574 ±
Замечаний: 0% ±

2003; 2007; 2010; 2013 RUS
Первый кусок не нужен, тем более, что
1. hh.mm
2. Вы из даты-времени делаете кусок текста, а потом пытаетесь из этого куска вытащить время
3. переменная times не глобальная и не переносится в другой макрос "zapis1_Click"
Просто напишите
[vba]
Код
.Cells(iLastRow, 10) = Hour(Now)
[/vba]Или[vba]
Код
Hour(Time)
[/vba]
Или, если нужно именно время запуска формы, а не время нажатия на кнопку "Добавить запись", то так
[vba]
Код
Dim times

Private Sub UserForm_Initialize()
times = Now
End Sub

Private Sub zapis1_Click()
With Sheets("Статистика")
        iLastRow = .Cells(Rows.Count, 1).End(xlUp).Row + 1
    '...
        .Cells(iLastRow, 10) = Hour(times)
        .Cells(iLastRow, 11) = Minute(times)
    '...
End With
End Sub
[/vba]

*Добавлено
Поправил, сначала неверно написал


Скажи мне, кудесник, любимец ба’гов...
Платная помощь:
Boroda_Excel@mail.ru
Яндекс-деньги: 41001632713405 | Webmoney: R289877159277; Z102172301748; E177867141995
 
Ответить
СообщениеПервый кусок не нужен, тем более, что
1. hh.mm
2. Вы из даты-времени делаете кусок текста, а потом пытаетесь из этого куска вытащить время
3. переменная times не глобальная и не переносится в другой макрос "zapis1_Click"
Просто напишите
[vba]
Код
.Cells(iLastRow, 10) = Hour(Now)
[/vba]Или[vba]
Код
Hour(Time)
[/vba]
Или, если нужно именно время запуска формы, а не время нажатия на кнопку "Добавить запись", то так
[vba]
Код
Dim times

Private Sub UserForm_Initialize()
times = Now
End Sub

Private Sub zapis1_Click()
With Sheets("Статистика")
        iLastRow = .Cells(Rows.Count, 1).End(xlUp).Row + 1
    '...
        .Cells(iLastRow, 10) = Hour(times)
        .Cells(iLastRow, 11) = Minute(times)
    '...
End With
End Sub
[/vba]

*Добавлено
Поправил, сначала неверно написал

Автор - _Boroda_
Дата добавления - 12.11.2018 в 10:28
Паштет Дата: Понедельник, 12.11.2018, 11:05 | Сообщение № 3
Группа: Пользователи
Ранг: Участник
Сообщений: 82
Репутация: 1 ±
Замечаний: 0% ±

Excel 2010
Цитата
Первый кусок не нужен, тем более, что
1. hh.mm
Во многих местах указано, что mm - это месяц, а nn - минуты. Но это не принципиально, могу поиграться.
Цитата
2. Вы из даты-времени делаете кусок текста, а потом пытаетесь из этого куска вытащить время
[vba]
Код
.Cells(iLastRow, 11) = Minute(TimeValue(times))
[/vba]тоже не помогает
Цитата
3. переменная times не глобальная и не переносится в другой макрос
Просто напишите
Не могу, тк мне необходимо подвязаться под SpinButton2 ещё. Этот момент тоже никак не хочет работать, несмотря на то, что для даты используется хороший код [vba]
Код
Private Sub SpinButton1_SpinUp(): Data1 = Format(CDate(Data1) + 1, "DD.MM.YYYY"): End Sub
[/vba]
 
Ответить
Сообщение
Цитата
Первый кусок не нужен, тем более, что
1. hh.mm
Во многих местах указано, что mm - это месяц, а nn - минуты. Но это не принципиально, могу поиграться.
Цитата
2. Вы из даты-времени делаете кусок текста, а потом пытаетесь из этого куска вытащить время
[vba]
Код
.Cells(iLastRow, 11) = Minute(TimeValue(times))
[/vba]тоже не помогает
Цитата
3. переменная times не глобальная и не переносится в другой макрос
Просто напишите
Не могу, тк мне необходимо подвязаться под SpinButton2 ещё. Этот момент тоже никак не хочет работать, несмотря на то, что для даты используется хороший код [vba]
Код
Private Sub SpinButton1_SpinUp(): Data1 = Format(CDate(Data1) + 1, "DD.MM.YYYY"): End Sub
[/vba]

Автор - Паштет
Дата добавления - 12.11.2018 в 11:05
_Boroda_ Дата: Понедельник, 12.11.2018, 11:17 | Сообщение № 4
Группа: Модераторы
Ранг: Местный житель
Сообщений: 13660
Репутация: 5574 ±
Замечаний: 0% ±

2003; 2007; 2010; 2013 RUS
Во многих местах указано, что mm - это месяц, а nn - минуты
эээ, вот посмотреть бы,а ? Покажете такие места?
TimeValue(times)
не поможет. В times разделитель точка - это вообще не время
Не могу, тк
Я ж Вам написал уже всё, разве не подходит последний большой блок?


Скажи мне, кудесник, любимец ба’гов...
Платная помощь:
Boroda_Excel@mail.ru
Яндекс-деньги: 41001632713405 | Webmoney: R289877159277; Z102172301748; E177867141995
 
Ответить
Сообщение
Во многих местах указано, что mm - это месяц, а nn - минуты
эээ, вот посмотреть бы,а ? Покажете такие места?
TimeValue(times)
не поможет. В times разделитель точка - это вообще не время
Не могу, тк
Я ж Вам написал уже всё, разве не подходит последний большой блок?

Автор - _Boroda_
Дата добавления - 12.11.2018 в 11:17
Паштет Дата: Понедельник, 12.11.2018, 12:06 | Сообщение № 5
Группа: Пользователи
Ранг: Участник
Сообщений: 82
Репутация: 1 ±
Замечаний: 0% ±

Excel 2010
Ваш вариант заработал, но в неверном формате выводит в textbox. Плюс надо SpinButton привязать для регулировки.
Цитата

эээ, вот посмотреть бы,а ? Покажете такие места?

Здесь - один из примеров: в списке одно, а в коде немного другое. Попадались и еще сайты, лень искать.
 
Ответить
СообщениеВаш вариант заработал, но в неверном формате выводит в textbox. Плюс надо SpinButton привязать для регулировки.
Цитата

эээ, вот посмотреть бы,а ? Покажете такие места?

Здесь - один из примеров: в списке одно, а в коде немного другое. Попадались и еще сайты, лень искать.

Автор - Паштет
Дата добавления - 12.11.2018 в 12:06
_Boroda_ Дата: Понедельник, 12.11.2018, 12:29 | Сообщение № 6
Группа: Модераторы
Ранг: Местный житель
Сообщений: 13660
Репутация: 5574 ±
Замечаний: 0% ±

2003; 2007; 2010; 2013 RUS
но в неверном формате выводит в textbox

Это Вы о чем? У Вас в коде в первом посте вопрос про вывод в ячейку, какой текстбокс?

Вы немного перепутали, n - это для DateAdd, а не для формата
https://docs.microsoft.com/ru-ru....%3Dtrue


Скажи мне, кудесник, любимец ба’гов...
Платная помощь:
Boroda_Excel@mail.ru
Яндекс-деньги: 41001632713405 | Webmoney: R289877159277; Z102172301748; E177867141995
 
Ответить
Сообщение
но в неверном формате выводит в textbox

Это Вы о чем? У Вас в коде в первом посте вопрос про вывод в ячейку, какой текстбокс?

Вы немного перепутали, n - это для DateAdd, а не для формата
https://docs.microsoft.com/ru-ru....%3Dtrue

Автор - _Boroda_
Дата добавления - 12.11.2018 в 12:29
Паштет Дата: Понедельник, 12.11.2018, 12:35 | Сообщение № 7
Группа: Пользователи
Ранг: Участник
Сообщений: 82
Репутация: 1 ±
Замечаний: 0% ±

Excel 2010
необходимо из формы textbox, которая отображает текущее время, вывести отдельно в ячейку на лист часы, а в другую минуты.

В форме есть textbox, который и называется times. В нём изначально отображалось время, к нему еще подразумевался SpinButton. Это время и должно идти было в ячейку.
P.S. Сам файл прилагается для наглядности в пером посте.
 
Ответить
Сообщение
необходимо из формы textbox, которая отображает текущее время, вывести отдельно в ячейку на лист часы, а в другую минуты.

В форме есть textbox, который и называется times. В нём изначально отображалось время, к нему еще подразумевался SpinButton. Это время и должно идти было в ячейку.
P.S. Сам файл прилагается для наглядности в пером посте.

Автор - Паштет
Дата добавления - 12.11.2018 в 12:35
_Boroda_ Дата: Понедельник, 12.11.2018, 13:09 | Сообщение № 8
Группа: Модераторы
Ранг: Местный житель
Сообщений: 13660
Репутация: 5574 ±
Замечаний: 0% ±

2003; 2007; 2010; 2013 RUS
А, блин, теперь понятно
[vba]
Код
.Cells(iLastRow, 10) = Hour(CDate(Replace(times, ".", ":")))
[/vba]
Это я что-то стормозил сначала


Скажи мне, кудесник, любимец ба’гов...
Платная помощь:
Boroda_Excel@mail.ru
Яндекс-деньги: 41001632713405 | Webmoney: R289877159277; Z102172301748; E177867141995
 
Ответить
СообщениеА, блин, теперь понятно
[vba]
Код
.Cells(iLastRow, 10) = Hour(CDate(Replace(times, ".", ":")))
[/vba]
Это я что-то стормозил сначала

Автор - _Boroda_
Дата добавления - 12.11.2018 в 13:09
RAN Дата: Понедельник, 12.11.2018, 13:44 | Сообщение № 9
Группа: Друзья
Ранг: Участник клуба
Сообщений: 4888
Репутация: 974 ±
Замечаний: 0% ±

2010
эээ, вот посмотреть бы,а ? Покажете такие места?

Легко! :p
К сообщению приложен файл: 5605508.jpg(33.5 Kb)


Быть или не быть, вот в чем загвоздка!
 
Ответить
Сообщение
эээ, вот посмотреть бы,а ? Покажете такие места?

Легко! :p

Автор - RAN
Дата добавления - 12.11.2018 в 13:44
Паштет Дата: Понедельник, 12.11.2018, 14:05 | Сообщение № 10
Группа: Пользователи
Ранг: Участник
Сообщений: 82
Репутация: 1 ±
Замечаний: 0% ±

Excel 2010
Как я понял все проще можно было:
[vba]
Код
times = Format(Now, "hh[u]:[/u]mm")
[/vba]
И тогда не нужен Replace.

[vba]
Код
Private Sub SpinButton2_SpinDown(): times = Format(CDate(times) - 1, "hh:mm"): End Sub
Private Sub SpinButton2_SpinUp(): times = Format(CDate(times) + 1, "hh:mm"): End Sub
[/vba]А здесь что не так?
 
Ответить
СообщениеКак я понял все проще можно было:
[vba]
Код
times = Format(Now, "hh[u]:[/u]mm")
[/vba]
И тогда не нужен Replace.

[vba]
Код
Private Sub SpinButton2_SpinDown(): times = Format(CDate(times) - 1, "hh:mm"): End Sub
Private Sub SpinButton2_SpinUp(): times = Format(CDate(times) + 1, "hh:mm"): End Sub
[/vba]А здесь что не так?

Автор - Паштет
Дата добавления - 12.11.2018 в 14:05
RAN Дата: Понедельник, 12.11.2018, 14:23 | Сообщение № 11
Группа: Друзья
Ранг: Участник клуба
Сообщений: 4888
Репутация: 974 ±
Замечаний: 0% ±

2010
/


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

Сообщение отредактировал RAN - Понедельник, 12.11.2018, 14:24
 
Ответить
Сообщение/

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

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