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

Вход

Регистрация

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

 

= Мир MS Excel/Автозаполнение датой при записи в соседнюю ячейку - Мир MS Excel

Старая форма входа
  • Страница 1 из 2
  • 1
  • 2
  • »
Модератор форума: китин, _Boroda_  
Мир MS Excel » Вопросы и решения » Вопросы по Excel » Автозаполнение датой при записи в соседнюю ячейку (Формулы/Formulas)
Автозаполнение датой при записи в соседнюю ячейку
Evgenii72 Дата: Понедельник, 16.01.2017, 20:21 | Сообщение № 1
Группа: Пользователи
Ранг: Прохожий
Сообщений: 4
Репутация: 0 ±
Замечаний: 0% ±

Excel 2007
Здравствуйте! Мне нужно при заполнении ячейки B3, в А3 автоматом появлялась сегодняшняя дата. Если В4 я заполнил 13го января, то в А4 появилось -"13.01.2017". Возможно ли это?
К сообщению приложен файл: __.xls (17.0 Kb)
 
Ответить
СообщениеЗдравствуйте! Мне нужно при заполнении ячейки B3, в А3 автоматом появлялась сегодняшняя дата. Если В4 я заполнил 13го января, то в А4 появилось -"13.01.2017". Возможно ли это?

Автор - Evgenii72
Дата добавления - 16.01.2017 в 20:21
Che79 Дата: Понедельник, 16.01.2017, 20:30 | Сообщение № 2
Группа: Друзья
Ранг: Старожил
Сообщений: 1649
Репутация: 306 ±
Замечаний: 0% ±

2013 Win, 365 Mac
Evgenii72, здравствуйте. Так нужно? Формула в A3 и протянуть вниз
Код
=ЕСЛИ(B3<>"";СЕГОДНЯ();"")

P.S. Если далее нужно эту дату сохранить, то далее сохраняете как значение


Делай нормально и будет нормально!

Сообщение отредактировал Che79 - Понедельник, 16.01.2017, 20:32
 
Ответить
СообщениеEvgenii72, здравствуйте. Так нужно? Формула в A3 и протянуть вниз
Код
=ЕСЛИ(B3<>"";СЕГОДНЯ();"")

P.S. Если далее нужно эту дату сохранить, то далее сохраняете как значение

Автор - Che79
Дата добавления - 16.01.2017 в 20:30
Wasilich Дата: Понедельник, 16.01.2017, 20:39 | Сообщение № 3
Группа: Друзья
Ранг: Старожил
Сообщений: 1232
Репутация: 326 ±
Замечаний: 0% ±

2003
Возможно ли это?
Конечно. :) В модуль листа.
[vba]
Код
Private Sub Worksheet_Change(ByVal Target As Range)
    If Target.Column = 2 Then Target.Offset(, -1) = Date
End Sub
[/vba]
 
Ответить
Сообщение
Возможно ли это?
Конечно. :) В модуль листа.
[vba]
Код
Private Sub Worksheet_Change(ByVal Target As Range)
    If Target.Column = 2 Then Target.Offset(, -1) = Date
End Sub
[/vba]

Автор - Wasilich
Дата добавления - 16.01.2017 в 20:39
Evgenii72 Дата: Понедельник, 16.01.2017, 20:42 | Сообщение № 4
Группа: Пользователи
Ранг: Прохожий
Сообщений: 4
Репутация: 0 ±
Замечаний: 0% ±

Excel 2007
Che79, что-то не срабатывает. В примере ничего не получилось. Попробую еще объяснить, если я буду сегодня заполнять ячейки В6 и С6, то в А6 должна появляться сегодняшняя дата
К сообщению приложен файл: 0707955.xls (17.5 Kb)
 
Ответить
СообщениеChe79, что-то не срабатывает. В примере ничего не получилось. Попробую еще объяснить, если я буду сегодня заполнять ячейки В6 и С6, то в А6 должна появляться сегодняшняя дата

