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

Вход

Регистрация

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

 

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

  • Страница 1 из 1
  • 1
Модератор форума: китин, _Boroda_, DrMini  
Автоматическое заполнение даты при заполнении ячейки текстом
Elloe Дата: Четверг, 15.02.2018, 11:42 | Сообщение № 1
Группа: Пользователи
Ранг: Прохожий
Сообщений: 3
Репутация: 0 ±
Замечаний: 0% ±

Excel 2010
Добавляет текущую дату в ячейку из "А" столбца при редактировании "С" столбца

[vba]
Код
Private Sub Worksheet_Change(ByVal Target As Range)
If Target.Cells.Count > 1 Then Exit Sub
If Not Intersect(Target, Range("C2:C9999")) Is Nothing Then
With Target(1, -1)
.Value = Now
.EntireColumn.AutoFit
End With
End If
End Sub
[/vba]


Сообщение отредактировал Elloe - Пятница, 16.02.2018, 11:36
 
Ответить
СообщениеДобавляет текущую дату в ячейку из "А" столбца при редактировании "С" столбца

[vba]
Код
Private Sub Worksheet_Change(ByVal Target As Range)
If Target.Cells.Count > 1 Then Exit Sub
If Not Intersect(Target, Range("C2:C9999")) Is Nothing Then
With Target(1, -1)
.Value = Now
.EntireColumn.AutoFit
End With
End If
End Sub
[/vba]

Автор - Elloe
Дата добавления - 15.02.2018 в 11:42
китин Дата: Четверг, 15.02.2018, 12:24 | Сообщение № 2
Группа: Модераторы
Ранг: Экселист
Сообщений: 7034
Репутация: 1079 ±
Замечаний: 0% ±

Excel 2007;2010;2016
читаем Правила форума
благодарю


Не судите очень строго:я пытаюсь научиться
ЯД 41001877306852
 
Ответить
Сообщениечитаем Правила форума
благодарю

Автор - китин
Дата добавления - 15.02.2018 в 12:24
Anis625 Дата: Четверг, 15.02.2018, 18:32 | Сообщение № 3
Группа: Заблокированные
Ранг: Ветеран
Сообщений: 674
Репутация: 31 ±
Замечаний: 20% ±

Excel 2013
Скорее всего это макрос должен быть если хотите чтобы дата потом не менялась. В остальных случаях формулы динамические.

Или как вариант можете после заполнения ячейки А1 в ячейке А2 записана формула

Код
=ЕСЛИ(A1<>"";СЕГОДНЯ();"")


потом вы копируете ячейку А2 и вставляете как значение.
 
Ответить
СообщениеСкорее всего это макрос должен быть если хотите чтобы дата потом не менялась. В остальных случаях формулы динамические.

Или как вариант можете после заполнения ячейки А1 в ячейке А2 записана формула

Код
=ЕСЛИ(A1<>"";СЕГОДНЯ();"")


потом вы копируете ячейку А2 и вставляете как значение.

Автор - Anis625
Дата добавления - 15.02.2018 в 18:32
nexbsp Дата: Четверг, 10.01.2019, 12:18 | Сообщение № 4
Группа: Пользователи
Ранг: Прохожий
Сообщений: 4
Репутация: 0 ±
Замечаний: 0% ±

Excel 2016
Уважаемые знатоки, подскажите пожалуйста, что нужно заменить в этом макросе, что бы дата ставилась только по определенному значению в ячейке? Например, в водим в ячейку A1 "В работе" при этом в ячейке A2 ничего не происходит, а если в ячейку A1 вводим "завершено", то в ячейке A2 ставится текущая дата и время.
 
Ответить
СообщениеУважаемые знатоки, подскажите пожалуйста, что нужно заменить в этом макросе, что бы дата ставилась только по определенному значению в ячейке? Например, в водим в ячейку A1 "В работе" при этом в ячейке A2 ничего не происходит, а если в ячейку A1 вводим "завершено", то в ячейке A2 ставится текущая дата и время.

Автор - nexbsp
Дата добавления - 10.01.2019 в 12:18
vikttur Дата: Четверг, 10.01.2019, 12:52 | Сообщение № 5
Группа: Друзья
Ранг: Участник клуба
Сообщений: 2941
Репутация: 526 ±
Замечаний: 0% ±

в первой строке меняем, во второй получаем дату-время
[vba]
Код
Private Sub Worksheet_Change(ByVal Target As Range)
    If Target.Cells.Count > 1 Then Exit Sub
    
    If Not Intersect(Target, Range("A1:D1")) Is Nothing Then
        If Target.Value = "завершено" Then
            Application.EnableEvents = False
            Target.Offset(1, 0).Value = Now
            Application.EnableEvents = True
        End If
    End If
