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

Вход

Регистрация

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

 

= Мир MS Excel/Добавление даты и времени - Мир MS Excel

Старая форма входа
  • Страница 1 из 1
  • 1
Модератор форума: китин, _Boroda_  
Мир MS Excel » Вопросы и решения » Вопросы по VBA » Добавление даты и времени (Макросы/Sub)
Добавление даты и времени
kazityrs Дата: Среда, 04.06.2014, 13:06 | Сообщение № 1
Группа: Пользователи
Ранг: Новичок
Сообщений: 20
Репутация: 0 ±
Замечаний: 0% ±

Excel 2007
Добрый день! При добавлении сведений в ячейку, в соседней появляется дата и время. Используется следующее:
[vba]
Код
Private Sub Worksheet_Change(ByVal Target As Range)

For Each cell In Target
If Not Intersect(cell, Range("W9:W3000")) Is Nothing Then
With cell.Offset(0, -1)
.Value = Now
.EntireColumn.AutoFit
End With
End If
Next cell
End Sub
[/vba]
Подскажите, пожалуйста, что необходимо изменить или добавить, чтобы в ячейке отражалась только дата. На эту ячейку есть ссылка из другой таблицы, но значения не показывает. А, если удалить время и оставить дату, то значения показывает


Сообщение отредактировал kazityrs - Среда, 04.06.2014, 13:10
 
Ответить
СообщениеДобрый день! При добавлении сведений в ячейку, в соседней появляется дата и время. Используется следующее:
[vba]
Код
Private Sub Worksheet_Change(ByVal Target As Range)

For Each cell In Target
If Not Intersect(cell, Range("W9:W3000")) Is Nothing Then
With cell.Offset(0, -1)
.Value = Now
.EntireColumn.AutoFit
End With
End If
Next cell
End Sub
[/vba]
Подскажите, пожалуйста, что необходимо изменить или добавить, чтобы в ячейке отражалась только дата. На эту ячейку есть ссылка из другой таблицы, но значения не показывает. А, если удалить время и оставить дату, то значения показывает

Автор - kazityrs
Дата добавления - 04.06.2014 в 13:06
Pelena Дата: Среда, 04.06.2014, 13:15 | Сообщение № 2
Группа: Админы
Ранг: Местный житель
Сообщений: 19177
Репутация: 4417 ±
Замечаний: ±

Excel 365 & Mac Excel
Может быть, заменить Now на Date


"Черт возьми, Холмс! Но как??!!"
Ю-money 41001765434816
 
Ответить
СообщениеМожет быть, заменить Now на Date

Автор - Pelena
Дата добавления - 04.06.2014 в 13:15
_Boroda_ Дата: Среда, 04.06.2014, 13:26 | Сообщение № 3
Группа: Модераторы
Ранг: Местный житель
Сообщений: 16674
Репутация: 6479 ±
Замечаний: 0% ±

2003; 2007; 2010; 2013 RUS
или перепишите вашу ссылку из другой таблицы
Вместо =A1 напишите =ОТБР(A1)


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

Автор - _Boroda_
Дата добавления - 04.06.2014 в 13:26
kazityrs Дата: Среда, 04.06.2014, 13:27 | Сообщение № 4
Группа: Пользователи
Ранг: Новичок
Сообщений: 20
Репутация: 0 ±
Замечаний: 0% ±

Excel 2007
Спасибо, подошло.
 
Ответить
СообщениеСпасибо, подошло.

Автор - kazityrs
Дата добавления - 04.06.2014 в 13:27
gera_vip Дата: Среда, 18.06.2014, 15:23 | Сообщение № 5
Группа: Пользователи
Ранг: Прохожий
Сообщений: 6
Репутация: 0 ±
Замечаний: 0% ±

Excel 2010
А как можно модернизировать этот код, чтобы при очистке таблицы/удалении ячеек не записывалась дата?
 
Ответить
СообщениеА как можно модернизировать этот код, чтобы при очистке таблицы/удалении ячеек не записывалась дата?

Автор - gera_vip
Дата добавления - 18.06.2014 в 15:23
gera_vip Дата: Четверг, 19.06.2014, 10:11 | Сообщение № 6
Группа: Пользователи
Ранг: Прохожий
Сообщений: 6
Репутация: 0 ±
Замечаний: 0% ±

Excel 2010
[offtop]Может все-таки поможете? pray
 
Ответить
Сообщение[offtop]Может все-таки поможете? pray

Автор - gera_vip
Дата добавления - 19.06.2014 в 10:11
_Boroda_ Дата: Четверг, 19.06.2014, 10:36 | Сообщение № 7
Группа: Модераторы
Ранг: Местный житель
Сообщений: 16674
Репутация: 6479 ±
Замечаний: 0% ±