Автор - Evgenii72
Дата добавления - 16.01.2017 в 20:42
Wasilich Дата: Понедельник, 16.01.2017, 20:49 | Сообщение № 5
Группа: Друзья
Ранг: Старожил
Сообщений: 1232
Репутация: 326 ±
Замечаний: 0% ±

2003
Установите формат ячеек "Дата" но завтра формула покажет завтрашнюю дату.
 
Ответить
СообщениеУстановите формат ячеек "Дата" но завтра формула покажет завтрашнюю дату.

Автор - Wasilich
Дата добавления - 16.01.2017 в 20:49
bmv98rus Дата: Понедельник, 16.01.2017, 20:50 | Сообщение № 6
Группа: Друзья
Ранг: Участник клуба
Сообщений: 4098
Репутация: 766 ±
Замечаний: 0% ±

Excel 2013/2016
Evgenii72,

[vba]
Код
Private Sub Worksheet_Change(ByVal Target As Range)
    If Target.Column = 2 And Target.Row > 1 And Not IsEmpty(Target.Value) Then _
        Target.Offset(0, -1).Value = Date
End Sub
[/vba]

И если от Wasilich Не срабатывает, то скорее всего отключена работа макросов.
К сообщению приложен файл: Copy_of-.xls (28.0 Kb)


Замечательный Временно просто медведь , процентов на 20.

Сообщение отредактировал bmv98rus - Понедельник, 16.01.2017, 20:52
 
Ответить
СообщениеEvgenii72,

[vba]
Код
Private Sub Worksheet_Change(ByVal Target As Range)
    If Target.Column = 2 And Target.Row > 1 And Not IsEmpty(Target.Value) Then _
        Target.Offset(0, -1).Value = Date
End Sub
[/vba]

И если от Wasilich Не срабатывает, то скорее всего отключена работа макросов.

Автор - bmv98rus
Дата добавления - 16.01.2017 в 20:50
Evgenii72 Дата: Понедельник, 16.01.2017, 20:52 | Сообщение № 7
Группа: Пользователи
Ранг: Прохожий
Сообщений: 4
Репутация: 0 ±
Замечаний: 0% ±

Excel 2007
Wasilich, Спасибо! Кажется получилось :) , Т.е. "16.01.2017" в А6 завтра поменяется на "17.01.2017"? Мне надо чтобы не менялось)


Сообщение отредактировал Evgenii72 - Понедельник, 16.01.2017, 20:57
 
Ответить
СообщениеWasilich, Спасибо! Кажется получилось :) , Т.е. "16.01.2017" в А6 завтра поменяется на "17.01.2017"? Мне надо чтобы не менялось)

Автор - Evgenii72
Дата добавления - 16.01.2017 в 20:52
Che79 Дата: Понедельник, 16.01.2017, 20:57 | Сообщение № 8
Группа: Друзья
Ранг: Старожил
Сообщений: 1649
Репутация: 306 ±
Замечаний: 0% ±

2013 Win, 365 Mac
Установите формат ячеек "Дата" но завтра формула покажет завтрашнюю дату.

именно так, и чтобы сохранить сегодняшнюю дату при открытии файла, допустим завтра, сохраните формулу как значение.
если я буду сегодня заполнять ячейки В6 и С6, то в А6 должна появляться сегодняшняя дата

тогда формула массива
Код
{=ЕСЛИ(И(B6:C6<>"");СЕГОДНЯ();"")}

в файле желтые ячейки
К сообщению приложен файл: 0796872.xls (25.5 Kb)


Делай нормально и будет нормально!
 
Ответить
Сообщение
Установите формат ячеек "Дата" но завтра формула покажет завтрашнюю дату.

именно так, и чтобы сохранить сегодняшнюю дату при открытии файла, допустим завтра, сохраните формулу как значение.
если я буду сегодня заполнять ячейки В6 и С6, то в А6 должна появляться сегодняшняя дата

