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

Вход

Регистрация

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

 

= Мир MS Excel/VBA и формат ячейки [ч]:мм - Мир MS Excel

Регистрация · Логин: · Пароль: · · Забыли пароль?
Страница 1 из 11
Модератор форума: _Boroda_, Pelena, Manyasha, SLAVICK 
Мир MS Excel » Вопросы и решения » Вопросы по VBA » VBA и формат ячейки [ч]:мм (Макросы/Sub)
VBA и формат ячейки [ч]:мм
Shylo Дата: Понедельник, 22.02.2016, 18:08 | Сообщение № 1
Группа: Пользователи
Ранг: Участник
Сообщений: 85
Репутация: 2 ±
Замечаний: 20% ±

Excel-2003 RUS
Доброго времени суток всем. Помогите с проблемой. В VBA очень далеко до профи, но по книжечкам и найденным примерам в сети, накропал код расчета времени. При тестировании обнаружилось, что при занесении данных из формы на лист (в активную ячейку), результат отображается неверно если происходит переход через сутки. Сначала на форме были окна ввода даты, но это оказалось неудобно, потому как расчетов больше чем суточный интервал не происходит. Помогите подкорректировать код, чтобы исправить ошибку и недостаток моих знаний. Файл с примером прилагаю. Заранее благодарю.
К сообщению приложен файл: 1749806.xls(74Kb)
 
Ответить
СообщениеДоброго времени суток всем. Помогите с проблемой. В VBA очень далеко до профи, но по книжечкам и найденным примерам в сети, накропал код расчета времени. При тестировании обнаружилось, что при занесении данных из формы на лист (в активную ячейку), результат отображается неверно если происходит переход через сутки. Сначала на форме были окна ввода даты, но это оказалось неудобно, потому как расчетов больше чем суточный интервал не происходит. Помогите подкорректировать код, чтобы исправить ошибку и недостаток моих знаний. Файл с примером прилагаю. Заранее благодарю.

Автор - Shylo
Дата добавления - 22.02.2016 в 18:08
StoTisteg Дата: Понедельник, 22.02.2016, 18:33 | Сообщение № 2
Группа: Авторы
Ранг: Ветеран
Сообщений: 541
Репутация: 45 ±
Замечаний: 0% ±

Excel 2010
Тут даже в код лезть не надо. Просто если время начала больше времени окончания, к времени окончания прибавляете 12 часов, а из времени начала — вычитаете, далее считаете как обычно yes Между 11:15 и 18:23 ровно такой же интервал, как между 23:15 и 6:23 :p


Проверь всё. ThisWorkbook.Save. On Error Resume Next.

Сообщение отредактировал StoTisteg - Понедельник, 22.02.2016, 18:35
 
Ответить
СообщениеТут даже в код лезть не надо. Просто если время начала больше времени окончания, к времени окончания прибавляете 12 часов, а из времени начала — вычитаете, далее считаете как обычно yes Между 11:15 и 18:23 ровно такой же интервал, как между 23:15 и 6:23 :p

Автор - StoTisteg
Дата добавления - 22.02.2016 в 18:33
_Boroda_ Дата: Понедельник, 22.02.2016, 18:41 | Сообщение № 3
Группа: Модераторы
Ранг: Экселист
Сообщений: 9347
Репутация: 3922 ±
Замечаний: 0% ±

2003; 2007; 2010; 2013 RUS
Так нужно?
[vba]
Код
t3 = (t2 - t1) + 1
[/vba]
У Вас там не 1, а 24. А время считается в долях суток. 24 часа - это единица.
Следовательно, у Вас получается 23 или 24 с кусочком дня


Скажи мне, кудесник, любимец ба’гов...
Платная помощь:
Boroda_Excel@mail.ru
Яндекс-деньги: 41001632713405 | Webmoney: R289877159277; Z102172301748; E177867141995
 
Ответить
СообщениеТак нужно?
[vba]
Код
t3 = (t2 - t1) + 1
[/vba]
У Вас там не 1, а 24. А время считается в долях суток. 24 часа - это единица.
Следовательно, у Вас получается 23 или 24 с кусочком дня

Автор - _Boroda_
Дата добавления - 22.02.2016 в 18:41
Shylo Дата: Понедельник, 22.02.2016, 18:42 | Сообщение № 4
Группа: Пользователи
Ранг: Участник
Сообщений: 85
Репутация: 2 ±
Замечаний: 20% ±

Excel-2003 RUS
StoTisteg, На форме расчет идет правильно, и в варианте 0,00 и 0:00. При суммировании данных на листе происходит ошибка ввиду непонимания VBA формата [ч]:мм. Я про это спрашиваю.


Сообщение отредактировал Shylo - Понедельник, 22.02.2016, 18:43
 
Ответить
СообщениеStoTisteg, На форме расчет идет правильно, и в варианте 0,00 и 0:00. При суммировании данных на листе происходит ошибка ввиду непонимания VBA формата [ч]:мм. Я про это спрашиваю.

Автор - Shylo
Дата добавления - 22.02.2016 в 18:42
Shylo Дата: Понедельник, 22.02.2016, 18:49 | Сообщение № 5
Группа: Пользователи
Ранг: Участник
Сообщений: 85
Репутация: 2 ±
Замечаний: 20% ±

Excel-2003 RUS
_Boroda_, Вы как всегда вовремя и на высоте. Я упустил сей нюанс. Большое спасибо за помощь. hands
 
Ответить
Сообщение_Boroda_, Вы как всегда вовремя и на высоте. Я упустил сей нюанс. Большое спасибо за помощь. hands

Автор - Shylo
Дата добавления - 22.02.2016 в 18:49
al-Ex Дата: Понедельник, 22.02.2016, 18:56 | Сообщение № 6
Группа: Проверенные
Ранг: Форумчанин
Сообщений: 146
Репутация: 53 ±
Замечаний: 20% ±

Excel 2010
Вообще-то, пример "левый" подобрал, для расчёта интервалов времени есть универсальная функция
Функция DateDiff используется для вычисления разности двух дат


Сообщение отредактировал al-Ex - Понедельник, 22.02.2016, 19:32
 
Ответить
СообщениеВообще-то, пример "левый" подобрал, для расчёта интервалов времени есть универсальная функция
Функция DateDiff используется для вычисления разности двух дат

Автор - al-Ex
Дата добавления - 22.02.2016 в 18:56
Мир MS Excel » Вопросы и решения » Вопросы по VBA » VBA и формат ячейки [ч]:мм (Макросы/Sub)
Страница 1 из 11
Поиск:

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