Excel дата изменения строки

 

Tweaker

Пользователь

Сообщений: 3
Регистрация: 05.06.2019

#1

05.06.2019 15:13:38

Добрый день.
Подскажите код макроса, чтобы при заполнении/изменении значений любой из ячеек в данном ряду таблицы автоматом указывалась текущая дата в отдельной ячейке этого ряда. Ну то есть дата последнего изменения. Нашел что-то похожее, но там только дата изменений одной ячейки, а нужно по диапазону. Понимаю, что скорее всего это делается элементарно, но мои знания 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

Прикрепленные файлы

  • Пример.xlsx (8.45 КБ)

 

Юрий М

Модератор

Сообщений: 60570
Регистрация: 14.09.2012

Контакты см. в профиле

#2

05.06.2019 15:20:14

Код
Private Sub Worksheet_Change(ByVal Target As Range)
    If Target.Cells.Count > 1 Then Exit Sub
    If Not Intersect(Target, Range("A2:D5")) Is Nothing Then
        Application.EnableEvents = False
        Cells(Target.Row, 5) = Date
    End If
    Application.EnableEvents = True
End Sub
 

Tweaker

Пользователь

Сообщений: 3
Регистрация: 05.06.2019

Юрий М, спасибо. Не ожидал столь оперативного ответа. Все работает именно так как нужно.
А можно как-то сделать чтобы при первом внесении информации в одну из ячеек строки или вставки новой строки дата фиксировалась? И после при внесении изменений уже не менялась. Ну то есть в примере одна ячейка — это дата первичного ввода информации, значение которой неизменно, а вторая ячейка (код который Вы написали выше и тут все понятно) — это дата изменений в любой из ячеек строки, и эта дата может меняться.

 

Юрий М

Модератор

Сообщений: 60570
Регистрация: 14.09.2012

Контакты см. в профиле

#4

05.06.2019 16:19:15

Как зафиксировать дату изменения, обсуждалось неоднократно.

Код
Private Sub Worksheet_Change(ByVal Target As Range)
    If Target.Cells.Count > 1 Then Exit Sub
    If Not Intersect(Target, Range("A2:D5")) Is Nothing Then
        Application.EnableEvents = False
        If Cells(Target.Row, 5) = "" Then
            Cells(Target.Row, 5) = Date
        Else
            Cells(Target.Row, 6) = Date
        End If
    End If
    Application.EnableEvents = True
End Sub
 

Tweaker

Пользователь

Сообщений: 3
Регистрация: 05.06.2019

Юрий М, в данном случае получается идет проверка на изменение конкретной ячейки, а не всей строки таблицы. То есть пользователь может сначала заполнить хоть 1 ячейку и «дата внесения» появится и зафиксируется. Дальше пользователь может зайти и заполнить 2-ую ячейку в той же строке и это не будет считаться изменением. И только когда пользователь изменит данные в уже ранее заполненной ячейке, тогда уже появится «дата изменения». Это не совсем то, но хоть что-то.
Еще раз большое Вам спасибо за помощь.

 

Юрий М

Модератор

Сообщений: 60570
Регистрация: 14.09.2012

Контакты см. в профиле

#6

05.06.2019 18:26:31

Цитата
Tweaker написал:
Это не совсем то

А как нужно?

 

art163

Пользователь

Сообщений: 9
Регистрация: 28.12.2019

#7

28.12.2019 15:33:50

Доброго времени , подскажите , можно ли этот код немного изменить , нужно чтобы он отслеживал изменение в ячейке которое вводиться не вручную , а получается в результате вычисления некой(любой) формулы.

Код
 If Target.Cells.Count > 1 Then Exit Sub 
    If Not Intersect(Target, Range("A2:D5")) Is Nothing Then
        Application.EnableEvents = False
        If Cells(Target.Row, 5) = "" Then
            Cells(Target.Row, 5) = Date
        Else
            Cells(Target.Row, 6) = Date
        End If
    End If
    Application.EnableEvents = True
End Sub

Изменено: art16328.12.2019 21:12:20

ArtistJoker

0 / 0 / 0

Регистрация: 18.11.2015

Сообщений: 2

1

18.11.2015, 17:43. Показов 9164. Ответов 11

Метки нет (Все метки)


Студворк — интернет-сервис помощи студентам

Привет, форумчане!

Очень прошу помочь. На работе заполняю отчёт, в котором вручную приходится вставлять дату изменений строки(не просто ячейки) с информацией по клиенту. Искал в сети помощь, нашёл только вот такой код (внесение даты изменений соседней ячейки):
———————————————————————————————————————

Visual Basic
1
2
3
4
5
6
7
8
9
10
11
Private Sub Worksheet_Change(ByVal Target As Range)
     
    For Each cell In Target   'проходим по всем измененным ячейкам
       If Not Intersect(cell, Range("A2:A100")) Is Nothing Then  'если изменененная ячейка попадает в диапазон A2:A100
            With cell.Offset(0, 1)         'вводим в соседнюю справа ячейку дату
               .Value = Now
               .EntireColumn.AutoFit  'выполняем автоподбор ширины для столбца B, чтобы дата умещалась в ячейке
            End With
       End If
    Next cell
End Sub

———————————————————————————————————————-
Может быть в этом коде можно внести изменения, чтобы при изменении строки автоматически вставлялась дата в первую ячейку строки. Как это сделать?

Заранее благодарен!

Вложения

Тип файла: xlsx Пример отчёта.xlsx (10.1 Кб, 39 просмотров)



0



Vlad999

3827 / 2254 / 751

Регистрация: 02.11.2012

Сообщений: 5,928

18.11.2015, 17:58

2

Лучший ответ Сообщение было отмечено ArtistJoker как решение

Решение

Visual Basic
1
2
3
4
5
6
7
8
9
10
11
12
13
Private Sub Worksheet_Change(ByVal Target As Range)
Dim cell As Range
Application.EnableEvents = False
For Each cell In Target 'проходим по всем измененным ячейкам
  If Not Intersect(cell, Range("B2:H100")) Is Nothing Then 'если изменененная ячейка попадает в диапазон A2:A100
     With Cells(cell.Row, 1) 'вводим в первый столбец текущей строки ячейку дату
     .Value = Now
     .EntireColumn.AutoFit 'выполняем автоподбор ширины для столбца B, чтобы дата умещалась в ячейке
     End With
   End If
Next cell
Application.EnableEvents = True
End Sub



1



pashulka

4131 / 2235 / 940

Регистрация: 01.12.2010

Сообщений: 4,624

18.11.2015, 18:59

3

Альтернативный вариант (на основании выложенного примера)

Visual Basic
1
2
3
4
5
6
7
8
9
10
Private Sub Worksheet_Change(ByVal Target As Range)
    If Target.Row > 4 Then
       Application.EnableEvents = False
       With Intersect(Target.EntireRow, [A:A])
            .Value = Date
            .Columns.AutoFit
       End With: [H1] = Now
       Application.EnableEvents = True
    End If
End Sub

или

Visual Basic
1
2
3
4
5
6
7
8
Private Sub Worksheet_Change(ByVal Target As Range)
    If Target.Row > 4 Then
       Application.EnableEvents = False
       Intersect(Target.EntireRow, [A:A]) = Date
       [H1] = Now: Columns(1).AutoFit
       Application.EnableEvents = True
    End If
End Sub



1



0 / 0 / 0

Регистрация: 18.11.2015

Сообщений: 2

23.11.2015, 17:10

 [ТС]

4

Спасибо, огромное! Всё работает как надо!



0



0 / 0 / 0

Регистрация: 12.02.2020

Сообщений: 23

07.07.2020, 20:58

5

Подскажите как подкорректировать для моего случая:
На первом листе книги имеется диапазон ячеек например А2:V20. В каждую ячейку которого вносятся числовые значения.
Нужно зеркально в те же ячейки на втором листе книги вносить дату и время изменения значения ячеек на первом листе книги.



0



4131 / 2235 / 940

Регистрация: 01.12.2010

Сообщений: 4,624

07.07.2020, 21:00

6

gpetrv, Скажите чей вариант Вы выбрали ?



0



0 / 0 / 0

Регистрация: 12.02.2020

Сообщений: 23

07.07.2020, 22:38

7

pashulka, Мне все равно чей вариант, лишь бы рабочий……и универсальный (изменять диапазоны ячеек)



0



pashulka

4131 / 2235 / 940

Регистрация: 01.12.2010

Сообщений: 4,624

07.07.2020, 22:40

8

Next — следующий лист.

Visual Basic
1
2
3
4
5
6
7
8
9
10
11
Private Sub Worksheet_Change(ByVal r As Range)
   Set r = Intersect(r, [A2:V20])
   If r Is Nothing Then Exit Sub
   
   Application.EnableEvents = False
   With Me.Next.Range(r.Address)
        .Value = Now
        .Columns.AutoFit
   End With
   Application.EnableEvents = True
End Sub



1



0 / 0 / 0

Регистрация: 12.02.2020

Сообщений: 23

07.07.2020, 22:51

9

pashulka, А на первом листе?



0



4131 / 2235 / 940

Регистрация: 01.12.2010

Сообщений: 4,624

07.07.2020, 23:18

10

gpetrv, В модуле первого листа — событие Worksheet_Change. Тогда на следующем — будет выводиться дата+время изменения данных ячеек диапазона A2:V20

Если месторасположение второго рабочего листа, в дальнейшем, может меняться, то можно использовать имя этого листа или кодовое(программное) имя. Т.е. вместо Me.Next написать Worksheets(«Лист2») или Лист2 . Разумеется, имена нужно указать свои.



1



0 / 0 / 0

Регистрация: 12.02.2020

Сообщений: 23

29.07.2020, 21:21

11

pashulka, не могу скомпоновать со своим кодом. Не силен…. Помогите..



0



pashulka

4131 / 2235 / 940

Регистрация: 01.12.2010

Сообщений: 4,624

29.07.2020, 22:24

12

Это тоже мой код, но там всего один рабочий лист. Если в реальности появится второй, то между первой и второй

перерывчик небольшой

строкой просто добавьте

Visual Basic
1
2
3
4
5
6
    Application.EnableEvents = False '1
    With Me.Next.Range(r.Address)
        .Value = Now
        .Columns.AutoFit
    End With
    For Each c In r '2



1



IT_Exp

Эксперт

87844 / 49110 / 22898

Регистрация: 17.06.2006

Сообщений: 92,604

29.07.2020, 22:24

12

Получить и вставить время создания и время последнего изменения в ячейки

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

Получите время создания и время последнего изменения в Excel с помощью команды Info

Получите время создания и время последнего изменения в Excel с помощью функции дополнительных свойств

Вставьте созданное время и время последнего изменения в ячейки Excel с кодом VBA

Вставьте время создания и время последнего изменения в ячейки/верхний/нижний колонтитул с помощью Kutools for Excel хорошая идея3