2003; 2007; 2010; 2013 RUS
Отчего ж, поможем.
[vba]
Код
Private Sub Worksheet_Change(ByVal Target As Range)
     For Each cell In Target
         If cell <> "" Then
             If Not Intersect(cell, Range("W9:W3000")) Is Nothing Then
                 With cell.Offset(0, -1)
                     .Value = Date
                     .EntireColumn.AutoFit
                 End With
             End If
         End If
     Next cell
End Sub
[/vba]


Скажи мне, кудесник, любимец ба’гов...
Платная помощь:
Boroda_Excel@mail.ru
Яндекс-деньги: 41001632713405 | Webmoney: R289877159277; Z102172301748; E177867141995
 
Ответить
СообщениеОтчего ж, поможем.
[vba]
Код
Private Sub Worksheet_Change(ByVal Target As Range)
     For Each cell In Target
         If cell <> "" Then
             If Not Intersect(cell, Range("W9:W3000")) Is Nothing Then
                 With cell.Offset(0, -1)
                     .Value = Date
                     .EntireColumn.AutoFit
                 End With
             End If
         End If
     Next cell
End Sub
[/vba]

Автор - _Boroda_
Дата добавления - 19.06.2014 в 10:36
gera_vip Дата: Четверг, 19.06.2014, 11:30 | Сообщение № 8
Группа: Пользователи
Ранг: Прохожий
Сообщений: 6
Репутация: 0 ±
Замечаний: 0% ±

Excel 2010
_Boroda_, супер!!! Спасибо большое!!! hands respect
 
Ответить
Сообщение_Boroda_, супер!!! Спасибо большое!!! hands respect

Автор - gera_vip
Дата добавления - 19.06.2014 в 11:30
systema404 Дата: Пятница, 20.06.2014, 10:13 | Сообщение № 9
Группа: Пользователи
Ранг: Прохожий
Сообщений: 6
Репутация: 0 ±
Замечаний: 0% ±

Excel 2010
Спасибо, способ хорошо работает, а можно сделать так чтоб дата которая там появляется была запрещена для редактирования пользователю, а то хитрецов много.
 
Ответить
СообщениеСпасибо, способ хорошо работает, а можно сделать так чтоб дата которая там появляется была запрещена для редактирования пользователю, а то хитрецов много.

Автор - systema404
Дата добавления - 20.06.2014 в 10:13
_Boroda_ Дата: Пятница, 20.06.2014, 11:47 | Сообщение № 10
Группа: Модераторы
Ранг: Местный житель
Сообщений: 16674
Репутация: 6479 ±
Замечаний: 0% ±

2003; 2007; 2010; 2013 RUS
чтоб дата которая там появляется была запрещена для редактирования пользователю

тогда так
[vba]
Код
Private Sub Worksheet_Change(ByVal Target As Range)
     For Each cell In Target
         If cell <> "" Then
             If Not Intersect(cell, Range("W9:W3000")) Is Nothing Then
                 With cell.Offset(0, -1)
                     .Value = Date
                     .EntireColumn.AutoFit
                 End With
             End If
         End If
     Next cell
End Sub

Private Sub Worksheet_SelectionChange(ByVal Target As Range)
     For Each cell In Target
         If cell.Column = 22 Then
             If cell <> "" Then
                 Application.EnableEvents = 0
                 cell.Offset(, 1).Select
                 Application.EnableEvents = 1
                 Exit Sub
             End If
         End If
     Next cell
End Sub
[/vba]
К сообщению приложен файл: 77754.xls (33.5 Kb)


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

тогда так
[vba]
Код
Private Sub Worksheet_Change(ByVal Target As Range)
     For Each cell In Target
         If cell <> "" Then
             If Not Intersect(cell, Range("W9:W3000")) Is Nothing Then
                 With cell.Offset(0, -1)
                     .Value = Date
                     .EntireColumn.AutoFit
                 End With
             End If
         End If
     Next cell
End Sub

Private Sub Worksheet_SelectionChange(ByVal Target As Range)
     For Each cell In Target
         If cell.Column = 22 Then
             If cell <> "" Then
                 Application.EnableEvents = 0
                 cell.Offset(, 1).Select
                 Application.EnableEvents = 1
                 Exit Sub
             End If
         End If
     Next cell
End Sub
[/vba]

Автор - _Boroda_
Дата добавления - 20.06.2014 в 11:47
RAN Дата: Пятница, 20.06.2014, 12:23 | Сообщение № 11
Группа: Друзья
Ранг: Экселист
Сообщений: 5660
Репутация: 1163 ±
Замечаний: 0% ±