тогда формула массива
Код
{=ЕСЛИ(И(B6:C6<>"");СЕГОДНЯ();"")}

в файле желтые ячейки

Автор - Che79
Дата добавления - 16.01.2017 в 20:57
Wasilich Дата: Понедельник, 16.01.2017, 20:58 | Сообщение № 9
Группа: Друзья
Ранг: Старожил
Сообщений: 1232
Репутация: 326 ±
Замечаний: 0% ±

2003
Возьмите код от bmv98rus, так правильней будет, а то я, на лету состряпал.
Мне надо чтобы не менялось)
Макросом не поменяется. Для формулы, читайте выше.


Сообщение отредактировал Wasilich - Понедельник, 16.01.2017, 21:00
 
Ответить
СообщениеВозьмите код от bmv98rus, так правильней будет, а то я, на лету состряпал.
Мне надо чтобы не менялось)
Макросом не поменяется. Для формулы, читайте выше.

Автор - Wasilich
Дата добавления - 16.01.2017 в 20:58
Evgenii72 Дата: Понедельник, 16.01.2017, 21:13 | Сообщение № 10
Группа: Пользователи
Ранг: Прохожий
Сообщений: 4
Репутация: 0 ±
Замечаний: 0% ±

Excel 2007
Всем спасибо, помогли :)
 
Ответить
СообщениеВсем спасибо, помогли :)

Автор - Evgenii72
Дата добавления - 16.01.2017 в 21:13
bmv98rus Дата: Понедельник, 16.01.2017, 21:14 | Сообщение № 11
Группа: Друзья
Ранг: Участник клуба
Сообщений: 4098
Репутация: 766 ±
Замечаний: 0% ±

Excel 2013/2016
Che79,

Нет ну конечно после рабочего дня скопировать и сохранить как значения можно, но если забыл то завтра будет
К сообщению приложен файл: 8097493.jpg (53.2 Kb)


Замечательный Временно просто медведь , процентов на 20.
 
Ответить
СообщениеChe79,

Нет ну конечно после рабочего дня скопировать и сохранить как значения можно, но если забыл то завтра будет

Автор - bmv98rus
Дата добавления - 16.01.2017 в 21:14
Che79 Дата: Понедельник, 16.01.2017, 21:19 | Сообщение № 12
Группа: Друзья
Ранг: Старожил
Сообщений: 1649
Репутация: 306 ±
Замечаний: 0% ±

2013 Win, 365 Mac
bmv98rus, вот поэтому Ваш вариант на VBA тут безусловно лучше и завтра будет не сегодня, а вчера :D


Делай нормально и будет нормально!
 
Ответить
Сообщениеbmv98rus, вот поэтому Ваш вариант на VBA тут безусловно лучше и завтра будет не сегодня, а вчера :D

Автор - Che79
Дата добавления - 16.01.2017 в 21:19
kadig1989 Дата: Четверг, 14.10.2021, 00:26 | Сообщение № 13
Группа: Пользователи
Ранг: Прохожий
Сообщений: 1
Репутация: 0 ±
Замечаний: 0% ±

По этой же теме есть вопрос. Решение bmv98rus хорошее Решение , но если есть необходимость за более ранние даты поменять стоимость. При изменении стоимости в 1й столбец встает текущая дата, а необходимо, чтобы дата не менялась, если уже была ранее установлена.


Сообщение отредактировал kadig1989 - Четверг, 14.10.2021, 00:36
 
Ответить
СообщениеПо этой же теме есть вопрос. Решение bmv98rus хорошее Решение , но если есть необходимость за более ранние даты поменять стоимость. При изменении стоимости в 1й столбец встает текущая дата, а необходимо, чтобы дата не менялась, если уже была ранее установлена.