стрелка синий правый пузырь Получите время создания и время последнего изменения в Excel с помощью команды Info

Мы можем узнать точное время создания и время последнего изменения текущей книги в представлении за кулисами Microsoft Excel 2010/2013.

Нажмите Файл > Инфо, а в правой части представления за кулисами отображается Связанные даты Информация. Под Связанные даты title, в нем указано время последнего изменения, время создания и время последней печати. См. Следующий снимок экрана:

Примечание: Этот способ доступен только в Microsoft Excel 2010/2013. Это недопустимо в Excel 2007.


стрелка синий правый пузырьПолучите время создания и время последнего изменения в Excel с помощью функции дополнительных свойств

Фактически, мы можем получить как время создания, так и время последнего изменения текущей книги в диалоговом окне «Свойства документа».
Шаг 1: Открой Дополнительные свойства диалоговое окно:

В Excel 2007 щелкните значок Офисы кнопка> Подготовить > ПредложенияИ Свойства документа панель будет отображаться под панелью инструментов, щелкните Свойства документа > Дополнительные свойства, смотрите скриншоты:

В Excel 2010/2013 щелкните значок Файл > Инфо > Предложения > Дополнительные свойства.

документ-вставка-измененное время-4-4

Шаг 2: В Дополнительные свойства В диалоговом окне вы увидите время создания и время последнего изменения на вкладке Статистика. См. Следующий снимок экрана:

документ-вставка-измененное время-4-4


стрелка синий правый пузырь Вставьте созданное время и время последнего изменения в ячейки Excel с кодом VBA

Следующие макросы VBA помогут вам напрямую вставить в ячейки время создания и время последнего изменения текущей информации книги.

Вставьте время создания и время последнего изменения в Excel

Шаг 1: Удерживайте ALT + F11 ключи, и он открывает окно Microsoft Visual Basic для приложений.

Шаг 2: Нажмите Вставить >> Модулии вставьте следующий макрос в окно модуля.

Код VBA: вставьте время создания и время последнего изменения в Excel

Sub Workbook_Open()
Range("A1").Value = Format(ThisWorkbook.BuiltinDocumentProperties("Creation Date"), "short date")
Range("A2").Value = Format(ThisWorkbook.BuiltinDocumentProperties("Last Save Time"), "short date")
End Sub

Шаг 3:Нажмите F5 ключ для запуска этого макроса. И тогда дата создания и дата последнего изменения будут вставлены в ячейку A1 и ячейку A2 отдельно.

Внимание: вы можете изменить ячейку назначения в VB в соответствии с вашими потребностями.

Вставить время последнего изменения книги в Excel

Шаг 1: Удерживайте ALT + F11 ключи, и он открывает окно Microsoft Visual Basic для приложений.

Шаг 2: Нажмите Вставить >> Модулии вставьте следующий макрос в окно модуля.

Public Function ModDate()
ModDate = Format(FileDateTime(ThisWorkbook.FullName), "m/d/yy h:n ampm")
End Function

Шаг 3: Затем сохраните и закройте этот код и вернитесь на рабочий лист, в пустой ячейке введите формулу = ModDate (), и нажмите Enter ключ. Затем он вставляет в ячейку время последнего изменения.

-2

Вставить созданное время книги в Excel

Шаг 1: Удерживайте ALT + F11 ключи, и он открывает окно Microsoft Visual Basic для приложений.

Шаг 2: Нажмите Вставить >> Модулии вставьте следующий макрос в окно модуля.

Function CreateDate() As Date
CreateDate = ActiveWorkbook.BuiltinDocumentProperties("Creation Date")
End Function

Шаг 3: Сохраните и закройте этот код, вернитесь на лист, в пустой ячейке введите формулу = CreateDate (), и нажмите Enter key. и созданная дата будет вставлена ​​в ячейку, как показано на следующих снимках экрана:

-2

Примечание: Если ваша ячейка не является форматом даты, она может отображать странное число. Просто отформатируйте эту ячейку как Время формат, он будет отображаться как обычная дата.


стрелка синий правый пузырь Вставьте время создания и время последнего изменения в ячейки/верхний/нижний колонтитул с помощью Kutools for Excel

Могу я представить вам удобный инструмент —Kutools for Excel какие из более чем 300 полезных функций могут повысить эффективность вашей работы? С этими Вставить информацию о книге Вы можете быстро вставить путь к книге, имя книги / рабочего листа, имя пользователя или время создания и время последнего изменения в ячейки, верхний или нижний колонтитул.

После бесплатная установка Kutools for Excel, пожалуйста, сделайте следующее:

1. Нажмите Кутулс Плюс > Workbook > Вставить информацию о книге. Смотрите скриншот:
doc последнее изменение name2

2. Затем в Вставить информацию о книге диалоговом окне, проверьте информацию, которую вы хотите вставить из раздела информации, затем перейдите, чтобы указать место, в которое вы хотите вставить, вы можете выбрать ячейки, нижний колонтитул (левый нижний колонтитул, центральный нижний колонтитул, правый нижний колонтитул) или заголовок (левый верхний колонтитул, центральный верхний колонтитул, правый заголовок). Смотрите скриншот:
вставка документа создана, время изменения 1

3. Нажмите Ok, и проверяемая вами информация была вставлена ​​в указанное вами место.

Наконечник. Если вы хотите получить бесплатную пробную версию функции «Вставить информацию о книге», пожалуйста, перейдите к бесплатной загрузке Kutools for Excel сначала, а затем перейдите к применению операции в соответствии с вышеуказанными шагами.

стрелка синий правый пузырь Вставить информацию о книге


Лучшие инструменты для работы в офисе

Kutools for Excel Решит большинство ваших проблем и повысит вашу производительность на 80%

  • Снова использовать: Быстро вставить сложные формулы, диаграммы и все, что вы использовали раньше; Зашифровать ячейки с паролем; Создать список рассылки и отправлять электронные письма …
  • Бар Супер Формулы (легко редактировать несколько строк текста и формул); Макет для чтения (легко читать и редактировать большое количество ячеек); Вставить в отфильтрованный диапазон
  • Объединить ячейки / строки / столбцы без потери данных; Разделить содержимое ячеек; Объединить повторяющиеся строки / столбцы… Предотвращение дублирования ячеек; Сравнить диапазоны
  • Выберите Дубликат или Уникальный Ряды; Выбрать пустые строки (все ячейки пустые); Супер находка и нечеткая находка во многих рабочих тетрадях; Случайный выбор …
  • Точная копия Несколько ячеек без изменения ссылки на формулу; Автоматическое создание ссылок на несколько листов; Вставить пули, Флажки и многое другое …
  • Извлечь текст, Добавить текст, Удалить по позиции, Удалить пробел; Создание и печать промежуточных итогов по страницам; Преобразование содержимого ячеек в комментарии
  • Суперфильтр (сохранять и применять схемы фильтров к другим листам); Расширенная сортировка по месяцам / неделям / дням, периодичности и др .; Специальный фильтр жирным, курсивом …
  • Комбинируйте книги и рабочие листы; Объединить таблицы на основе ключевых столбцов; Разделить данные на несколько листов; Пакетное преобразование xls, xlsx и PDF
  • Более 300 мощных функций. Поддерживает Office/Excel 2007-2021 и 365. Поддерживает все языки. Простое развертывание на вашем предприятии или в организации. Полнофункциональная 30-дневная бесплатная пробная версия. 60-дневная гарантия возврата денег.

вкладка kte 201905


Вкладка Office: интерфейс с вкладками в Office и упрощение работы

  • Включение редактирования и чтения с вкладками в Word, Excel, PowerPoint, Издатель, доступ, Visio и проект.
  • Открывайте и создавайте несколько документов на новых вкладках одного окна, а не в новых окнах.
  • Повышает вашу продуктивность на 50% и сокращает количество щелчков мышью на сотни каждый день!

офисный дно

Отображение даты и времени изменения ячейки

ArkaIIIa

Дата: Четверг, 05.06.2014, 16:34 |
Сообщение № 1

Группа: Проверенные

Ранг: Ветеран

Сообщений: 894


Репутация:

115

±

Замечаний:
0% ±


2010

Господа,

В приложенном файле есть готовый макрос, который показывает в столбце B даты и время изменения соответствующих строк столбца A.
Помогите, пожалуйста, преобразовать его таким образом, чтобы он просматривал столбцы, а не строки. Т.е., чтобы при изменении ячейки A1 — в ячейке A5 отображалась дата и время изменения, при изменении ячейки B1 — в B5 и т.д.

К сообщению приложен файл:

__01.xls
(40.5 Kb)

 

Ответить

Karbofox

Дата: Четверг, 05.06.2014, 16:42 |
Сообщение № 2

Группа: Проверенные

Ранг: Участник

Сообщений: 69


Репутация:

16

±

Замечаний:
0% ±


Excel 2010

Это имелось в виду?
[vba]

Код

Private Sub Worksheet_Change(ByVal Target As Range)
If Not Intersect(Target, Range(«A1:IV1»)) Is Nothing Then
Application.EnableEvents = False
With Target.Offset(4, 0)
If Target <> Old_Value Then
.Value = Now
.EntireColumn.AutoFit
End If
End With
End If
Application.EnableEvents = True
End Sub

Private Sub Worksheet_SelectionChange(ByVal Target As Range)
If Not Intersect(Target, Range(«A1:IV1»)) Is Nothing Then
Old_Value = Target.Value
End If
End Sub

[/vba]

Сообщение отредактировал KarbofoxЧетверг, 05.06.2014, 16:43

 

Ответить

ArkaIIIa

Дата: Четверг, 05.06.2014, 16:44 |
Сообщение № 3

Группа: Проверенные

Ранг: Ветеран

Сообщений: 894


Репутация:

115

±

Замечаний:
0% ±


2010

Karbofox
Да, именно это, спасибо большое!

 

Ответить

Rioran

Дата: Четверг, 05.06.2014, 16:53 |
Сообщение № 4

Группа: Авторы

Ранг: Ветеран

Сообщений: 903


Репутация:

290

±

Замечаний:
0% ±


Excel 2013

ArkaIIIa, здравствуйте.

Посмотрите на такую переделку. Принцип:

1). Поменял EntireColumn.AutoFit на EntireRow.Autofit
2). Поменял каждый Range с A1:A100… на B1:AA4 в обоих макросах листа
3). Поменял Target.Offset(0, 1) на Target.Offset(5 — ActiveCell.Row, 0)

***

По скорости ответа меня опередили =) однако замечу, что в моём решении будет проставляться время, если изменена любая из 4-х строк выше ячейки времени.

К сообщению приложен файл:

one_way.xls
(47.5 Kb)

Сообщение отредактировал RioranЧетверг, 05.06.2014, 16:55

 

Ответить

ArkaIIIa

Дата: Четверг, 05.06.2014, 17:13 |
Сообщение № 5