End Sub
[/vba]


Сообщение отредактировал vikttur - Четверг, 10.01.2019, 12:53
 
Ответить
Сообщениев первой строке меняем, во второй получаем дату-время
[vba]
Код
Private Sub Worksheet_Change(ByVal Target As Range)
    If Target.Cells.Count > 1 Then Exit Sub
    
    If Not Intersect(Target, Range("A1:D1")) Is Nothing Then
        If Target.Value = "завершено" Then
            Application.EnableEvents = False
            Target.Offset(1, 0).Value = Now
            Application.EnableEvents = True
        End If
    End If
End Sub
[/vba]

Автор - vikttur
Дата добавления - 10.01.2019 в 12:52
nexbsp Дата: Четверг, 10.01.2019, 14:50 | Сообщение № 6
Группа: Пользователи
Ранг: Прохожий
Сообщений: 4
Репутация: 0 ±
Замечаний: 0% ±

Excel 2016
Спасибо, большое за столь быстрый ответ, пойду пробовать)
 
Ответить
СообщениеСпасибо, большое за столь быстрый ответ, пойду пробовать)

Автор - nexbsp
Дата добавления - 10.01.2019 в 14:50
nexbsp Дата: Четверг, 10.01.2019, 15:13 | Сообщение № 7
Группа: Пользователи
Ранг: Прохожий
Сообщений: 4
Репутация: 0 ±
Замечаний: 0% ±

Excel 2016
Скажите пожалуйста, а если условий несколько, например "завершено" и/или "приостановлено" и т.п., какие строчки и куда нужно добавить? Или может как-то перечислить все возможные условия через ; или or?
 
Ответить
СообщениеСкажите пожалуйста, а если условий несколько, например "завершено" и/или "приостановлено" и т.п., какие строчки и куда нужно добавить? Или может как-то перечислить все возможные условия через ; или or?

Автор - nexbsp
Дата добавления - 10.01.2019 в 15:13
китин Дата: Четверг, 10.01.2019, 15:37 | Сообщение № 8
Группа: Модераторы
Ранг: Экселист
Сообщений: 7034
Репутация: 1079 ±
Замечаний: 0% ±

Excel 2007;2010;2016
можно и через Or
[vba]
Код
If Target.Value = "завершено"  Or If Target.Value = "приостановлено" Then
[/vba]


Не судите очень строго:я пытаюсь научиться
ЯД 41001877306852
 
Ответить
Сообщениеможно и через Or
[vba]
Код
If Target.Value = "завершено"  Or If Target.Value = "приостановлено" Then
[/vba]

Автор - китин
Дата добавления - 10.01.2019 в 15:37
nexbsp Дата: Четверг, 10.01.2019, 17:30 | Сообщение № 9
Группа: Пользователи
Ранг: Прохожий
Сообщений: 4
Репутация: 0 ±
Замечаний: 0% ±

Excel 2016
Спасибо большое! Вот такой у меня в общей сложности получился код и он прекрасно работает:

[vba]
Код
Private Sub Worksheet_Change(ByVal Target As Range)
    If Target.Cells.Count > 1 Then Exit Sub
        If Not Intersect(Target, Range("H3:H99999")) Is Nothing Then
        If Target.Value = "завершено" Or Target.Value = "отправлено" Or Target.Value = "в ожидании" Or Target.Value = "запрос" Then
            Application.EnableEvents = False
            Target.Offset(0, -1).Value = Now
            Application.EnableEvents = True
        End If
    End If
[/vba]


Сообщение отредактировал nexbsp - Четверг, 10.01.2019, 17:31
 
Ответить
СообщениеСпасибо большое! Вот такой у меня в общей сложности получился код и он прекрасно работает:

[vba]
Код
Private Sub Worksheet_Change(ByVal Target As Range)
    If Target.Cells.Count > 1 Then Exit Sub
        If Not Intersect(Target, Range("H3:H99999")) Is Nothing Then
        If Target.Value = "завершено" Or Target.Value = "отправлено" Or Target.Value = "в ожидании" Or Target.Value = "запрос" Then
            Application.EnableEvents = False
            Target.Offset(0, -1).Value = Now
            Application.EnableEvents = True
        End If
    End If
[/vba]

Автор - nexbsp
Дата добавления - 10.01.2019 в 17:30
  • Страница 1 из 1
  • 1
Поиск:

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