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

Вход

Регистрация

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

 

= Мир MS Excel/автоматическая дата в соседнем столбце - Мир MS Excel

Регистрация · Логин: · Пароль: · · Забыли пароль?
  • Страница 1 из 1
  • 1
Модератор форума: _Boroda_, Manyasha, SLAVICK, китин  
Мир MS Excel » Вопросы и решения » Вопросы по VBA » автоматическая дата в соседнем столбце (Макросы/Sub)
автоматическая дата в соседнем столбце
Ramilka Дата: Понедельник, 12.08.2019, 11:03 | Сообщение № 1
Группа: Пользователи
Ранг: Новичок
Сообщений: 13
Репутация: 0 ±
Замечаний: 0% ±

Excel 2016
Имеется такой код. Когда записываю в столбец B в столбце A пишется дата и время. Нужно сделать так, чтобы писало только дату. Нужно исправить именно в коде. Формат даты менял, но при поиске через фильтр он работает криво, не определяет по датам.

[vba]
Код
Private Sub Worksheet_Change(ByVal Target As Range)
     
    For Each cell In Target   'проходим по всем измененным ячейкам
       If Not Intersect(cell, Range("B2:B1000")) Is Nothing Then  'если изменененная ячейка попадает в диапазон A2:A100
            With cell.Offset(0, -1)         'вводим в соседнюю справа ячейку дату
               .Value = Now
               .EntireColumn.AutoFit  'выполняем автоподбор ширины для столбца B, чтобы дата умещалась в ячейке
            End With
       End If
    Next cell
End Sub
[/vba]
 
Ответить
СообщениеИмеется такой код. Когда записываю в столбец B в столбце A пишется дата и время. Нужно сделать так, чтобы писало только дату. Нужно исправить именно в коде. Формат даты менял, но при поиске через фильтр он работает криво, не определяет по датам.

[vba]
Код
Private Sub Worksheet_Change(ByVal Target As Range)
     
    For Each cell In Target   'проходим по всем измененным ячейкам
       If Not Intersect(cell, Range("B2:B1000")) Is Nothing Then  'если изменененная ячейка попадает в диапазон A2:A100
            With cell.Offset(0, -1)         'вводим в соседнюю справа ячейку дату
               .Value = Now
               .EntireColumn.AutoFit  'выполняем автоподбор ширины для столбца B, чтобы дата умещалась в ячейке
            End With
       End If
    Next cell
End Sub
[/vba]

Автор - Ramilka
Дата добавления - 12.08.2019 в 11:03
_Boroda_ Дата: Понедельник, 12.08.2019, 11:14 | Сообщение № 2
Группа: Модераторы
Ранг: Местный житель
Сообщений: 15572
Репутация: 6075 ±
Замечаний: 0% ±

2003; 2007; 2010; 2013 RUS
Now
исправьте на
Date

* Кнопка fx - для тегов формул, а для макросов кнопка #


Скажи мне, кудесник, любимец ба’гов...
Платная помощь:
Boroda_Excel@mail.ru
Яндекс-деньги: 41001632713405 | Webmoney: R289877159277; Z102172301748; E177867141995
 
Ответить
СообщениеNow
исправьте на
Date

* Кнопка fx - для тегов формул, а для макросов кнопка #

Автор - _Boroda_
Дата добавления - 12.08.2019 в 11:14
Ramilka Дата: Понедельник, 12.08.2019, 16:32 | Сообщение № 3
Группа: Пользователи
Ранг: Новичок
Сообщений: 13
Репутация: 0 ±
Замечаний: 0% ±

Excel 2016
_Boroda_,
Если ячейка B1 была заполнена и соответственно автоматически дата в столбце A1 поставилась, то как сделать, чтобы потом при изменении ячейки B1, дата оставалась прежней?
 
Ответить
Сообщение_Boroda_,
Если ячейка B1 была заполнена и соответственно автоматически дата в столбце A1 поставилась, то как сделать, чтобы потом при изменении ячейки B1, дата оставалась прежней?

Автор - Ramilka
Дата добавления - 12.08.2019 в 16:32
_Boroda_ Дата: Понедельник, 12.08.2019, 16:53 | Сообщение № 4
Группа: Модераторы
Ранг: Местный житель
Сообщений: 15572
Репутация: 6075 ±
Замечаний: 0% ±

2003; 2007; 2010; 2013 RUS
Так нужно?
[vba]
Код
Private Sub Worksheet_Change(ByVal Target As Range)
    Set d0_ = Intersect(Target, Range("B2:B1000")) 'd0 - пересечение изменяемого и столбца В
    If Not d0_ Is Nothing Then 'если оно не пусто
        For Each d_ In d0_ 'цикл по каждой ячейке этого пересечения
            With d_.Offset(0, -1) 'для ячейки слева
                If .Value = "" Then 'если она не пустая
                    .Value = Date 'вставить туда дату
                    .EntireColumn.AutoFit 'расширить столбце
                End If
            End With
        Next d_
    End If
End Sub
[/vba]


Скажи мне, кудесник, любимец ба’гов...
Платная помощь:
Boroda_Excel@mail.ru
Яндекс-деньги: 41001632713405 | Webmoney: R289877159277; Z102172301748; E177867141995
 
Ответить
СообщениеТак нужно?
[vba]
Код
Private Sub Worksheet_Change(ByVal Target As Range)
    Set d0_ = Intersect(Target, Range("B2:B1000")) 'd0 - пересечение изменяемого и столбца В
    If Not d0_ Is Nothing Then 'если оно не пусто
        For Each d_ In d0_ 'цикл по каждой ячейке этого пересечения
            With d_.Offset(0, -1) 'для ячейки слева
                If .Value = "" Then 'если она не пустая
                    .Value = Date 'вставить туда дату
                    .EntireColumn.AutoFit 'расширить столбце
                End If
            End With
        Next d_
    End If
End Sub
[/vba]

Автор - _Boroda_
Дата добавления - 12.08.2019 в 16:53
Мир MS Excel » Вопросы и решения » Вопросы по VBA » автоматическая дата в соседнем столбце (Макросы/Sub)
  • Страница 1 из 1
  • 1
Поиск:

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