Группа: Проверенные

Ранг: Ветеран

Сообщений: 894


Репутация:

115

±

Замечаний:
0% ±


2010

Rioran
Очень здорово. Но возник вопрос. Почему эти макросы (Ваш и Karbofox`а) работают только во вновь созданных книгах?
При переносе на ранее созданную — почему то они не работают :-(

 

Ответить

Rioran

Дата: Четверг, 05.06.2014, 17:20 |
Сообщение № 6

Группа: Авторы

Ранг: Ветеран

Сообщений: 903


Репутация:

290

±

Замечаний:
0% ±


Excel 2013

ArkaIIIa, у них нет никакого якоря за книгой. В какой лист их вставите — там и будут работать, лишь бы Range, с которым работаем, на самом листе находился где надо.

***

Попробовал продублировать макросы внутри листа два раза — выдает ошибку. Значит, на одном листе в один и тот же момент должны быть только один Worksheet_Change и Worksheet_SelectionChange

Сообщение отредактировал RioranЧетверг, 05.06.2014, 17:22

 

Ответить

ArkaIIIa

Дата: Четверг, 05.06.2014, 17:28 |
Сообщение № 7

Группа: Проверенные

Ранг: Ветеран

Сообщений: 894


Репутация:

115

±

Замечаний:
0% ±


2010

Rioran
Проблема вот в чем. У меня при помощи макроса, который прописан в модуле, из ячеек A1:A20 (условно) копируются и вставляются в ячейки B1:B20 (условно) данные.
Нужно, чтобы в B21 прописывалась дата и время вставки. Вот если руками менять данные в строке, на которую ссылается Ваш или Karbofox`а макрос — то всё ок, дата и время прописываются ниже. А если эти данные вставляются при помощи макроса — то VBA ругается.

Сообщение отредактировал ArkaIIIaЧетверг, 05.06.2014, 17:32

 

Ответить

ArkaIIIa

Дата: Четверг, 05.06.2014, 17:30 |
Сообщение № 8

Группа: Проверенные

Ранг: Ветеран

Сообщений: 894


Репутация:

115

±

Замечаний:
0% ±


2010

Rioran
Я думал, что макросу все равно, каким образом вносятся изменения в ячейку, и важен сам факт изменения. Но, выходит, что это не так. Почему-то конфликтуют макросы.

Сообщение отредактировал ArkaIIIaЧетверг, 05.06.2014, 17:30

 

Ответить

ArkaIIIa

Дата: Четверг, 05.06.2014, 17:36 |
Сообщение № 9

Группа: Проверенные

Ранг: Ветеран

Сообщений: 894


Репутация:

115

±

Замечаний:
0% ±


2010

Rioran
В общем, если на живом примере, то вот это в модуле:

[vba]

Код

Sub Update_()
     Path_1 = «F:STALE_APP_REPORT.xls»
     iFileDateTime_1 = FileDateTime(Path_1)
     Cells(27, 11) = iFileDateTime_1
     ActiveWorkbook.UpdateLink Name:= _
         «F:STALE_APP_REPORT.xls», Type:=xlExcelLinks
     Dim r As Range
     Set r = Sheets(7).Rows(2).Find(Sheets(7).[B1].Text, , xlValues, xlWhole)
     If Not r Is Nothing Then
         Sheets(7).[B3:B140].Copy
         r.Offset(1).PasteSpecial Paste:=xlPasteValues
     End If
End Sub

[/vba]

Т.е.
1) Обновляются связи с исходником
2) Прописывается время обновления исходника
3) Данные из ячеек B3:B140 листа7 копируются в соответствующие ячейки на листе 7 (смотрит время обновления исходника и вставляет в столбец, где указано такое же время)
4) Нужно, чтобы в 141 строке тех столбцов, куда вставляются данные, указывалась дата и время этой вставки.

 

Ответить

Rioran

Дата: Четверг, 05.06.2014, 17:41 |
Сообщение № 10

Группа: Авторы

Ранг: Ветеран

Сообщений: 903


Репутация:

290

±

Замечаний:
0% ±


Excel 2013

ArkaIIIa, Вам нужно чтобы одновременно менялось сразу два значения?

В следующем примере макросы уже, возможно, лишнее и разумнее было бы воспользоваться поиском максимального значения, но машина запущена и сделано макросом, посмотрите =)

 

Ответить

RAN

Дата: Четверг, 05.06.2014, 17:46 |
Сообщение № 11

Группа: Друзья

Ранг: Экселист

Сообщений: 5645


то это в файле.
Ваша
[vba][/vba]
сама по себе, а ошибка возникает совсем в другом месте.

 

Ответить

Rioran

Дата: Четверг, 05.06.2014, 17:46 |
Сообщение № 12

Группа: Авторы

Ранг: Ветеран

Сообщений: 903


Репутация:

290

±

Замечаний:
0% ±


Excel 2013

ArkaIIIa, понял, реальная задача оказалась другой. Подумаем.

 

Ответить

ArkaIIIa

Дата: Пятница, 06.06.2014, 08:11 |
Сообщение № 13

Группа: Проверенные

Ранг: Ветеран

Сообщений: 894


Репутация:

115

±

Замечаний:
0% ±


2010

