Добрый день, всем. Файл прикрепил к сообщению. В файле имеются такие графы как дата и время, возможно сделать так, чтобы при написании в других графах (наименование события, текст задачи, название компании и т.д.) автоматические появлялись дата и время. В идеале было бы, чтоб время и дата появлялись автоматически при написании в любой из остальных граф (кроме статуса). Либо при написании в одной из граф.
Заранее спасибо за помощь !
Добрый день, всем. Файл прикрепил к сообщению. В файле имеются такие графы как дата и время, возможно сделать так, чтобы при написании в других графах (наименование события, текст задачи, название компании и т.д.) автоматические появлялись дата и время. В идеале было бы, чтоб время и дата появлялись автоматически при написании в любой из остальных граф (кроме статуса). Либо при написании в одной из граф.
Вот формула. Вставьте в столбец даты и времени. Логика следующая ЕСЛИ Статус не пуст или Наим. события не пусто ТО вывести ТДАТА() - функция вставляет текущую дату и время
Вы можете добавить другие поля для проверки (чтобы дата появлялась не только при заполнении статуса и наим. события). Файл с примером в приложении.
Вот формула. Вставьте в столбец даты и времени. Логика следующая ЕСЛИ Статус не пуст или Наим. события не пусто ТО вывести ТДАТА() - функция вставляет текущую дату и время
Вы можете добавить другие поля для проверки (чтобы дата появлялась не только при заполнении статуса и наим. события). Файл с примером в приложении.mathiax90
Посмотрите вариант, макросы должны быть включены. При изменении в столбце Е вставляется дата и время. [vba]
Код
Private Sub Worksheet_Change(ByVal Target As Range) If Target.Cells.Count > 1 Then Exit Sub If Not Intersect(Target, Range("E6:E100")) Is Nothing Then Target(1, -2).Value = Now Target(1, -1).Value = Now End If End Sub
[/vba]
Посмотрите вариант, макросы должны быть включены. При изменении в столбце Е вставляется дата и время. [vba]
Код
Private Sub Worksheet_Change(ByVal Target As Range) If Target.Cells.Count > 1 Then Exit Sub If Not Intersect(Target, Range("E6:E100")) Is Nothing Then Target(1, -2).Value = Now Target(1, -1).Value = Now End If End Sub
mathiax90, как думаете, зачем ТС одни и те же значения даты и времени во многих строках таблицы, да еще и пересчитываемые хором при каждом чихе? ;)
P.S. Попробуйте сами заполнить в своей таблице строчек 10-15 (по одному символу в статусе или наименовании, только для того, чтобы дата-время появились) . Потом поредактируйте эти 10-15 строчек в разных колонках... Видите что происходит? Казус понятен? Функция ТДАТА() будет показывать одно и то же текущее значение хоть в одной ячейке, хоть в сотне. Я и спросил, зачем автору топика столько одних и тех же значений :)
Формулами, увы, такая задача не решается. Только макросами. Либо надо после заполнения новой строки сразу фиксировать формульные значения даты и времени путем копирования и специальной вставки "Только значения", но вряд ли это кому-то придётся по душе - тогда уж быстрее просто ввести дату и время прямо в ячейки при помощи комбинаций клавиш Ctrl+; и Shift+Ctrl+; соответственно.
Другое дело, что и постановка задачи не без греха. И чисто формально-то Вы ее решили: время автоматически появляется? - появляется! А "между строк" Вас никто не обязывал читать. Ну, а то, что это не то время, которое на самом деле ждёт постановщик - это уже включение собственной интуиции, "чуйки".
Но даже при включенной "чуйке" мне пока до конца не понятно: дата-время должны проставляться в новой записи один раз при ее "создании" (как ниже в макросе у меня), или меняться каждый раз при ее редактировании (как выше в макросе у gling ). Хотя чуйка второго порядка и наличие в задании слова "появлялись" (а не "изменялись") склоняет меня всё же в мою сторону
mathiax90, как думаете, зачем ТС одни и те же значения даты и времени во многих строках таблицы, да еще и пересчитываемые хором при каждом чихе? ;)
P.S. Попробуйте сами заполнить в своей таблице строчек 10-15 (по одному символу в статусе или наименовании, только для того, чтобы дата-время появились) . Потом поредактируйте эти 10-15 строчек в разных колонках... Видите что происходит? Казус понятен? Функция ТДАТА() будет показывать одно и то же текущее значение хоть в одной ячейке, хоть в сотне. Я и спросил, зачем автору топика столько одних и тех же значений :)
Формулами, увы, такая задача не решается. Только макросами. Либо надо после заполнения новой строки сразу фиксировать формульные значения даты и времени путем копирования и специальной вставки "Только значения", но вряд ли это кому-то придётся по душе - тогда уж быстрее просто ввести дату и время прямо в ячейки при помощи комбинаций клавиш Ctrl+; и Shift+Ctrl+; соответственно.
Другое дело, что и постановка задачи не без греха. И чисто формально-то Вы ее решили: время автоматически появляется? - появляется! А "между строк" Вас никто не обязывал читать. Ну, а то, что это не то время, которое на самом деле ждёт постановщик - это уже включение собственной интуиции, "чуйки".
Но даже при включенной "чуйке" мне пока до конца не понятно: дата-время должны проставляться в новой записи один раз при ее "создании" (как ниже в макросе у меня), или меняться каждый раз при ее редактировании (как выше в макросе у gling ). Хотя чуйка второго порядка и наличие в задании слова "появлялись" (а не "изменялись") склоняет меня всё же в мою сторону Gustav
gling, набьюсь к Вам в соавторы своим юбилейным 1000-м сообщением, со своим пониманием замысла ТС: [vba]
Код
Private Sub Worksheet_Change(ByVal Target As Range) If Target.Cells.Count > 1 Then Exit Sub If Not Intersect(Target, Range("E6:J100")) Is Nothing Then If IsEmpty(Cells(Target.Row, "B")) Then Cells(Target.Row, "B").Value = Date Cells(Target.Row, "C").Value = Time End If End If End Sub
[/vba]
gling, набьюсь к Вам в соавторы своим юбилейным 1000-м сообщением, со своим пониманием замысла ТС: [vba]
Код
Private Sub Worksheet_Change(ByVal Target As Range) If Target.Cells.Count > 1 Then Exit Sub If Not Intersect(Target, Range("E6:J100")) Is Nothing Then If IsEmpty(Cells(Target.Row, "B")) Then Cells(Target.Row, "B").Value = Date Cells(Target.Row, "C").Value = Time End If End If End Sub
Gustav, абсолютно верно, необходимо чтоб дата и время не изменились при редактировании. В понедельник только получится опробовать. Заранее огромное спасибо всем за дискуссию и помощь, обязательно отпишусь как опробую.
Gustav, абсолютно верно, необходимо чтоб дата и время не изменились при редактировании. В понедельник только получится опробовать. Заранее огромное спасибо всем за дискуссию и помощь, обязательно отпишусь как опробую.GVA
Ну как... например, еще один IF навернуть внутрь перед прописыванием даты/времени: [vba]
Код
Private Sub Worksheet_Change(ByVal Target As Range) If Target.Cells.Count > 1 Then Exit Sub If Not Intersect(Target, Range("E6:J100")) Is Nothing Then If IsEmpty(Cells(Target.Row, "B")) Then
If Cells(Target.Row, "E").Value = "УТВ(ержден)" Then 'колонка E - "Наименование события
Cells(Target.Row, "B").Value = Date Cells(Target.Row, "C").Value = Time
End If
End If End If End Sub
[/vba]или существующий IF расширить: [vba]
Код
Private Sub Worksheet_Change(ByVal Target As Range) If Target.Cells.Count > 1 Then Exit Sub If Not Intersect(Target, Range("E6:J100")) Is Nothing Then
If IsEmpty(Cells(Target.Row, "B")) And _ Cells(Target.Row, "E").Value = "УТВ(ержден)" Then 'колонка E - "Наименование события
Cells(Target.Row, "B").Value = Date Cells(Target.Row, "C").Value = Time
End If End If End Sub
[/vba]
Ну как... например, еще один IF навернуть внутрь перед прописыванием даты/времени: [vba]
Код
Private Sub Worksheet_Change(ByVal Target As Range) If Target.Cells.Count > 1 Then Exit Sub If Not Intersect(Target, Range("E6:J100")) Is Nothing Then If IsEmpty(Cells(Target.Row, "B")) Then
If Cells(Target.Row, "E").Value = "УТВ(ержден)" Then 'колонка E - "Наименование события
Cells(Target.Row, "B").Value = Date Cells(Target.Row, "C").Value = Time
End If
End If End If End Sub
[/vba]или существующий IF расширить: [vba]
Код
Private Sub Worksheet_Change(ByVal Target As Range) If Target.Cells.Count > 1 Then Exit Sub If Not Intersect(Target, Range("E6:J100")) Is Nothing Then
If IsEmpty(Cells(Target.Row, "B")) And _ Cells(Target.Row, "E").Value = "УТВ(ержден)" Then 'колонка E - "Наименование события
Cells(Target.Row, "B").Value = Date Cells(Target.Row, "C").Value = Time
не понятно: дата-время должны проставляться в новой записи один раз при ее "создании" (как ниже в макросе у меня), или меняться каждый раз при ее редактировании
не понятно: дата-время должны проставляться в новой записи один раз при ее "создании" (как ниже в макросе у меня), или меняться каждый раз при ее редактировании
Уважаемый Кравченко или Gustav прошу Вас выслать документ с примером по автоматической вставки времени. Сколько я не пытаюсь создать подобный макрос, у меня ничего не выходит. При попытке запустить макрос выходит ошибка: "Run-time error '424': Object required
Подскажите в чем может быть причина?
Уважаемый Кравченко или Gustav прошу Вас выслать документ с примером по автоматической вставки времени. Сколько я не пытаюсь создать подобный макрос, у меня ничего не выходит. При попытке запустить макрос выходит ошибка: "Run-time error '424': Object required
Ещё прошу подсказать, как оформить макрос, чтобы при введении в столбец любой текстовой информации в ячейке регистрировалось время и дата. С цифрами стало понятно, а когда попытался применить к текству снова стала появляться ошибка.
Прошу не ругать сразу, я в макросах новичок.
Ещё прошу подсказать, как оформить макрос, чтобы при введении в столбец любой текстовой информации в ячейке регистрировалось время и дата. С цифрами стало понятно, а когда попытался применить к текству снова стала появляться ошибка.
Прошу не ругать сразу, я в макросах новичок.Restiv
Что добавить второй макрос не получается. Можете глянуть в чем дело? Первый макрос работает. Второй должен при вводе "ФИО" автоматически фиксировать дату и время ввода ФИО. Что то я сделал не так.
Заранее благодарю.
Что добавить второй макрос не получается. Можете глянуть в чем дело? Первый макрос работает. Второй должен при вводе "ФИО" автоматически фиксировать дату и время ввода ФИО. Что то я сделал не так.