Автор - kadig1989
Дата добавления - 14.10.2021 в 00:26
Ефгений Дата: Воскресенье, 28.08.2022, 08:56 | Сообщение № 14
Группа: Пользователи
Ранг: Участник
Сообщений: 80
Репутация: 0 ±
Замечаний: 0% ±

2010
Здравствуйте. Подскажите пожалуйста скрипт для заполнения даты в колонке А (без перезаписи даты при изменении), при внесении данных в любую ячейку строки. Пример внёс данные в ячейку B2,C2, D2 и.т.д., а в ячейку А2 подставляется текущая дата. Первая строчка это названия колонок, нужно чтобы скрипт работал начиная со строки 2


Сообщение отредактировал Ефгений - Воскресенье, 28.08.2022, 09:38
 
Ответить
СообщениеЗдравствуйте. Подскажите пожалуйста скрипт для заполнения даты в колонке А (без перезаписи даты при изменении), при внесении данных в любую ячейку строки. Пример внёс данные в ячейку B2,C2, D2 и.т.д., а в ячейку А2 подставляется текущая дата. Первая строчка это названия колонок, нужно чтобы скрипт работал начиная со строки 2

Автор - Ефгений
Дата добавления - 28.08.2022 в 08:56
Александр7034 Дата: Вторник, 14.02.2023, 15:46 | Сообщение № 15
Группа: Пользователи
Ранг: Участник
Сообщений: 58
Репутация: 0 ±
Замечаний: 40% ±

[vba]
Код
Private Sub Worksheet_Change(ByVal Target As Range)
    If Target.Column = 2 Then Target.Offset(, -1) = Date
End Sub
[/vba]
Использовал данный код из примера. Но он учитывает данные только внесённые пользователем. А вот, если в этой же колонке часть ячеек берет данные из других ячеек. Или же там вставлены связи на другую книгу. То изменения в другой книге, которые изменит данные в нашей книге, не вызовут фиксацию даты изменения. И подскажите как ограничить размеры колонки. Нужно что бы колонка даты и ячейки вносимых данных учитывалась только на 2-100 строках.


Сообщение отредактировал Serge_007 - Вторник, 14.02.2023, 16:02
 
Ответить
Сообщение
[vba]
Код
Private Sub Worksheet_Change(ByVal Target As Range)
    If Target.Column = 2 Then Target.Offset(, -1) = Date
End Sub
[/vba]
Использовал данный код из примера. Но он учитывает данные только внесённые пользователем. А вот, если в этой же колонке часть ячеек берет данные из других ячеек. Или же там вставлены связи на другую книгу. То изменения в другой книге, которые изменит данные в нашей книге, не вызовут фиксацию даты изменения. И подскажите как ограничить размеры колонки. Нужно что бы колонка даты и ячейки вносимых данных учитывалась только на 2-100 строках.

Автор - Александр7034
Дата добавления - 14.02.2023 в 15:46
_Boroda_ Дата: Вторник, 14.02.2023, 16:35 | Сообщение № 16
Группа: Модераторы
Ранг: Местный житель
Сообщений: 16666
Репутация: 6478 ±
Замечаний: 0% ±

2003; 2007; 2010; 2013 RUS
Цитата Александр7034, 14.02.2023 в 15:46, в сообщении № 15 ()
только на 2-100 строках.


[vba]
Код
If Not Intersect(Target, Range("B2:B100")) Is Nothing Then
[/vba]


Скажи мне, кудесник, любимец ба’гов...
Платная помощь:
Boroda_Excel@mail.ru
Яндекс-деньги: 41001632713405 | Webmoney: R289877159277; Z102172301748; E177867141995
 
Ответить
Сообщение
Цитата Александр7034, 14.02.2023 в 15:46, в сообщении № 15 ()
только на 2-100 строках.


[vba]
Код
If Not Intersect(Target, Range("B2:B100")) Is Nothing Then
[/vba]