2010
Нет, Саш, твой код копипастом на раз обходится.
Этот обойти сложнее.
[vba]
Код
Private Sub Worksheet_Change(ByVal Target As Range)
     If Not Intersect(Target, Range("W9:W3000")) Is Nothing Then
         If Target <> "" Then
             With Target.Offset(0, -1)
                 .Value = Date
                 .EntireColumn.AutoFit
             End With
         End If
     End If
     If Not Intersect(Selection, Columns(22)) Is Nothing Then
         Application.EnableEvents = 0
         Application.Undo
         Application.EnableEvents = 1
     End If
End Sub
[/vba]


Быть или не быть, вот в чем загвоздка!
 
Ответить
СообщениеНет, Саш, твой код копипастом на раз обходится.
Этот обойти сложнее.
[vba]
Код
Private Sub Worksheet_Change(ByVal Target As Range)
     If Not Intersect(Target, Range("W9:W3000")) Is Nothing Then
         If Target <> "" Then
             With Target.Offset(0, -1)
                 .Value = Date
                 .EntireColumn.AutoFit
             End With
         End If
     End If
     If Not Intersect(Selection, Columns(22)) Is Nothing Then
         Application.EnableEvents = 0
         Application.Undo
         Application.EnableEvents = 1
     End If
End Sub
[/vba]

Автор - RAN
Дата добавления - 20.06.2014 в 12:23
_Boroda_ Дата: Пятница, 20.06.2014, 12:56 | Сообщение № 12
Группа: Модераторы
Ранг: Местный житель
Сообщений: 16674
Репутация: 6479 ±
Замечаний: 0% ±

2003; 2007; 2010; 2013 RUS
код копипастом на раз обходится
Согласен, так лучше. Только зря ты в первой части цикл по теджету убрал. если заводить несколько ячеек сразу, то ошибку выдает


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

Автор - _Boroda_
Дата добавления - 20.06.2014 в 12:56
systema404 Дата: Пятница, 20.06.2014, 13:04 | Сообщение № 13
Группа: Пользователи
Ранг: Прохожий
Сообщений: 6
Репутация: 0 ±
Замечаний: 0% ±

Excel 2010
А под мой код подделеть могли бы пожалуйста.
Мне надо чтоб колонку R была не изменяема.

[vba]
Код
Private Sub Worksheet_Change(ByVal Target As Range)
For Each cell In Target  
If Not Intersect(cell, Range("B6:Q4368")) Is Nothing Then
With Range("R" & cell.Row)
.Value = Now
.EntireColumn.AutoFit
End With
End If
Next cell
End Sub
[/vba]


Сообщение отредактировал systema404 - Пятница, 20.06.2014, 13:05
 
Ответить
СообщениеА под мой код подделеть могли бы пожалуйста.
Мне надо чтоб колонку R была не изменяема.

[vba]
Код
Private Sub Worksheet_Change(ByVal Target As Range)
For Each cell In Target  
If Not Intersect(cell, Range("B6:Q4368")) Is Nothing Then
With Range("R" & cell.Row)
.Value = Now
.EntireColumn.AutoFit
End With
End If
Next cell
End Sub
[/vba]

Автор - systema404
Дата добавления - 20.06.2014 в 13:04
Alex_ST Дата: Понедельник, 23.06.2014, 08:59 | Сообщение № 14
Группа: Друзья
Ранг: Участник клуба
Сообщений: 3206
Репутация: 609 ±
Замечаний: 0% ±

2003
Код[vba]
Код
With Range("R" & cell.Row)
.Value = Now
[/vba]и требование
чтоб колонку R была не изменяема
вещи несовместимые.
Если не хотите менять в колонке R, то просто не прописывайте её в коде.



С уважением,
Алексей
MS Excel 2003 - the best!!!
 
Ответить
СообщениеКод[vba]
Код
With Range("R" & cell.Row)
.Value = Now
[/vba]и требование
чтоб колонку R была не изменяема
вещи несовместимые.
Если не хотите менять в колонке R, то просто не прописывайте её в коде.

Автор - Alex_ST
Дата добавления - 23.06.2014 в 08:59
systema404 Дата: Понедельник, 23.06.2014, 09:12 | Сообщение № 15
Группа: Пользователи
Ранг: Прохожий
Сообщений: 6
Репутация: 0 ±
Замечаний: 0% ±

Excel 2010
Если не хотите менять в колонке R, то просто не прописывайте её в коде.


Если ее не прописать в коде, то тогда как нахначить чтоб в ней появлялась дата )) замкнутый круг. Получается что нет решений для такого ?
 
Ответить
Сообщение
Если не хотите менять в колонке R, то просто не прописывайте её в коде.


Если ее не прописать в коде, то тогда как нахначить чтоб в ней появлялась дата )) замкнутый круг. Получается что нет решений для такого ?

Автор - systema404
Дата добавления - 23.06.2014 в 09:12
_Boroda_ Дата: Понедельник, 23.06.2014, 09:21 | Сообщение № 16
Группа: Модераторы
Ранг: Местный житель
Сообщений: 16674
Репутация: 6479 ±
Замечаний: 0% ±