RAN
Рабочий файл — очень объемный, и там много конфиденциальной информации. Его очень сложно будет почистить, чтобы выложить для примера :-(

Rioran
Разве вставка новых данных в ячейку (т.е. замещение одних данных другими) — не является её изменением?
Мне важно, чтобы макрос вставлял дату и время обновления любой ячейки, в рамках указанного диапазона в одном столбце. Т.е. у меня данные из B3:B140, вставляются в C3:С140, D3:D140 и т.д.
Макрос уважаемого Karbofox`а корректно работает, если данные не копипастятся, а забиваются вручную. Вы могли бы помочь адаптировать его именно под вставляемые данные?
Либо добавить что-то в эту часть макроса:
[vba]

Код

Dim r As Range
      Set r = Sheets(7).Rows(2).Find(Sheets(7).[B1].Text, , xlValues, xlWhole)
      If Not r Is Nothing Then
          Sheets(7).[B3:B140].Copy
          r.Offset(1).PasteSpecial Paste:=xlPasteValues
      End If

[/vba]
, чтобы после вставки значений, строчкой ниже указывалась дата/время вставки?

Извиняюсь, что, возможно, как-то не так изначально сформулировал задачу и большое спасибо за попытку помочь.

Сообщение отредактировал ArkaIIIaПятница, 06.06.2014, 08:11

 

Ответить

ArkaIIIa

Дата: Пятница, 06.06.2014, 08:57 |
Сообщение № 14

Группа: Проверенные

Ранг: Ветеран

Сообщений: 894


Репутация:

115

±

Замечаний:
0% ±


2010

Попробовал смоделировать ситуацию на новом пустом файле.
Использовал макрос:
[vba]

Код

Private Sub Worksheet_Change(ByVal Target As Range)
If Not Intersect(Target, Range(«A1:IV1»)) Is Nothing Then
Application.EnableEvents = False
With Target.Offset(4, 0)
If Target <> Old_Value Then
.Value = Now
.EntireColumn.AutoFit
End If
End With
End If
Application.EnableEvents = True
End Sub
Private Sub Worksheet_SelectionChange(ByVal Target As Range)
If Not Intersect(Target, Range(«A1:IV1»)) Is Nothing Then
Old_Value = Target.Value
End If
End Sub

[/vba]
В случае, если копируется-вставляется 1 ячейка — все в порядке.
В случае, если копируется-вставляется более 1 ячейки — появляется меседжбокс с текстом «Run-time Error `13`: Type mismatch». И после этого в данной книге макрос перестает работать, подсвечивая желтым часть кода:
[vba]

Код

If Target <> Old_Value Then

[/vba]

 

Ответить

Rioran

Дата: Пятница, 06.06.2014, 10:38 |
Сообщение № 15

Группа: Авторы

Ранг: Ветеран

Сообщений: 903


Репутация:

290

±

Замечаний:
0% ±


Excel 2013

ArkaIIIa, я попробовал кардинально другой подход.

В области А1:J10 (отгорожено серым в файле) вставляйте оптом и смотрите, как меняются подписи на серой панели.

[vba]

Код

Option Explicit
Public Stopper As Boolean

Private Sub Worksheet_Change(ByVal Target As Range)

Application.ScreenUpdating = False

Dim rngX As Range
Dim X As Long

Set rngX = Selection

If Not Intersect(rngX, Range(«a1:j10»)) Is Nothing And Stopper = False Then
     Stopper = True
     For X = 1 To rngX.Columns.Count
         rngX.Cells(1, X).Offset(11 — rngX.Cells(1, X).Row).Value = Now
     Next X
     Stopper = False
End If

Application.ScreenUpdating = True

End Sub

[/vba]

 

Ответить

ArkaIIIa

Дата: Пятница, 06.06.2014, 11:03 |
Сообщение № 16

Группа: Проверенные

Ранг: Ветеран

Сообщений: 894


Репутация:

115

±

Замечаний:
0% ±


2010

Rioran
Если руками копирую — вставляю — всё хорошо. Если использую макрос вставки, вот этот:
[vba]

Код

    Dim r As Range
     Set r = Sheets(7).Rows(2).Find(Sheets(7).[B1].Text, , xlValues, xlWhole)
     If Not r Is Nothing Then
         Sheets(7).[B3:B140].Copy
         r.Offset(1).PasteSpecial Paste:=xlPasteValues
     End If

[/vba]
, то выдает ошибку Run-time Error 1004: Method `Intersect` of object`_Global`failed
Т.е. я само-собой меняю указанный в Вашем макросе диапазон «a1:j10» на свой «c28:aj140» и строку с 11 на 141, и при вставке руками — все нормально работает. А вот, когда юзаю макрос вставки — беда.

 

Ответить

ArkaIIIa

Дата: Пятница, 06.06.2014, 11:14 |
Сообщение № 17

Группа: Проверенные

Ранг: Ветеран

Сообщений: 894


Репутация:

115

±

Замечаний:
0% ±


2010

Rioran
Нет, Вы знаете, видимо конфликт не с макросом вставки. Попробовал сделать на новом файле — все нормально работает. Сейчас более расширенный пример попробую сделать и закинуть.

 

Ответить

Rioran

Дата: Пятница, 06.06.2014, 11:24 |
Сообщение № 18

Группа: Авторы

Ранг: Ветеран

Сообщений: 903


Репутация:

290

±

Замечаний:
0% ±


Excel 2013


Всё дело в том, что в моём макросе простановка изменений по столбцу привязана к выделению. Просто симитируйте выделение мышью, как например здесь:

[vba]

Код

Sub Data_Transition_2()

Range(«m1:N3»).Copy
Range(«F2»).Select
Worksheets(«Tryal»).Paste

End Sub

[/vba]
Файл с кнопкой для теста прилагаю.

К сообщению приложен файл:

2747659.xlsm
(22.3 Kb)

Сообщение отредактировал RioranПятница, 06.06.2014, 11:25

 

Ответить

ArkaIIIa

Дата: Пятница, 06.06.2014, 11:43 |
Сообщение № 19

Группа: Проверенные

Ранг: Ветеран

Сообщений: 894


Репутация:

115

±

Замечаний:
0% ±


2010

Rioran
Прикладываю файл. Голова кругом идет, не знаю, с чем связана ошибка :-(
Попробую еще раз по порядку описать ситуацию на примере файла из приложения.

— Есть файл (файл из приложения), в котороый по связям из другого файла подтягиваются данные. Файл исходник обновляется автоматически каждые полчаса. Таким образом, при каждом обновлении файла из примера раз в полчаса — он подтягивает обновленные данные.
— Есть 2 макроса, засунутых в один модуль:
Первый:
[vba]

Код

Sub Update_()
      Path_1 = «F:STALE_APP_REPORT.xls»
      iFileDateTime_1 = FileDateTime(Path_1)
      Cells(27, 11) = iFileDateTime_1
      ActiveWorkbook.UpdateLink Name:= _
          «F:STALE_APP_REPORT.xls», Type:=xlExcelLinks

[/vba]
Прописывает в ячейку K27 время последнего обновления файла-исходника, откуда тянутся данные в файл-пример.
Второй:
[vba]

Код

Dim r As Range
      Set r = Sheets(7).Rows(2).Find(Sheets(7).[B1].Text, , xlValues, xlWhole)
      If Not r Is Nothing Then
          Sheets(7).[B3:B140].Copy
          r.Offset(1).PasteSpecial Paste:=xlPasteValues
      End If
End Sub

[/vba]
Берет данные из ячеек столбца B3:B140, смотрит значение времени, указанное в ячейке B1, находит в строке 2 аналогичное время, и вставляет скопированные данные.
— Нужен третий макрос, который указывал бы строчкой ниже вставленных данных (т.е. 141-ой), дату и время этой вставки.

Ваш макрос (условно назовем его Макрос № 3) работает:
— Если копировать-вставлять руками
— Если копировать-вставлять макросом вставки (№2, из описания выше)
— Но вот если задействовано все 3 макроса — то возникает сообщение: Run-time Error 1004: Method `Intersect` of object`_Global`failed

Я не понимаю, на каком этапе возникает конфликт :-(

К сообщению приложен файл:

11.xlsm
(24.4 Kb)

Сообщение отредактировал ArkaIIIaПятница, 06.06.2014, 11:44

 

Ответить

RAN

Дата: Пятница, 06.06.2014, 12:19 |
Сообщение № 20

Группа: Друзья

Ранг: Экселист

Сообщений: 5645

Ваш файлик как бы поломатый.

К сообщению приложен файл:

3474154.jpg
(18.9 Kb)

Сообщение отредактировал RANПятница, 06.06.2014, 12:21

 

Ответить

Добрый день,

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

Подскажите пожалуйста, как это сделать?
Спасибо за помощь!


Каков вопрос…

Private Sub Worksheet_Change(ByVal Target As Range)
    Application.EnableEvents = 0
    Target.Offset(, 1) = Date
    Application.EnableEvents = -1
End Sub

Я, как всегда, чертовски адекватен… Email: pilipnikop@yandex.ua WM Z206653985942, R334086032478, U238399322728, E332314026771


Цитата: KuklP от 26.02.2012, 09:07
Каков вопрос…
Private Sub Worksheet_Change(ByVal Target As Range)
   Application.EnableEvents = 0
   Target.Offset(, 1) = Date
   Application.EnableEvents = -1
End Sub

Спасибо за отклик!
Прошу прощения за возможно глупый вопрос (с макросами мало опыта)
Я копирую код, создаю module. Сохраняю книгу с поддержкой макросов.
Далее в окне макросов ничего не появляется. Если убрать privat из кода, то всё ОК, но макрос не работает (cant execute… пишет)
Как работать с кодом, поскажите!
Спасибо!)


Это надо скопировать в модуль листа, а не в отдельный модуль.

Я, как всегда, чертовски адекватен… Email: pilipnikop@yandex.ua WM Z206653985942, R334086032478, U238399322728, E332314026771


Цитата: KuklP от 26.02.2012, 09:07
Private Sub Worksheet_Change(ByVal Target As Range)
    Application.EnableEvents = 0
    Target.Offset(, 1) = Date
    Application.EnableEvents = -1
End Sub

Здравствуйте Сергей.
Подскажете пожалуйста, как (в данном примере) определить, изменилось ли содержание ячейки после её активации?  Есть ли такой код?
Ибо я использую скрытый доп. столбец для сравнения.  :)
Спасибо.

Может и я на что сгожусь … Если сгодился, можете меня по+благодарить+.


Привет, Васильич. Не понял вопроса. Этот код срабатывает именно на изменение ячейки. Если речь о том, что вошли в режим редактирования и ничего не изменили, то:
Private Sub Worksheet_Change(ByVal Target As Range)
    Dim a
    Application.EnableEvents = 0
    a = Target.Value
    Application.Undo
    If Target <> a Then
        Target.Offset(, 1) = Date
        Target = a
    End If
    Application.EnableEvents = -1
End Sub

Я, как всегда, чертовски адекватен… Email: pilipnikop@yandex.ua WM Z206653985942, R334086032478, U238399322728, E332314026771


Спасибо записал.
Все решает строчка
Application.Undo

Может и я на что сгожусь … Если сгодился, можете меня по+благодарить+.


Приложение Microsoft Excel программируется так, чтобы облегчить ввод дат. Например, 12/2 меняется на 2-дек. Это очень плохо, когда вы вводите что-то, которое вы не хотите менять на дату. К сожалению, отключить эту функцию невозможно. Но есть и другие способы обойти.

Предформатируйте ячейки, в которых нужно вводить числа в виде текста. В этом случае Excel не будет пытаться изменить данные, вводимые в даты.

Если вы хотите ввести несколько чисел, вы можете запретить Excel изменить их на даты, введя:

Пробел перед вводом числа. После нажатия клавиши Ввод пространство останется в ячейке. (См. заметки)

Апостроф (‘) перед вводом числа, например, ‘ 11-53 или ‘ 1/47. После нажатия клавиши Ввод этот апостроф не отображается в ячейке.

Ноль и пробел перед вводом дробной части, например 1/2 или 3/4, чтобы они не переменялись на 2 января или 4 марта, например. Введите 0 1/2 или 0 3/4. После нажатия клавиши Ввод ноль не сохраняется в ячейке, а ячейка становится десятичным числом.

Выделите ячейки , в которые необходимо ввести числа.

Чтобы открыть Формат ячеек, нажмите клавиши CTRL + 1 (1 в строке номеров выше ключа QWERTY).

Выделите тексти нажмите кнопку ОК.

Выберите ячейки, в которые необходимо ввести числа.

Щелкните Главная > Числовой формат > Текст.

Если вы планируете использовать функции поиска для данных, мы рекомендуем использовать апостроф вместо места для ввода данных. Такие функции, как ПОИСКПОЗ и ВПР, не учитывают апострофы при вычислении результатов.

Если число в ячейке выровнено по левому краю, обычно это означает, что оно не отформатировано как число.

При введении в ячейку числа с буквой «е», например 1e9, оно автоматически преобразуется в научное число: 1,00E+09. Чтобы избежать этого, введите перед числом апостроф: ‘1e9

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

Дополнительные сведения

Вы всегда можете задать вопрос специалисту Excel Tech Community, попросить помощи в сообществе Answers community, а также предложить новую функцию или улучшение на веб-сайте Excel User Voice.

Примечание: Эта страница переведена автоматически, поэтому ее текст может содержать неточности и грамматические ошибки. Для нас важно, чтобы эта статья была вам полезна. Была ли информация полезной? Для удобства также приводим ссылку на оригинал (на английском языке).

Для Вашего случая:
Правый клик по столбцу с датами — Меню Формат — Условное форматирование — тип: «Значение», условие: «Меньше», данные: «01.04.09» — Формат.. . -задаете цвет (зеленый) — «А также. » — тип: «Значение», условие: «Между», данные: «01.04.09» и «01.05.09» — Формат.. . -задаете цвет (желтый) — «А также. » — «Значение» — «Больше» — «01.05.09» — Формат.. . -цвет (красный) .

Во многих фирмах отдельное внимание уделяется датам, выпадающим после определенного пройденного периода. С помощью условного форматирования можно легко составить отчет «После периода» на котором выделены пройденные даты.

Пример представлен ниже на рисунке в виде отчета, в котором даты за более чем 90 дней от текущей даты выделенные другим цветом заливки.

Чтобы составить аналогичный отчет с таким же автоматическим форматированием ячеек по условию выполните следующее:

  1. Выделите целевой диапазон ячеек (в данном примере A3:A8) и выберите инструмент: «ГЛАВНАЯ»-«Условное форматирование»-«Создать правило». В результате чего появится окно для внесения всех необходимых настроек инструмента:
  2. В появившемся окне из верхней части где находится список опций выберите пункт: «Использовать формулу для определения форматируемых ячеек». Данная опция позволяет нам использовать собственные формулы для составления сложны правил условного форматирования. Формула должна содержать логическое выражение и соответственно возвращать логическое значение для каждой ячейки из выделенного диапазона. Если будет возвращено – ИНСТИНА, тогда к этой ячейке будет применятся правило и присваивается новый формат, который предварительно настроен этим же инструментом.
  3. В полю ввода формул введите логическое выражение представленное на этом шаге. Данная формула проверяет значение ячеек: будет ли их дата выпадать после 90 дней, пройденных от сегодняшнего дня. Отсчитывается от даты, указанной в целевой ячейке A3 выделенного просматриваемого диапазона. Если да (ИСТИНА) – сразу же применяется условное форматирование.
  • Нажмите на кнопку «Формат» для вызова окна, в которому будут доступные все опции оформления формата: цвет фона и границы, размер шрифта и т.п. После указания желаемых настроек для оформления стиля форматирования нажмите кнопку ОК на всех открытых окнах, чтобы подтвердить все настройки и получить готовый результат.
  • А в результате выделились все даты актуальность которых превышает 90 дней.

    Автоматическая дата в Excel.

    ​Смотрите также​ изменится значение в​ при открытии при​End Sub​ 5 строки, что​ справа ячейку дату​ фиксирует дату и​​ Осталось настроить строку.​ любую из ячеек​ ​ ?​​Коду придал следующий​ управлением правами доступа​End If​​ и попробуйте ввести​ ​ .Value = Now​​ преобразование в даты​
    ​Вставить даты в​Дату в Excel​ С1, и только​ запросе отключать макросы​Vvod_dannyh​ вставка номера недели,​ .Value = Now​
    ​ время вводимой информации.​Я неделю искал​ этих столбцов.​Можно ли как-то​
    ​ вид:​ ​ было плохо.​
    ​Next​
    ​ что-нибудь в диапазон​ .EntireColumn.AutoFit ‘выполняем автоподбор​ в Excel Online​Excel с определенным периодом​ можно установить несколькими​ потом будет вычисляться​ или нет ответят​в​
    ​ что даты?​ .EntireColumn.AutoFit ‘выполняем автоподбор​ в соседней ячейке​ решение в сети.​Пример таблицы (​ решить данную проблему​​200?’200px’:»+(this.scrollHeight+5)+’px’);»>​Как в 2007/2010​Application.EnableEvents = True​ А2:А100. В соседней​ ширины для столбца​
    ​ одним из таких​
    ​ формулой.​
    ​ способами — вставить​ А1, а следовательно​ нет.​Vvod_dannyh.Columns(3)​+ если в​ ширины для столбца​ для каждого из​AlexM​ столбцы со значениями:​ ?​Private Sub Worksheet_Change(ByVal​​ — не знаю​Application.ScreenUpdating = True​ ячейке тут же​ B, чтобы дата​ способов:​
    ​Например, нам нужно​ ​ текущую дату, заполнить​​ ничего не изменится.​
    ​Serge_007​
    ​- зачем, если​ третьем столбе значение​ B, чтобы дата​ 10 столбцов таблицы.​: третья строка снизу​ В, D, F,​AlexM​ Target As Range)​ (не люблю я​End Sub​ появится текущая дата-время!​​ умещалась в ячейке​добавить перед числом апостроф​ заполнить ячейки столбца​ таблицу датами с​ Для того, что​: Итерации тоже придётся​ код в модуле​ просто меняется, а​ умещалась в ячейке​
    ​ Макрос полностью устраивает​
    ​ должна быть If​ ​ H, J, L,​:​
    ​Dim cc As​ их и потому​1. Необходимо чтобы​elpotap​ End With End​ (‘). Например: ’11-53​ датами с промежутком​ определенным периодом, т.​ бы запустить функцию​ включать.​ листа?​ не удаляется или​
    ​ End With End​ и работает исправно.​ InStr(«BDFHJLNPRTV», Split(Target.Address, «$»)(1))​ N, P, R,​200?’200px’:»+(this.scrollHeight+5)+’px’);»>Private Sub Worksheet_Change(ByVal Target​ Range​ практически не юзаю​
    ​ при удалении и​: Нашла в Инете,​ If Next cell​ или ‘1/47. Апостроф​ 7 дней. В​
    ​ д.​
    ​ в А1, необходимо​Антивирус тут правда​w00t​ вводится заново -​ If Next cell​Но, текущая модификация​
    ​ And Target.Row >​
    ​ T; Cтолбцы с​ As Range)​For Each cc​ из-за долбанутого риббон-интерфейса,​ повторном внесении данных​ как автоматически проставлять​ End Sub​
    ​ не отображается после​
    ​ ячейке D20 написали​
    ​Как вставить текущую дату​ обратиться к этой​ не помеха, но​: Да, спасибо большое!​
    ​ то не трогать​ End Sub———————————————————————————————————————-​ макроса позволяет менять​ 3 Then Target.Offset(0,​ датами :A, C,​If Not Intersect(Range(«A1:A10000»),​ In Target​ который настроить под​ в столбцы A​

    excel-office.ru

    Отмена автоматической замены чисел датами

    ​ дату.​При необходимости измените «чувствительный»​ нажатия клавиши ВВОД;​ дату – 12.01.2016.​ в​ ячейке непосредственно.​ ведь кто-нибудь может​»Понедельник день тяжелый»​ дату. Т.к. обычно​Может быть в​ внесенные ранее значения.​ -1) = IIf(Target​ E, G, I,​

    ​ Target) Is Nothing​If Not Intersect(Target,​ себя очень трудно)​ и F время​Но вместе с​ диапазон​добавить перед дробным числом​ В ячейке D​Excel​Работает Все это​

    1. ​ и не сделать​ )​

    2. ​ в третьем столбце​​ этом коде можно​​ При смене значения,​​ <> «», Now,​​ K, M, O,​​ Then​​ Range(«A:A»)) Is Nothing​

    ​Immortalist​ не корректировалось. Оставалось​ датой вставляется и​»А2:А100″​ ноль и пробел,​ 21 написали такую​, смотрите в статье​

    • ​ так. В В1​ этого…​Mulifen​ значение выбирается из​ внести изменения, чтобы​

    • ​ дата и время​ «») ‘Time ‘Date​ Q, S, U;​For Each iCell​ Then​: В том и​ такое же как​ время.​на свой собственный.​ например, чтобы числа​ формулу. =D20+7 Копируем​ «Текущая дата в​

      ​ меняется значение. В​​Michael_S​

      • ​: Добрый день. Стоит​ раскрывающегося списка, и​ при изменении строки​ актуализируются. Это влияет​Garlem79​ Начиная с 4ой​ In Target​With [Лист3].Cells(cc.Row, cc.Column).Offset(0,​ дело, что на​ при первом внесении.​

      • ​Возможно ли убрать​ Если необходимо вставлять​ 1/2 или 3/4​ эту формулу вниз​ Excel». Здесь рассмотрим,​ С1 сначала проверяется​

      • ​: Изменяем ячейку В1.​ такая задача автоматически​ если вдруг его​ автоматически вставлялась дата​ на дальнейшие расчеты,​: ОГРОМНОЕ ВАМ СПАСИБО!!!!!!!​ строки и вниз​iCell(1, 2) =​

    support.office.com

    Автоматическая вставка текущей даты в ячейку при вводе данных

    ​ 4)​ работе 2010 офис,​2. Проблема, что​ время, а оставить​ дату не в​ не заменялись датами​ по столбцу. Получится​как заполнить таблицу​ условие А1, а​ Ячейку С1 лучше​ вводить даты в​ не удалять и​ в первую ячейку​ но дело в​

    Автоматически вставить дату вȎxcel автоматически

    ​Garlem79​ на 10 тыс​ Now​If IsEmpty(.Value) And​ а там с​ пароль на редактирование​ только дату?​ соседний столбец, а​ 2 янв или​ так.​Excel определенными датами​​ поскольку там летучая​ ​ скрыть или защитить​​ ячейку А1 при​

    ​ новое выбрать -​ строки. Как это​ том, что иногда​: Добрый день!​

    ​ строк)​Next​ Not IsEmpty(cc.Value) Then​ этим проблем нет.​ столбцов А-D имеет​Описание:​ правее — подставьте​ 4 мар. Ноль​Использование формулы для заполнения​.​ функция ТДАТА(), то​ от изменений. А1​ изменении/вводе в ячейку​ а просто заменить​ сделать?​ такая возможность нужна,​Обнаружил в работе​Важно, чтобы при​End If​.Value = Now​Рецензирование — Разрешение​

    ​ один сотрудник, от​При необходимости измените​​ в оператор​​ не остается в​ ячеек датами хорошо​Можно установить последовательные​ сначала она пересчитывается,​ тоже лучше защитить.​ B1.​​ выбором нового из​​Заранее благодарен!​ а иногда нет,​

    ​ макроса небольшую Проблемку.​ удалении значения из​End Sub​End If​ изменений диапазонов -​ столбца F -​

    planetaexcel.ru

    Автоматическая вставка текущей даты в ячейку при вводе данных

    ​ «чувствительный» диапазон «А2:А100″​Offset(0,1)​ ячейке после нажатия​ тем, что при​ даты в столбец,​ получаем ИСТИНА, и​ При любом изменении​Была вот такая​ списка — то​Vlad999​ так как может​ Если столбцы 2значные,​ ячейке, соответствующая дата​pinguindell​

    Автоматически вставить дату вȎxcel автоматически

    ​End With​ Впринципе готово. =))​ другой сотрудник, а​ на свой собственный.​вместо 1 число​ клавиши ВВОД, а​ изменении даты в​ которые будут идти​ в С1 возвращается​ в В1 будет​ реализация.​​ дата бы осталась​ ​: Private Sub Worksheet_Change(ByVal​​ привести к изменению​

    ​ как например AB,​ так же удалялась,​: AlexM, большое СПС,​End If​

    ​ В открывшемся окне​ на столбцах E​ Если необходимо вставлять​ побольше.​ тип ячейки становится​ первой ячейке, изменятся​ по порядку по​ значение В1.​ меняться дата в​http://forum.msexcel.ru/microso…..0.html​ прежняя?​ Target As Range)​ учета. Такое случается​ AC, то макрос​ а при изменении,​ работает. Что мне​If Not Intersect(Target,​ просто создаем правила​ и G -​ дату не в​Закройте редактор Visual Basic​

    ​ дробным.​ даты в остальных​​ возрастанию. Для этого​​Если бы не​ А1.​Но требуется реализация​Спасибо.​ Dim cell As​ не часто, но​​ работает в столбцах​​ обновлялась до актуального​ нравится в данном​

    ​ Range(«F:F»)) Is Nothing​ из серии название​ пароль админа. При​ соседний столбец, то​ и попробуйте ввести​Примечания:​

    planetaexcel.ru

    Автоматическое добавление текущей даты в ячейку

    ​ ячейках.​​ есть функция автозаполнения​ были включены итерации,​ps. Замечу, что​
    ​ без макросов.​Код200?’200px’:»+(this.scrollHeight+5)+’px’);»>Private Sub Worksheet_Change(ByVal​ Range Application.EnableEvents =​
    ​ случается, поэтому вылавливать​ A, B, AB,​ на данный момент​
    ​ коде, так это​
    ​ Then​ правила, пароль, диапазон.​ таких наворотах макрос​ подставьте в оператор​ что-нибудь в диапазон​ ​Чтобы заполнить ячейки​ даты в Excel.​ комп бы впал​
    ​ в реализации по​Если правильно понимаю,​ Target As Range)​ False For Each​ ошибки важно.​ AC. А нужно​ значения. Это необходимо​

    ​ то, что он​​With [Лист3].Cells(cc.Row, cc.Column).Offset(0,​ После того как​
    ​ отказывается работать. Как​ Target(1,2) вместо двойки​ А2:А100. В соседней​Вместо апострофа можно использовать​ датами с промежутком​Можно установить даты​ в «кому» :),​ такому методу тоже​ то нужно использовать​Dim rInt As​ cell In Target​ячейка фиксирующая время​ чтобы только в​ для того, чтобы​

    ​ работает даже при​​ 1)​
    ​ все правила прописаны​
    ​ бы это исправить,​ число побольше.​ ячейке тут же​ пробел, но если​ 1 месяц, нужно​ с определенным периодом​ а так все​ есть свои неудобства​ ЕСЛИ и СЕГОДНЯ()​ Range, rCel As​
    ​ ‘проходим по всем​ и дату всегда​
    ​ назначенных столбцах работал.​ в случае ошибки​
    ​ выключенных макросах.​If IsEmpty(.Value) And​
    ​ включаем защиту листа​
    ​ подскажите пожалуйста.​
    ​Закройте редактор Visual​ появится текущая дата-время!​
    ​ вы планируете применять​ в ячейке D21​ или, только, рабочими​
    ​ это происходит один​
    ​ - время от​ или TDATE().​ Range​
    ​ измененным ячейкам If​
    ​ слева от той​
    ​Есть ли решение​
    ​ иметь возможность откорректировать​AlexM​
    ​ Not IsEmpty(cc.Value) Then​ и все готово.​Заранее спасибо.​
    ​ Basic и попробуйте​
    ​Предположим, у нас имеется​ функции поиска для​ написать такую формулу.​
    ​ днями, т.д.​
    ​ раз (или сколько​
    ​ времени при запуске​
    ​Заранее благодарен.​
    ​Application.EnableEvents = False​
    ​ Not Intersect(cell, Range("B2:H100"))​

    ​ в которую вводится​ этому ? Я​ значения. Возможно есть​: Такого не должно​.Value = Now​ Определенный диапазон под​Gustav​ ввести что-нибудь в​
    ​ таблица заказов, куда​ этих данных, мы​=ДАТА(ГОД(D20);МЕСЯЦ(D20)+1;ДЕНЬ(D20))​Автозаполнение даты в​ указанно).​ файла будет выскакивать​Serge_007​Application.ScreenUpdating = False​ Is Nothing Then​ значение.​ пробовал писать через​ еще какое-то решение​ быть​
    ​End If​

    ​ определенным паролем. =))​​: Замените строку (точнее,​ диапазон А2:А100. В​
    ​ пользователь вводит номер​
    ​ рекомендуем использовать апостроф.​В формуле мы​Excel.​

    ​Serge_007​
    ​ сообщение о циклических​
    ​: Здравствуйте.​Set rInt =​
    ​ ‘если изменененная ячейка​Хотелось бы получить​

    ​ «,» не помогло.​​Решения, которые расписаны​Serge_007​End With​Alex_ST​
    ​ строкИ)​​ соседней ячейке тут​ заказа, имя клиента,​
    ​ Такие функции, как​ написали - дату​Первый способ.​
    ​: Добавлю - не​ ссылках и придется​Без макросов наверное​
    ​ Intersect(Target, Vvod_dannyh.Columns(3))​
    ​ попадает в диапазон​ возможность контролировать изменение​
    ​AlexM​
    ​ в сети либо​
    ​: Такого не МОЖЕТ​End If​: К стати, а​
    ​200?'200px':''+(this.scrollHeight+5)+'px');">​
    ​ же появится текущая​ сумму и т.д.​
    ​ ПОИСКПОЗ и ВПР,​
    ​ написать, как в​
    ​Как заполнить последующими​

    ​ обязательно писать и​​ вручную включать итерации.​ не получится, т.к.​
    ​If Not rInt​ A2:A100 With Cells(cell.Row,​biggrin
    ​ внесенных данных. То​: должно работать так​ не работают либо​ быть​Next​ как Вы идентифицируете​.Value = IIf(Trim(cc)​ дата-время!​
    ​ Необходимо сделать так,​ не учитывают апострофы​
    ​ ячейке D20, только​ датами ячейки мы​ ИСТИНА. Должен быть​

    ​Mulifen​​ функция СЕГОДНЯ() пересчитывается​ Is Nothing Then​ 1) ‘вводим в​ есть макрос который​ «BDFHJLNPRTVXZ,AB,AD,AF,AH»​
    ​ не под мой​RAN​End Sub​
    ​ юзеров?​ = «», «»,​Gustav​ чтобы при внесении​ при вычислении результатов.​ к месяцу прибавить​ знаем. Нужно выделить​ хотя-бы один из​

    ​:​​ при любом изменении​For Each rCel​ первый столбец текущей​ дает изменить ранее​Garlem79​
    ​ случай. Про макросы​: Вас не Ганс​P.S. «запамятовал» -​Если по имени​ Now)​: Возможно. Замените Now​ номера заказа в​Если число в ячейке​ 1 месяц.​ ячейку с датой.​ двух аргументов, либо​Michael_S​ на листе, а​

    ​ In rInt​​ строки ячейку дату​ заполненную ячейку через​: Спасибо. Дело в​
    ​ только начал читать​ Христиан зовут?​ освежился: Ctrl+1 ​ пользователя Офиса, так​
    ​на строку​ на Date.​ столбец А -​ выровнено по левому​Получится так.​ Нажать квадратик в​ ЛОЖЬ, либо ИСТИНА.​огромное спасибо, шикарное​
    ​ не только при​rCel.NumberFormat = «0»​​ .Value = Now​
    ​ пароль и дает​
    ​ том. что если​

    ​ информацию, поэтому надеюсь​pinguindell​ Защита Скрыть​ его элементарно просто​Code200?’200px’:»+(this.scrollHeight+5)+’px’);»>​На заметку: вручную,​

    ​ в столбце B​​ краю, обычно это​Чтобы прибавить год к​ правом нижнем углу​ Или оба.​

    ​ решение.​​ изменениях в А1.​If rCel =​ .EntireColumn.AutoFit ‘выполняем автоподбор​ список таких изменений​ я пишу AH,​ на понятный ответ.​

    ​: точно, Вы правы,​​ формулы.​ и быстро поменять.​If IsEmpty(.Value) Then​ без макросов текущую​ напротив введенного заказа​ означает, что оно​ дате, формулу используем​ ячейки ЛЕВОЙ кнопкой​kim​0mega​Michael_S​
    ​ Empty Then​ ширины для столбца​ на соседний лист.​ но не хочу​Заранее спасибо!​ просто не на​Immortalist​А вот если​ .Value = Now​ дату (только дату)​ автоматически появлялись дата​ не отформатировано как​ как в предыдущем​
    ​ мыши.​: ЛЖИ без ИСТИНЫ​
    ​:​
    ​: Без макросов можно,​rCel.Offset(, -2) =​
    ​ B, чтобы дата​Приложил образец файла.​
    ​ чтоб в A​AlexM​
    ​ ту опцию посмотрел.​: Прошу прощения, что​ у Вас пользователи​
    ​и будет Вам​ в ячейку можно​
    ​ и время его​ число.​
    ​ варианте, только число​
    ​Указатель мышки превратится в​
    ​ быть не может​
    ​Michael_S​
    ​ но должны быть​ Empty​ умещалась в ячейке​
    ​ В нем 2​ и H по​
    ​: Нужен пример таблицы​ Действительно при выключенных​
    ​ долго не отвечал,​
    ​ - во внутренней​
    ​ счастье.​
    ​ вставить клавиатурной комбинацией​
    ​ занесения:​
    ​При введении в ячейку​

    ​ «1» прибавляем к​ черный крестик. Тянем​ :-)​, доброго времени суток.​

    ​ включены итерации.​​Else​ End With End​ листа.​
    ​ отдельности работал макрос,​ (в формате Excel)​ макросах не работает.​ забегался.​ сети, то можно​Alex_ST​ Ctrl+; , a​Чтобы реализовать такой ввод​ числа с буквой​ году. Получится такая​ этот крестик вниз​
    ​Serge_007​

    ​два вопроса :​​Дата в А1​rCel.Offset(, -2) =​
    ​ If Next cell​Буду рад если​
    ​ он все равно​ для вашего случая.​А Вы не​Огромное Вам спасибо​ идентифицировать по сетевым​
    ​: Зачем там у​
    ​ только время -​ даты, нам потребуется​
    ​ "е", например 1e9,​ формула.​
    ​ по столбцу. Ячейки​: Я это:​1) С1=ЕСЛИ(A1;B1)​
    ​ должна меняться при​ Now()​ Application.EnableEvents = True​
    ​ кто-нибудь сможет мне​
    ​ в их работает.​
    ​AlexM​
    ​ знаете можно ли​
    ​ Gustav, просто то​
    ​ именам, которые так​

    ​ Вас цикл по​ Shift+Ctrl+; . Вставить​ простой макрос, который​ оно автоматически преобразуется​=ДАТА(ГОД(D20)+1;МЕСЯЦ(D20);ДЕНЬ(D20))​ заполнятся следующими датами.​200?’200px’:»+(this.scrollHeight+5)+’px’);»>=ЕСЛИ(A1;;ЛОЖЬ)​как вообще может​ любом изменении в​rCel.Offset(, -2).NumberFormat =​ End Sub​ помочь.​AlexM​: Вариант кода в​
    ​ назначить событие, при​ что нужно было!!!!​ просто уже не​

    ​ ячейкам Target’a я​​ в одну ячейку​​ надо добавить в​ в научное число:​
    ​Получились такие даты.​ Получится так.​имел ввиду​
    ​ работать​ В1 или только​
    ​ "dd.mm.yyyy hh:mm:ss"​pashulka​
    ​сам макросы не​
    ​: поменяйте строку на​
    ​ модуле листа Private​

    ​ открытии книги, чтобы​​ Немного подредактировал под​ изменишь.​ не понял…​ и дату, и​ модуль рабочего листа.​ 1,00E+09. Чтобы избежать​Как автоматически заполнить список,​

    ​Все хорошо, но, нам​​kim​половина​

    ​ один раз?​​End If​: Альтернативный вариант (на​wink

    ​ пишу, максимум могу​​ If InStr(«B,D,F,H,J,L,N,P,R,T,V,X,Z,AB,AD,AF,AH,», Split(Target.Address,​ Sub Worksheet_Change(ByVal Target​

    ​ выполнялся следующий макрос,​​ себя, получилось если​Вот Вам на​Попробуйте так:​ время можно, применив​ Для этого щелкните​
    ​ этого, введите перед​ смотрите в статье​ нужно заполнить ячейки​: А, ну тады​формулы и при​Mulifen​Next​
    ​ основании выложенного примера)​
    ​ установить готовый, поэтому​
    ​ "$")(1)) & ","​ As Range) Application.EnableEvents​
    ​ который программно снимал​ не идеально, то​ всякий случай презент:​
    ​200?'200px':''+(this.scrollHeight+5)+'px');">Private Sub Worksheet_Change(ByVal Target​
    ​ обе комбинации через​ правой кнопкой мыши​ числом апостроф: ‘1e9​
    ​ "Заполнить автоматически список​ только рабочими днями.​
    ​ ладно, а то​ этом здесь вообще​: А если сделать​
    ​End If​Private Sub Worksheet_Change(ByVal​
    ​ если можно, нужен​

    ​ And Target.Row >​ = False On​ ограничения Excel​ очень близко к​200?’200px’:»+(this.scrollHeight+5)+’px’);»>Function Net_UserName$()​ As Range)​ пробел, причем в​ по ярлычку листа​Предположим, у нас имеется​ в Excel».​ Вот тут начинается​ я уже разволновался​

    excelworld.ru

    Автоматически фиксировать дату и время изменения в ячейке

    ​не прописаны​​ некую промежуточную ячейку​
    ​Set rInt =​ Target As Range)​
    ​ полноценный ответ, то​ 3 Then Target.Offset(0,​ Error Resume Next​Источник:http://excelvba.ru/code/Security​ этому!!! Спасибо еще​Net_UserName = CreateObject(«Wscript.Network»).UserName​If Target.Count >​ любом порядке.​ с таблицей и​ таблица заказов, куда​В Excel можно​ «волшебство» Excel. :)​
    ​=ЕСЛИ(A1;;ЛОЖЬ) <> =ЕСЛИ(A1;0;ЛОЖЬ)​никакие условия ?!​ на подобии маркера​ Nothing​ If Target.Row >​ есть готовый полностью​ -1) = IIf(Target​ If InStr(«BDFHJLNPRTV», Split(Target.Address,​200?’200px’:»+(this.scrollHeight+5)+’px’);»>Sub Enable_AccessVBOM_and_Macro()​ раз всем большое,​End Function​ 1 Then Exit​Immortalist​ выберите в контекстном​
    ​ пользователь вводит номер​ сделать много разных​Второй способ.​ <> =ЕСЛИ(A1;)​2) а почему​ изменять или нет​Application.EnableEvents = True​ 4 Then Application.EnableEvents​ код.​ <> «», Now,​ «$»)(1)) Then Target.Offset(0,​On Error Resume​ если что обращусь​
    ​Тогда можно по​ Sub​: Добрый день.​ меню команду​ заказа, имя клиента,​ графиков. Рассмотрим еще​Автоматическая дата в Excel.​GASik​
    ​ нельзя С1 просто​

    ​ и буферную ячейку​​Application.ScreenUpdating = True​ = False With​Заранее спасибо!​

    ​ «»)​​ -1) = IIf(Target​ Next​ за помощью!!​ этим именам при​If Not Intersect(Target,​Стоит такая задача.​Исходный текст​ сумму и т.д.​ один вид диаграммы,​Выделяем ячейку с​: Здравствуйте! Нужна помощь​ приравнять к В1:​ с указанием текущей​

    ​End Sub​​ Intersect(Target.EntireRow, [A:A]) .Value​Border77​
    ​Garlem79​ <> «», Date,​Key$ = «HKEY_CURRENT_USERSoftwareMicrosoftOffice»​Хорошего всем дня!!​ открытии файла программно​ Range(«A:A»)) Is Nothing​Есть таблица из​(View code)​
    ​ Необходимо сделать так,​

    ​ которая будет сравнивать​​ датой. Нажимаем на​ в следующем: есть​=B1​
    ​ даты и даты​Manyasha​ = Date .Columns.AutoFit​
    ​: Всем привет!​: Поменял, но все​
    ​ «») ‘Time ‘Now​ & Application.Version &​
    ​pinguindell​ запрещать редактировать на​

    ​ Then​​ 7 столбцов. Когда​.​ чтобы при внесении​ данные трех столбцов.​ квадратик в правом​ 31 лист (по​Serge_007​ изменения.​
    ​:​
    ​ End With: [H1]​
    ​Прочитал тему, данный​ равно. У меня​
    ​ Application.EnableEvents = True​ _​

    ​: Добрый день уважаемые​​ листах всё кроме​With Target.Offset(0, 4)​ в столбец A​В открывшееся окно редактора​ номера заказа в​ Подробнее, смотрите в​ нижнем углу ячейки​ числу дней в​

    ​:​​Mulifen​

    ​w00t​​ = Now Application.EnableEvents​
    ​ макрос вставляет дату​ колонок по факту​ End Sub​»ExcelSecurity»​ форумчане.​ разрешённых пользователю ячеек.​.Value = IIf(IsDate(.Value),​ вносят данные, в​ Visual Basic скопируйте​ столбец А -​
    ​ статье «Пузырьковая диаграмма​ ПРАВОЙ кнопкой мыши​ месяце), на каждом​0mega​

    ​:​​, так пойдет?​ = True End​

    ​ в соседнюю ячейку,​​ больше.​Garlem79​’ включаем программный​Подскажите как мне​Gustav​ .Value, Now)​ столбце E проставляется​ этот текст этого​ в столбце B​

    ​ в Excel».​​ и протягиваем вниз​ из них стоит​, Вы уже задавали​Michael_S​200?’200px’:»+(this.scrollHeight+5)+’px’);»>Private Sub Worksheet_Change(ByVal Target​ If End Subили​ а можно ли​Допустим, есть колонка​

    ​: ALEX, спасибо Вам​​ доступ к объектной​ решить следующий вопрос.​: А если сразу​End With​
    ​ соответсвующее время. Когда​ макроса:​ напротив введенного заказа​Чтобы даты было проще​ по столбцу. Отпускаем​ дата в формате​ этот вопрос мне​можно подробнее про​ As Range)​
    ​Private Sub Worksheet_Change(ByVal​ сделать так что​ ВС , для​ большое!​ модели проекта VBA​

    ​Для автоматического добавления​​ в несколько ячеек​End If​ в столбец F​Private Sub Worksheet_Change(ByVal​ автоматически появлялись дата​ вводить, Excel Online​ кнопку мыши. Появляется​ дд.мм.гг. Необходимо сделать​

    ​ и я Вам​​ итерации.​Dim rInt As​ Target As Range)​

    ​ бы при изменении​​ которой нужна функция​
    ​Все так за​
    ​CreateObject(«WScript.Shell»).RegWrite Key$ &​ даты в ячейку​ копи-пастнут? Я бы​If Not Intersect(Target,​ заносят данные, в​ Target As Range)​ и время его​ автоматически преобразует 2.12​ такое диалоговое окно​ так, чтобы при​ на него отвечал.​Дата в принципе​ Range, rCel As​
    ​ If Target.Row >​ к примеру ячейки​ фиксации даты и​ маленьким исключением. Нужно,​ «AccessVBOM», 1, «REG_DWORD»​ использую следующий код​ оставил цикл…​ Range(«F:F»)) Is Nothing​ столбец g заносится​ For Each cell​ занесения:​ в 2 дек.​ с предложенными вариантами​ изменении месяца (по​Michael_S​ должна меняться 1​ Range​
    ​ 4 Then Application.EnableEvents​ «В12» дата появлялась​ времени изменения, но​ чтоб высвечивались и​’ ставим низкий​
    ​ (добавлен в исходный​Alex_ST​ Then​ свое время.​ In Target ‘проходим​Чтобы реализовать такой ввод​ Но это может​ копирования даты.​ прошествии месяца) или​
    ​: Ну раз уж​ раз, но возможно​Application.EnableEvents = False​
    ​ = False Intersect(Target.EntireRow,​ только в ячейки​ для колонок B​
    ​ дата и текущее​ уровень безопасности (применится​ текст листа).​: А может лучше​With Target.Offset(0, 1)​Вот такой код​ по всем измененным​
    ​ даты, нам потребуется​

    ​ сильно раздражать, если​​Нажимаем на нужный вариант.​
    ​ года (по прошествии​ меня спрашивают, отвечу​ что и несколько.​Application.ScreenUpdating = False​ [A:A]) = Date​ «В2″.​ и С по​ время. Я попытался​ после перезапуска Excel)​200?’200px’:»+(this.scrollHeight+5)+’px’);»>​
    ​ попробовать для обеспечения​.Value = IIf(IsDate(.Value),​

    CyberForum.ru

    Автоматическая вставка даты изменений строки в Excel

    ​ у меня:​​ ячейкам If Not​
    ​ простой макрос, который​ вы хотите ввести​ Мы нажали на​ года) на одном​ и я.​(Стоит задача автоматического​Set rInt =​ [H1] = Now:​Заранее благодарен за​ отдельности эта функция​ изменить формат ячеек,​CreateObject(«WScript.Shell»).RegWrite Key$ &​
    ​Private Sub Worksheet_Change(ByVal​
    ​ большей достоверности вводимых​ .Value, Now)​200?’200px’:»+(this.scrollHeight+5)+’px’);»>Private Sub Worksheet_Change(ByVal Target​ Intersect(cell, Range(«A2:A100»)) Is​ надо добавить в​ числа, которое не​ слова «Заполнить по​ листе, менялся месяц/год​1)=ЕСЛИ(A1;B1)​ формирования журнала заявок​ Intersect(Target, Range(«c5:c» &​ Columns(1).AutoFit Application.EnableEvents =​ ответы!!!​ не нужна.​ но время выдает​ «VBAWarnings», 1, «REG_DWORD»​ Target As Range)​ данных запретить пастить​End With​ As Range)​ Nothing Then ‘если​
    ​ модуль рабочего листа.​ нужно превращать в​ рабочим дням». Получилось​ на другом. ПРоще​В А1 стоит​ (дата подачи, кем,​ Rows.Count))​ True End If​
    ​ArtistJoker​

    ​А у меня​​ 0:00.​End Sub​Private Sub Worksheet_Change(ByVal​ больше чем в​End If​Dim cc As​ изменененная ячейка попадает​ Для этого щелкните​ даты. Хотя преобразование​ так.​ говоря на листах​ дата, т.е.- число,​ и собственно текст​If Not rInt​ End Sub​: Привет, форумчане!​ все равно она​Не адресовал сообщение​И вопрос в​ Target As Range)​ одну ячейку?​End Sub​ Range​ в диапазон A2:A100​ правой кнопкой мыши​

    ​ невозможно отключить его,​​Вставить даты в​ стоит дата 01.01.13​
    ​ это главное условие​ заявки)​ Is Nothing Then​ArtistJoker​Очень прошу помочь.​ включается и при​AlexM​ догонку, по коду​If Target.Cells.Count >​Gustav​Immortalist​
    ​Application.ScreenUpdating = False​ With cell.Offset(0, 1)​ по ярлычку листа​ есть несколько способов,​Excel с определенным периодом​ по 31.01.13 (за​ для возможности применения​И нужно фиксировать​For Each rCel​: Спасибо, огромное! Всё​

    ​ На работе заполняю​​ новом виде записи​: Вмеcто Date в​

    CyberForum.ru

    Автоматическая вставка даты и времени (Макросы/Sub)

    ​ видно что макрос​​ 1 Then Exit​: В общем, моё​: Большое спасибо за​Application.EnableEvents = False​ ‘вводим в соседнюю​ с таблицей и​ позволяющих обойти его.​.​ январь) Сейчас необходимо​
    ​ такой записи.​ дату внесения (т.к.​ In rInt​ работает как надо!​ отчёт, в котором​ строки.​ предпоследней строке вставьте​ создает ключ в​ Sub​​ предложение такое. Таймштамп​
    ​ Ваши!​For Each cc​ справа ячейку дату​ выберите в контекстном​Если вам нужно сложить​
    ​Первый вариант.​ поменять на 01.13.13​В логических функциях​ замучали либо вообще​rCel.NumberFormat = «0»​w00t​ вручную приходится вставлять​AlexM​ Now​ реестре, поэтому как​If Not Intersect(Target,​ пишется в колонки​Код отредактировал -​ In Target​ .Value = Now​ меню команду​ много значений, которые​Выделяем ячейку с​
    ​ по 31.03.13 и​
    ​ (а здесь именно​ не пишут или​
    ​If rCel =​: Здравствуйте. Избитая тема,​ дату изменений строки(не​
    ​: понял причину If​
    ​В конце этой​
    ​ мне кажется будет​ Range(«A1:A1000000»)) Is Nothing​
    ​ E и G​ первая проблема решилась!​
    ​If Not Intersect(cc,​ .EntireColumn.AutoFit ‘выполняем автоподбор​
    ​Исходный текст​
    ​ похожи на даты​ датой. Нажимаем ПРАВОЙ​
    ​ чтобы в перспективе​ логическое условие) ноль=ложь,​
    ​ пишут не всегда​
    ​ Empty Then​ но, помогите, пожалуйста,​
    ​ просто ячейки) с​ InStr(«,D,F,H,J,L,N,P,R,T,V,X,Z,AB,AD,AF,AH,», «,» &​
    ​ строки я закомментировал​
    ​ проблема при запуске​
    ​ Then​
    ​ на Лист3, который​А вот с​
    ​ Range(«A2:A100000»)) Is Nothing​
    ​ ширины для столбца​
    ​(View code)​

    ​ (например, чисел с​​ мышкой на квадратик​​ при изменении месяца​​ все, что не​
    ​ корректно + потом​rCel.Offset(, -2).Resize(, 2)​
    ​ немного модифицировать (да,​ информацией по клиенту.​ Split(Target.Address, "$")(1) &​
    ​ возможные варианты​
    ​ такого когда на​
    ​With Target(1, 2)​ скрыт c Visible​ защитой листов проблема​
    ​ Then​ B, чтобы дата​
    ​.​ дробями), вы можете​
    ​ в правом нижнем​
    ​ или года на​ равно нулю -​
    ​ вносят изменения в​ = Empty​
    ​ обращение к листу​
    ​ Искал в сети​ ",") And Target.Row​
    ​Time - это​ компьютере с учетной​
    ​.Value = Now​ = xlSheetVeryHidden, чтобы​
    ​ осталась. Все так​With cc(1, 5)​
    ​ умещалась в ячейке​
    ​В открывшееся окно редактора​
    ​ отформатировать ячейки как​
    ​ углу и протягиваем​
    ​ одном из листов​ истина. В А1<>0,​
    ​ текст, а дату​
    ​Else​
    ​ по Codename, если​

    ​ помощь, нашёл только​​ > 3 Then​​ только время​​ записью обычного пользователя,​.EntireColumn.AutoFit​ юзера его не​

    ​ же при попытке​​.Value = IIf(Trim(cc)​
    ​ End With End​ Visual Basic скопируйте​

    excelworld.ru

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

    ​ текст. После этого​​ на нужное количество​ дата менялась и​ следовательно А1=ИСТИНА.​ не меняют, соответственно​If rCel.Offset(, -2)​ в чистой книге,​
    ​ вот такой код​ Target.Offset(0, -1) =​
    ​Now — дата​
    ​ а не админа​End With​
    ​ увидели (доступ к​ занести данные ругается​ = «», «»,​ If Next cell​
    ​ этот текст этого​

    ​ Excel Online не​​ ячеек. Отпускаем мышку.​
    ​ на всех остальных.​В функции ЕСЛИ()​ заявка выполняется по​ = «» Then​ то вместо Vvod_dannyh.Columns(3)​ (внесение даты изменений​ IIf(Target <> «»,​

    ​ и время​​ ?​End If​ проекту VBA закрыт​
    ​ Run-time error ‘1004’:​ Now)​ End Sub​ макроса:​ будет пытаться преобразовать​

    ​ В появившемся диалоговом​​ Заранее спасибо​ не обязательно указывать​ старым условиям а​rCel.Offset(, -2) =​ тот же Worksheets(1).​ соседней ячейки):​ Now, «»)​Date — только​

    ​Garlem79​​End Sub​​ паролем: 123).​​ Aplication-defined or object-defined​End With​
    ​При необходимости измените «чувствительный»​Private Sub Worksheet_Change(ByVal​ их в даты.​ окне нажимаем на​
    ​Pelena​ значение, принимаемое при​ при проверке выясняется​ Now()​ Columns(3))​
    ​———————————————————————————————————————​Garlem79​ дата​: Доброго времени суток!​Все работает прекрасно,​На основном Листе1​ error.​End If​ диапазон​ Target As Range)​Выберите ячейки, в которые​ функцию «Прогрессия». Появится​: На первом листе​

    ​ условии ЛОЖЬ. В​​ что неправильно исполнили))​rCel.Offset(, -2).NumberFormat =​Чтобы в соседнюю​Private Sub Worksheet_Change(ByVal​: Вроде теперь все​Garlem79​Помогите с решением​

    ​ но в тоже​​ в колонки E​Возможно ли найти​Next​»А2:А100″​ For Each cell​ необходимо ввести числа.​

    ​ такое диалоговое окно.​​200?’200px’:»+(this.scrollHeight+5)+’px’);»>=ДАТА(ГОД(СЕГОДНЯ());МЕСЯЦ(СЕГОДНЯ());1)​ этом случае по​
    ​Serge_007​ «dd.mm.yyyy hh:mm:ss»​ с датой ячейку​ Target As Range)​ ОК. Еще раз​

    ​: И еще ,​​ следующей задачи:​ время если в​ и G помещены​ какое-то решение?​For Each cc​на свой собственный.​ In Target ‘проходим​Щелкните​Устанавливаем галочки у нужных​
    ​На остальных либо​ умолчанию возвращается ЛОЖЬ.​: Тогда точно лучше​rCel.Offset(, -1) =​ (,-1) добавлялся (или​ For Each cell​ спасибо Вам!​ возможно в коде​В таблице есть​ столбец А просто​

    ​ формулы, выводящие значения​​Заранее прошу прощения,​​ In Target​​ Если необходимо вставлять​ по всем измененным​

    ​Главная​​ функций, ставим шаг​​ по аналогии, либо​​Попробуйте в А1​
    ​ макросами. Ввод через​
    ​ WorksheetFunction.WeekNum(rCel.Offset(, -2))​
    ​ удалялся, если дата​ In Target ‘проходим​​Garlem79​​ это заложено, но​ несколько столбцов (около10),​​ вставить данные путем​​ из аналогичных ячеек​
    ​ плохо знаю Visual​If Not Intersect(cc,​ дату не в​
    ​ ячейкам If Not​

    ​>​​ (например, через какое​​ на каждом следующем​​ писать любые числа​ форму, с проверкой​End If​ отсутствует) номер недели​

    ​ по всем измененным​​: Доброго времени!​ я в этом​ расположенных в разных​
    ​ копирования (Ctrl+V) из​
    ​ Листа3: =ЕСЛИ(ЕПУСТО(Лист3!E1 );»»;Лист3!E1).​ Basic…​ Range(«F2:F100000»)) Is Nothing​ соседний столбец, а​ Intersect(cell, Range(«A2:A100»)) Is​
    ​Числовой формат​ количество дней писать​ листе прибавляйте +1​ (ноль, положительные, отрицательные),​ на корректность и​End If​ основанный на дате,​
    ​ ячейкам If Not​есть задача:​ не разбираюсь- как​ местах таблицы (не​ другого файла -​ При желании формулы​
    ​Alex_ST​ Then​ правее — подставьте​ Nothing Then ‘если​>​
    ​ даты, пример -​ день к предыдущей​ и посмотрите, что​ запретом на изменение.​Next​ которую макрос добавляет.​ Intersect(cell, Range(«A2:A100»)) Is​Есть потребность контролировать​ сделать чтоб макрос​ по порядку) В​ то в столбце​ можно скрыть (признаться,​: А как Вы​With cc(1, 2)​
    ​ в оператор​ изменененная ячейка попадает​Текст​ с разницей в​ дате​ будет в С1.​ Чем такой вариант​End If​ Номер недели, который​ Nothing Then ‘если​ дату и время​
    ​ работал начиная с​ них ежедневно собираются​ В даты не​ запамятовал, как это​ вообще умудрились дать​.Value = IIf(Trim(cc)​Offset(0,1)​ в диапазон A2:A100​

    ​.​​ два дня –​Если не угадала,​2)Если написать сразу​ не подходит?​Set rInt =​ если формулой​ изменененная ячейка попадает​

    ​ вводимых данных в​​ 4й строки?​ данные по выработке​ отображаются, по сути​

    ​ делается), чтобы от​​ разные права доступа​​ = "", "",​​вместо 1 число​smile

    ​ With cell.Offset(0, 1)​​Если вам нужно ввести​ 12, 14, 16,​ создавайте свою тему​cool
    ​ в С1 =В1,​Mulifen​

    ​ Nothing​​200?’200px’:»+(this.scrollHeight+5)+’px’);»>=номнедели (ячейка;2)​ в диапазон A2:A100​ определенный лист книги.​Спасибо за оперативность!​ работников. Нужно фиксировать​ добавление значений в​ Листа3 не было​ к разным диапазонам​ Now)​ побольше.​ ‘вводим в соседнюю​ всего несколько чисел,​ т.д.). Нажимаем «ОК».​ и прикладывайте файл​ то после изменения​: Боюсь что антивирус​Application.EnableEvents = True​И действие распространялось​ With cell.Offset(0, 1)​ Уже есть макрос​Добавлено через 2 минуты​ дату и время​ ячейку это и​ никаких явных следов​ листа разным пользователям?​End With​Закройте редактор Visual Basic​ справа ячейку дату​

    ​ можно отменить их​​Второй вариант.​
    ​ с примером​
    ​ в В1 сначала​ будет мешать и​Application.ScreenUpdating = True​ бы только с​ ‘вводим в соседнюю​ который работает и​
    ​Да, поправил, работает.​ внесения данных в​ есть изменение значений​ на Листе1.​

    excelworld.ru

    ​В Excel-2003 с​

    Понравилась статья? Поделить с друзьями:

    А вот еще интересные статьи:

  • Excel дата до 2013 года
  • Excel дата год месяц число
  • Excel дата год квартал
  • Excel дата время секунды
  • Excel графики в разном масштабе

  • 0 0 голоса
    Рейтинг статьи
    Подписаться
    Уведомить о
    guest

    0 комментариев
    Старые
    Новые Популярные
    Межтекстовые Отзывы
    Посмотреть все комментарии