Автор - _Boroda_
Дата добавления - 14.02.2023 в 16:35
Александр7034 Дата: Среда, 15.02.2023, 09:49 | Сообщение № 17
Группа: Пользователи
Ранг: Участник
Сообщений: 58
Репутация: 0 ±
Замечаний: 40% ±

[vba]
Код
Private Sub Worksheet_Change(ByVal Target As Range)  
If Not Intersect(Target, Range("T6:T106")) Is Nothing Then Target.Offset(, 2) = Date  
End Sub
[/vba]

Теперь код выглядит так. Изменения в колонке T6:T106 фиксируются текущей датой напротив в колонке V. Но остался вопрос как сделать, что бы зависимые ячейки из колонки T6:T106 которые меняют данные автоматически, тоже фиксировались датой изменения.


Сообщение отредактировал Александр7034 - Среда, 15.02.2023, 09:50
 
Ответить
Сообщение[vba]
Код
Private Sub Worksheet_Change(ByVal Target As Range)  
If Not Intersect(Target, Range("T6:T106")) Is Nothing Then Target.Offset(, 2) = Date  
End Sub
[/vba]

Теперь код выглядит так. Изменения в колонке T6:T106 фиксируются текущей датой напротив в колонке V. Но остался вопрос как сделать, что бы зависимые ячейки из колонки T6:T106 которые меняют данные автоматически, тоже фиксировались датой изменения.

Автор - Александр7034
Дата добавления - 15.02.2023 в 09:49
_Boroda_ Дата: Среда, 15.02.2023, 10:15 | Сообщение № 18
Группа: Модераторы
Ранг: Местный житель
Сообщений: 16666
Репутация: 6478 ±
Замечаний: 0% ±

2003; 2007; 2010; 2013 RUS
Александр7034, Для кода макроса существует специальный тег. Это кнопка # (она рядом с той, которую Вы используете (fx))
Поправил Ваш пост, видите, как все красиво сразу стало? ))))

Цитата Александр7034, 15.02.2023 в 09:49, в сообщении № 17 ()
меняют данные автоматически, тоже фиксировались датой изменения.

А вот это уже сложнее и напрямую зависит от самого файла.
Ну, как вариант для общего случая - на событие Worksheet_Calculate повесить фиксирование того, что сейчас в диапазоне (ar1), отмену операции (Undo), фиксирование того, что было (ar0), снова Undo - возврат отмены, сверку ar1 и ar0. Там, где разнятся - там и изменение. Но это не всегда прокатит и вообще не сильно хорошая это идея


Скажи мне, кудесник, любимец ба’гов...
Платная помощь:
Boroda_Excel@mail.ru
Яндекс-деньги: 41001632713405 | Webmoney: R289877159277; Z102172301748; E177867141995
 
Ответить
СообщениеАлександр7034, Для кода макроса существует специальный тег. Это кнопка # (она рядом с той, которую Вы используете (fx))
Поправил Ваш пост, видите, как все красиво сразу стало? ))))

Цитата Александр7034, 15.02.2023 в 09:49, в сообщении № 17 ()
меняют данные автоматически, тоже фиксировались датой изменения.

А вот это уже сложнее и напрямую зависит от самого файла.
Ну, как вариант для общего случая - на событие Worksheet_Calculate повесить фиксирование того, что сейчас в диапазоне (ar1), отмену операции (Undo), фиксирование того, что было (ar0), снова Undo - возврат отмены, сверку ar1 и ar0. Там, где разнятся - там и изменение. Но это не всегда прокатит и вообще не сильно хорошая это идея

Автор - _Boroda_
Дата добавления - 15.02.2023 в 10:15
Александр7034 Дата: Среда, 15.02.2023, 11:00 | Сообщение № 19
Группа: Пользователи
Ранг: Участник
Сообщений: 58
Репутация: 0 ±
Замечаний: 40% ±

Для кода макроса существует специальный тег. Это кнопка # (она рядом с той, которую Вы используете (fx))