2003; 2007; 2010; 2013 RUS
Практически то же самое, что и в кодf[ выше. Nолько столбцы поменять/
Короче, симбиоз из двух кодов. Вроде так.
[vba]
Код
Private Sub Worksheet_Change(ByVal Target As Range)
       For Each cell In Target
           If cell <> "" Then
               If Not Intersect(cell, Range("B6:Q4368")) Is Nothing Then
                   With Range("R" & cell.Row)
                       .Value = Date
                       .EntireColumn.AutoFit
                   End With
               End If
           End If
       Next cell
        If Not Intersect(Selection, Range("R6:R4368")) Is Nothing Then
            Application.EnableEvents = 0
            Application.Undo
            Application.EnableEvents = 1
        End If
End Sub
[/vba]
подправил косяк в 09:27.


Скажи мне, кудесник, любимец ба’гов...
Платная помощь:
Boroda_Excel@mail.ru
Яндекс-деньги: 41001632713405 | Webmoney: R289877159277; Z102172301748; E177867141995
 
Ответить
СообщениеПрактически то же самое, что и в кодf[ выше. Nолько столбцы поменять/
Короче, симбиоз из двух кодов. Вроде так.
[vba]
Код
Private Sub Worksheet_Change(ByVal Target As Range)
       For Each cell In Target
           If cell <> "" Then
               If Not Intersect(cell, Range("B6:Q4368")) Is Nothing Then
                   With Range("R" & cell.Row)
                       .Value = Date
                       .EntireColumn.AutoFit
                   End With
               End If
           End If
       Next cell
        If Not Intersect(Selection, Range("R6:R4368")) Is Nothing Then
            Application.EnableEvents = 0
            Application.Undo
            Application.EnableEvents = 1
        End If
End Sub
[/vba]
подправил косяк в 09:27.

Автор - _Boroda_
Дата добавления - 23.06.2014 в 09:21
Alex_ST Дата: Понедельник, 23.06.2014, 09:28 | Сообщение № 17
Группа: Друзья
Ранг: Участник клуба
Сообщений: 3206
Репутация: 609 ±
Замечаний: 0% ±

2003
Что-то я не понимаю, наверное...
Из Вашего вопроса следует, что Вы хотите чтобы в ячейках столбца R фиксировалась дата, но при этом хотите чтобы столбец R не изменялся?
Как Вы себе это представляете?



С уважением,
Алексей
MS Excel 2003 - the best!!!
 
Ответить
СообщениеЧто-то я не понимаю, наверное...
Из Вашего вопроса следует, что Вы хотите чтобы в ячейках столбца R фиксировалась дата, но при этом хотите чтобы столбец R не изменялся?
Как Вы себе это представляете?

Автор - Alex_ST
Дата добавления - 23.06.2014 в 09:28
systema404 Дата: Понедельник, 23.06.2014, 09:29 | Сообщение № 18
Группа: Пользователи
Ранг: Прохожий
Сообщений: 6
Репутация: 0 ±
Замечаний: 0% ±

Excel 2010
Практически то же самое, что и в коде выше. только столбцы поменять


Сделал по вашему коду, да R кононка не меняется, но при изменении строки стал ругаться на строчку в коде
Код
With Range("R" & cell.Row)
 
Ответить
Сообщение
Практически то же самое, что и в коде выше. только столбцы поменять


Сделал по вашему коду, да R кононка не меняется, но при изменении строки стал ругаться на строчку в коде
Код
With Range("R" & cell.Row)

Автор - systema404
Дата добавления - 23.06.2014 в 09:29
systema404 Дата: Понедельник, 23.06.2014, 09:31 | Сообщение № 19
Группа: Пользователи
Ранг: Прохожий
Сообщений: 6
Репутация: 0 ±
Замечаний: 0% ±

Excel 2010
подправил косяк в 09:27.


Во!!! то что надо. Работает !! Огромное спасибо
 
Ответить
Сообщение
подправил косяк в 09:27.


Во!!! то что надо. Работает !! Огромное спасибо

Автор - systema404
Дата добавления - 23.06.2014 в 09:31
Alex_ST Дата: Понедельник, 23.06.2014, 09:37 | Сообщение № 20
Группа: Друзья
Ранг: Участник клуба
Сообщений: 3206
Репутация: 609 ±
Замечаний: 0% ±

2003
А... Понял наконец-то о чём речь!
Не просто не изменялось, а нельзя было изменить в ручную на листе!



С уважением,
Алексей
MS Excel 2003 - the best!!!
 
Ответить
СообщениеА... Понял наконец-то о чём речь!
Не просто не изменялось, а нельзя было изменить в ручную на листе!

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

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