Excel это не сложно
Добро пожаловать, Гость. Пожалуйста, войдите или зарегистрируйтесь.
28.03.2024, 19:57:34

Войти
Добавляйтесь в нашу группу ВКонтакте - будьте в курсе всех новых событий сайта, узнавайте первым обо всех акциях и новых статьях!
33 233 Сообщений в 5 454 Тем от 6 750 Пользователей
Последний пользователь: Alex1210
*
Перейти на сайт Хитрости Надстройка MulTEx Обучающие тренинги Наша группа ВКонтакте
Правила форума Начало Помощь Поиск Календарь Войти Регистрация Выйти
+  Excel это не сложно
|-+  Основные форумы
| |-+  Вопросы по Excel и VBA
| | |-+  Быстрый ввод времени без двоеточие.
Страниц: [1]   Вниз
Печать
Автор Тема: Быстрый ввод времени без двоеточие.  (Прочитано 5590 раз)
0 Пользователей и 1 Гость смотрят эту тему.
TimBor
Новичок
*

Репутация: +0/-0
Офлайн Офлайн

Сообщений: 9


Просмотр профиля E-mail
« : 11.05.2020, 16:33:13 »

Здравствуйте! Поделитесь, пожалуйста, макросом для ввода времени и преобразования прямо в той же ячейки в виде, например, 13:00. Так, чтобы набирать 1300, а на выходе получалось 13:00. Ну и чтобы это действительно было формат времени, для сумирования с др ячейка и. Спасибо!
Записан
boa
Старожил
****

Репутация: +22/-0
Офлайн Офлайн

Сообщений: 252


Доброта спасет мир...


Просмотр профиля WWW
« Ответ #1 : 11.05.2020, 21:01:29 »

Здравствуйте,
да же на такое, надо бы примерчик приложить,
т.к. можно ж просто "13" ввести и тоже получить 13:00, а можно запятой разделить или пробелом, и тоже получить время.
и "в каком месте" вы планируете вводить? или на всем листе? или во всей книге?
Для того, что бы такое осуществить, надо просто понимания как Excel хранит и обрабатывает даты и время и где вы его(время) будете вводить.
Первое, я так понимаю вы не знаете, хотя на просторах интернета множество пояснялок, а второе - ни кто кроме вас не знает. Грустный
Записан

Ничто не обходится нам так дешево и не ценится так дорого, как вежливость...  Мигель Сервантес де Сааведра

TimBor
Новичок
*

Репутация: +0/-0
Офлайн Офлайн

Сообщений: 9


Просмотр профиля E-mail
« Ответ #2 : 11.05.2020, 22:49:24 »

Невнятно обрисовал вопрос... Виноват. Поясняю.. У меня таблица в одном столбце я ввожу дату события, например в А1. В В1 мне нужно ввести время. Затем новое событие и в А2 новая или также дата, в В2 новое время. Макродля ввода даты без точек я нашёл, т.е просто набираю в ячейке 100520 и эти цифры в этой же ячейке трансформируются в виде даты 10.05.2020. Мне нужен макрос и для времени, чтобы набирать просто 4 цифры, которые преобразовывались в запись времени. Скажем набрал 1512, тут же получилось, в этой же ячейке 15:12.
Записан
boa
Старожил
****

Репутация: +22/-0
Офлайн Офлайн

Сообщений: 252


Доброта спасет мир...


Просмотр профиля WWW
« Ответ #3 : 11.05.2020, 23:04:21 »

Здравствуйте,
да же на такое, надо бы примерчик приложить,
Записан

Ничто не обходится нам так дешево и не ценится так дорого, как вежливость...  Мигель Сервантес де Сааведра

TimBor
Новичок
*

Репутация: +0/-0
Офлайн Офлайн

Сообщений: 9


Просмотр профиля E-mail
« Ответ #4 : 12.05.2020, 07:19:07 »

Вот пример.
Записан
boa
Старожил
****

Репутация: +22/-0
Офлайн Офлайн

Сообщений: 252


Доброта спасет мир...


Просмотр профиля WWW
« Ответ #5 : 12.05.2020, 08:02:48 »