Спасибо не знал про это.

А вот это уже сложнее и напрямую зависит от самого файла.

Изначально в ячейки колонки T6:T106 у меня прописана формула, которая использует связи на ячейки с другой книги. Связи обновляются не автоматически при открытии книги, а только после нажатия этой кнопки обновления связей.
[vba]
Код
Private Sub CommandButton1_Click()
ActiveWorkbook.UpdateLink Name:=ActiveWorkbook.LinkSources
End Sub
[/vba]
А часть данных вписывается вручную, формула в этих ячейках затирается и в будущем там только ручной ввод остается. Вот они нормально фиксируется. В моем случай можно как то приписать костыль? Достаточно на момент нажатия кнопки обновления связей, для ячеек где остались ссылки на другую книгу, просто поставить текущую дату?


Сообщение отредактировал Александр7034 - Среда, 15.02.2023, 11:01
 
Ответить
Сообщение
Для кода макроса существует специальный тег. Это кнопка # (она рядом с той, которую Вы используете (fx))

Спасибо не знал про это.

А вот это уже сложнее и напрямую зависит от самого файла.

Изначально в ячейки колонки T6:T106 у меня прописана формула, которая использует связи на ячейки с другой книги. Связи обновляются не автоматически при открытии книги, а только после нажатия этой кнопки обновления связей.
[vba]
Код
Private Sub CommandButton1_Click()
ActiveWorkbook.UpdateLink Name:=ActiveWorkbook.LinkSources
End Sub
[/vba]
А часть данных вписывается вручную, формула в этих ячейках затирается и в будущем там только ручной ввод остается. Вот они нормально фиксируется. В моем случай можно как то приписать костыль? Достаточно на момент нажатия кнопки обновления связей, для ячеек где остались ссылки на другую книгу, просто поставить текущую дату?

Автор - Александр7034
Дата добавления - 15.02.2023 в 11:00
_Boroda_ Дата: Среда, 15.02.2023, 11:08 | Сообщение № 20
Группа: Модераторы
Ранг: Местный житель
Сообщений: 16666
Репутация: 6478 ±
Замечаний: 0% ±

2003; 2007; 2010; 2013 RUS
Приблизительно так
[vba]
Код
Private Sub CommandButton1_Click()
    ar0_ = Range("T6:T106").Value
    ActiveWorkbook.UpdateLink Name:=ActiveWorkbook.LinkSources
    ar1_ = Range("T6:T106").Value
    ar_ = Range("V6:V106").Value
    For i = 1 To UBound(ar0_)
        If ar1_(i, 1) <> ar0_(i, 1) Then
            ar_(i, 1) = Date
        End If
    Next i
    Range("V6:V106").Value = ar_
End Sub
[/vba]


Скажи мне, кудесник, любимец ба’гов...
Платная помощь:
Boroda_Excel@mail.ru
Яндекс-деньги: 41001632713405 | Webmoney: R289877159277; Z102172301748; E177867141995
 
Ответить
СообщениеПриблизительно так
[vba]
Код
Private Sub CommandButton1_Click()
    ar0_ = Range("T6:T106").Value
    ActiveWorkbook.UpdateLink Name:=ActiveWorkbook.LinkSources
    ar1_ = Range("T6:T106").Value
    ar_ = Range("V6:V106").Value
    For i = 1 To UBound(ar0_)
        If ar1_(i, 1) <> ar0_(i, 1) Then
            ar_(i, 1) = Date
        End If
    Next i
    Range("V6:V106").Value = ar_
End Sub
[/vba]

Автор - _Boroda_
Дата добавления - 15.02.2023 в 11:08
Мир MS Excel » Вопросы и решения » Вопросы по Excel » Автозаполнение датой при записи в соседнюю ячейку (Формулы/Formulas)
  • Страница 1 из 2
  • 1
  • 2
  • »
Поиск:

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