Согласно примеру, код
Код: (vb)
Private Sub Worksheet_Change(ByVal Target As Range)
  Application.EnableEvents = False
    If Not Intersect(Target, Range("B6")) Is Nothing Then
      Target.Value = TimeSerial(Left(Target, 2), Right(Target, 2), 0)
    End If
  Application.EnableEvents = True
End Sub

обрабатывается только ячейка В6 и время должно быть введено 4-мя цифрами
Записан

Ничто не обходится нам так дешево и не ценится так дорого, как вежливость...  Мигель Сервантес де Сааведра

TimBor
Новичок
*

Репутация: +0/-0
Офлайн Офлайн

Сообщений: 9


Просмотр профиля E-mail
« Ответ #6 : 14.05.2020, 19:49:55 »

Спасибо огромное!
Записан
TimBor
Новичок
*

Репутация: +0/-0
Офлайн Офлайн

Сообщений: 9


Просмотр профиля E-mail
« Ответ #7 : 16.05.2020, 23:53:06 »

Хм, что то не работает  Обеспокоенный
Записан
boa
Старожил
****

Репутация: +22/-0
Офлайн Офлайн

Сообщений: 252


Доброта спасет мир...


Просмотр профиля WWW
« Ответ #8 : 17.05.2020, 00:06:33 »

Что-то НЛО перестали летать
Записан

Ничто не обходится нам так дешево и не ценится так дорого, как вежливость...  Мигель Сервантес де Сааведра

TimBor
Новичок
*

Репутация: +0/-0
Офлайн Офлайн

Сообщений: 9


Просмотр профиля E-mail
« Ответ #9 : 17.05.2020, 00:38:16 »

Разобрался в чем дело. Работает.... Но вот такая штука. Ввожу цифры, жму ентер, появляется время. Все хорошо. Если ошибся с цифрами и надо вводить новые, тоже срабатывает. А вот если просто удалить - вылезает сообщение Run-time error 13 Type mismatch. И усе... Приходится перезапускать файл....
Записан
boa
Старожил
****

Репутация: +22/-0
Офлайн Офлайн

Сообщений: 252


Доброта спасет мир...


Просмотр профиля WWW
« Ответ #10 : 17.05.2020, 12:19:52 »

Добавьте проверки
Код: (vb)
Private Sub Worksheet_Change(ByVal Target As Range)
  Application.EnableEvents = False
    If Not Intersect(Target, Range("B6")) Is Nothing Then
      If Len(Target.Value) = 4 Then
        Target.Value = TimeSerial(Left(Target, 2), Right(Target, 2), 0)
      End If
    End If
  Application.EnableEvents = True
End Sub


Приходится перезапускать файл....
Достаточно в окне Immediate выполнить команду Application.EnableEvents = True
« Последнее редактирование: 17.05.2020, 12:23:04 от boa » Записан

Ничто не обходится нам так дешево и не ценится так дорого, как вежливость...  Мигель Сервантес де Сааведра

TimBor
Новичок
*

Репутация: +0/-0
Офлайн Офлайн

Сообщений: 9


Просмотр профиля E-mail
« Ответ #11 : 23.05.2020, 11:22:24 »

Ура, заработало! . Спасибо, только если набираешь больше 10. Например, набираешь 1000, преобразует я в 10:00, а вот если 0900 или 900 или 0215, в е равно пишет 00:00. С форматами по возился, все равно 00:00 получается В замешательстве
Записан
boa
Старожил
****

Репутация: +22/-0
Офлайн Офлайн

Сообщений: 252


Доброта спасет мир...


Просмотр профиля WWW
« Ответ #12 : 24.05.2020, 01:11:27 »

чтобы набирать просто 4 цифры
или 900
Когда в Excel встроят интелект, он вам сам ответит "почему?"
а покаместь скажу, что вариантов человеческих ошибок и заблуждений великое множество.
особенно когда вопрос касается времени и пространства Подмигивающий
следуйте правилам ввода "по умолчанию" и не будете знать проблем.
Записан

Ничто не обходится нам так дешево и не ценится так дорого, как вежливость...  Мигель Сервантес де Сааведра

Страниц: [1]   Вверх
Печать
Перейти в:  

Powered by MySQL Powered by PHP Powered by SMF 1.1.21 | SMF © 2006-2011, Simple Machines Valid XHTML 1.0! Valid CSS!
Яндекс.Метрика Рейтинг@Mail.ru