Vba excel вставить дату в ячейку

ГЛАВНАЯ

ТРЕНИНГИ

   Быстрый старт
   Расширенный Excel
   Мастер Формул
   Прогнозирование
   Визуализация
   Макросы на VBA

КНИГИ

   Готовые решения
   Мастер Формул
   Скульптор данных

ВИДЕОУРОКИ

ПРИЕМЫ

   Бизнес-анализ
   Выпадающие списки
   Даты и время
   Диаграммы
   Диапазоны
   Дубликаты
   Защита данных
   Интернет, email
   Книги, листы
   Макросы
   Сводные таблицы
   Текст
   Форматирование
   Функции
   Всякое
PLEX

   Коротко
   Подробно
   Версии
   Вопрос-Ответ
   Скачать
   Купить

ПРОЕКТЫ

ОНЛАЙН-КУРСЫ

ФОРУМ

   Excel
   Работа
   PLEX

© Николай Павлов, Planetaexcel, 2006-2022
info@planetaexcel.ru


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

Техническая поддержка сайта

ООО «Планета Эксел»

ИНН 7735603520


ОГРН 1147746834949
        ИП Павлов Николай Владимирович
        ИНН 633015842586
        ОГРНИП 310633031600071 

Автоматическая запись текущей даты и времени в первую ячейку новой строки базы данных на листе Excel с помощью кода VBA при выборе второй ячейки этой строки.

Если в базу данных, организованную на листе Excel, приходится ежедневно вносить несколько десятков записей, просто необходимо обеспечить возможность автоматического заполнения первой ячейки каждой новой записи текущей датой (если, конечно, текущая дата предусмотрена в вашей базе данных). И, конечно, первому столбцу, в который будет записываться дата, необходимо задать подходящий формат отображения даты и, если нужно, времени.

Самый простой код для записи даты

Для автоматической записи текущей даты и времени в первую ячейку очередной записи базы данных на листе Excel, необходимо открыть редактор VBA Excel и в проводнике дважды кликнуть на листе с базой данных, чтобы открылся модуль листа, в который поместить следующую процедуру с проверкой условия, что ячейка выбрана именно во втором столбце:

Private Sub Worksheet_SelectionChange(ByVal Target As Range)

  If Target.Column = 2  Then Cells(ActiveCell.Row, 1) = Now

End Sub

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

Добавление второго условия в процедуру

Private Sub Worksheet_SelectionChange(ByVal Target As Range)

  If Target.Column = 2 And Cells(ActiveCell.Row, 1) = 0 Then

    Cells(ActiveCell.Row, 1) = Now

  End If

End Sub

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

Запись текущей даты с учетом трех условий

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

Private Sub Worksheet_SelectionChange(ByVal Target As Range)

  If Target.Column = 2 And Cells(ActiveCell.Row, 1) = 0 _

     And Cells(ActiveCell.Row 1, 1) <> 0 Then

     Cells(ActiveCell.Row, 1) = Now

  End If

End Sub

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

Если использовать предыдущую процедуру, то при выборе любой ячейки в первой строке генерируется ошибка. Она возникает из-за того, что, когда выбрана ячейка в первой строке, ячейки Cells(ActiveCell.Row — 1, 1) не существует. Чтобы избежать этой ошибки, необходимо добавить в первую группу условий проверку на то, что индекс строки выбранной ячейки не равен единице, а проверку ячейки Cells(ActiveCell.Row — 1, 1) вынести во второй блок If … End If, который будет выполняться только при выполнении условий первого блока.

Private Sub Worksheet_SelectionChange(ByVal Target As Range)

  If Target.Column = 2 And Target.Row > 1 And _

     Cells(ActiveCell.Row, 1) = 0 Then

     If Cells(ActiveCell.Row 1, 1) <> 0 Then

        Cells(ActiveCell.Row, 1) = Now

     End If

  End If

End Sub

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

0 / 0 / 0

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

Сообщений: 9

1

11.01.2016, 22:10. Показов 9019. Ответов 24


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

Здравствуйте. Помогите в следующем вопросе — в MS EXCEL 2007 создал кнопку с макросом на удаление данных с определенных ячеек.

Visual Basic
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
Private Sub CommandButton1_Click()
' Очистка Макрос
    Range("A5").Select
    ActiveWindow.SmallScroll Down:=180
    Range("A5:J199").Select
    ActiveWindow.SmallScroll Down:=-189
    Range("A5:J199,F2,N5,N6,L7,L9,L10,N19").Select
    Range("N19").Activate
    ActiveWindow.SmallScroll ToRight:=0
    ActiveWindow.ScrollRow = 2
    ActiveWindow.ScrollRow = 3
    ActiveWindow.ScrollRow = 4
    ActiveWindow.ScrollRow = 5
    ActiveWindow.ScrollRow = 6
    ActiveWindow.ScrollRow = 7
    ActiveWindow.ScrollRow = 8
    ActiveWindow.ScrollRow = 9
    ActiveWindow.ScrollRow = 10
    ActiveWindow.ScrollRow = 12
    ActiveWindow.ScrollRow = 13
    ActiveWindow.ScrollRow = 15
    ActiveWindow.ScrollRow = 16
    Range( _
        "A5:J199,F2,N5,N6,L7,L9,L10,N19,L25:M25,L26:M26,L27:M27,L28:M28,L29:M29,L30:M30,L31:M31,L32:M32,L33:M33,L34:M34,L35:M35,L36:M36" _
        ).Select
    Range("L36").Activate
    ActiveWindow.SmallScroll Down:=-24
    Selection.ClearContents
    
End Sub

Нужно что бы при нажатии этой кнопки вставлялась нынешняя дата, формата чч/мм/гг, без дальнейших изменений (например при открытии листа числом позже) в ячейку A2.
Нашел в интернете такой код:

PureBasic
1
2
3
Sub DateCells() 
Range("A1").Value = DateValue(Now) 
End Sub

Но при вставке в код кнопки ничего не выходит. Ноль эмоций. (может его куда-нибуть в другое место нужно вставлять?)
Ячейки все будут защищены от изменений, кроме тех которые очищает макрос данный выше.
Как можно реализовать такую функцию: при нажатии кнопки «Очистить» вставляется дата в защищенную ячейку A2 без дальнейшей возможности изменения по средством ручного редактирования формулы или открытия листа в другие дни.

Вставить текущую дату формата чч/мм/гг, без дальнейших изменений, в ячейку а2

С VB не очень дружу, или не дружу вовсе.



0



Содержание

  1. VBA Excel. Функции для работы с датой и временем
  2. Функция Date
  3. Функция DateAdd
  4. Функция DateDiff
  5. Date and Time
  6. Year, Month, Day of a Date
  7. DateAdd
  8. Current Date and Time
  9. Hour, Minute, Second
  10. TimeValue
  11. Функции VBA для работы с датой/временем
  12. Excel vba текущая дата
  13. Автоматический ввод текущей даты в Excel
  14. Функция Now
  15. код VBA, чтобы автоматически тянулись дата и время (Формулы/Formulas)
  16. Макрос, фиксированные текущее время и дата (Фиксированные текущее время и дата)
  17. Определение и вывод текущей даты
  18. Вставка текущей даты
  19. Функция Date
  20. Автоматический ввод текущей даты в Excel
  21. VBA Excel поиск среди дат по текущему месяцу

VBA Excel. Функции для работы с датой и временем

Функции для работы с датой и временем в VBA Excel. Синтаксис, параметры, спецсимволы, примеры. Функции, возвращающие текущие дату и время по системному таймеру.

Функция Date

Синтаксис

Пример

Функция DateAdd

Синтаксис

Параметры

Параметр Описание
interval Обязательный параметр. Строковое выражение из спецсимволов, представляющее интервал времени, который требуется добавить.
number Обязательный параметр. Числовое выражение, задающее количество интервалов, которые необходимо добавить. Может быть как положительным (возвращается будущая дата), так и отрицательным (возвращается предыдущая дата).
date Обязательный параметр. Значение типа Variant/Date или литерал, представляющий дату, к которой должен быть добавлен интервал.

Таблицу аргументов (значений) параметра interval смотрите в параграфе «Приложение 1».

Примечание к таблице аргументов: три символа – y, d, w – указывают функции DateAdd на один день, который необходимо прибавить к исходной дате number раз.

Пример

Функция DateDiff

Синтаксис

Параметры

Параметр Описание
interval Обязательный параметр. Строковое выражение из спецсимволов, представляющее интервал времени, количество которых (интервалов) требуется вычислить между двумя датами.
date1, date2 Обязательные параметры. Значения типа Variant/Date , представляющие две даты, между которыми вычисляется количество указанных интервалов.
firstdayofweek Необязательный параметр. Константа, задающая первый день недели. По умолчанию – воскресенье.
firstweekofyear Необязательный параметр. Константа, задающая первую неделю года. По умолчанию – неделя, в которую входит 1 января.

Таблицу аргументов (значений) параметра interval смотрите в параграфе «Приложение 1».

Примечание к таблице аргументов: в отличие от функции DateAdd , в функции DateDiff спецсимвол «w» , как и «ww» , обозначает неделю. Но расчет осуществляется по разному. Подробнее об этом на сайте разработчиков.

Параметры firstdayofweek и firstweekofyear определяют правила расчета количества недель между датами.

Таблицы констант из коллекций firstdayofweek и firstweekofyear смотрите в параграфах «Приложение 2» и «Приложение 3».

Источник

Date and Time

Learn how to work with dates and times in Excel VBA.

Place a command button on your worksheet and add the code lines below. To execute the code lines, click the command button on the sheet.

Year, Month, Day of a Date

The following macro gets the year of a date. To declare a date, use the Dim statement. To initialize a date, use the DateValue function.

Dim exampleDate As Date

exampleDate = DateValue(«Jan 19, 2020»)

Note: Use Month and Day to get the month and day of a date.

DateAdd

To add a number of days to a date, use the DateAdd function. The DateAdd function has three arguments. Fill in «d» for the first argument to add days. Fill in 3 for the second argument to add 3 days. The third argument represents the date to which the number of days will be added.

Dim firstDate As Date , secondDate As Date

firstDate = DateValue(«Jan 19, 2020»)
secondDate = DateAdd(«d», 3, firstDate)

Note: Change «d» to «m» to add a number of months to a date. Place your cursor on DateAdd in the Visual Basic Editor and click F1 for help on the other interval specifiers. Dates are in US Format. Months first, Days second. This type of format depends on your windows regional settings.

Current Date and Time

To get the current date and time, use the Now function.

Hour, Minute, Second

The get the hour of a time, use the Hour function.

Note: Use Minute and Second to get the minute and second of a time.

TimeValue

The TimeValue function converts a string to a time serial number. The time’s serial number is a number between 0 and 1. For example, noon (halfway through the day) is represented as 0.5.

Now, to clearly see that Excel handles times internally as numbers between 0 and 1, add the following code lines:

Источник

Функции VBA для работы с датой/временем

    Date () — возвращает текущую системную дату. Установить ее можно при помощи одноименного оператора, например, так:

DateDiff () — возможность получить разницу между датами (опять таки в единицах от лет до секунд).

Dim lDaysCnt As Long lDaysCnt = DateDiff(«d», «20.11.2012», Now) MsgBox «С 20.11.2012 прошло дней: » & lDaysCnt

Первый аргумент определяет период времени, в котором необходимо вернуть разницу между датами. Допустимые значения:
«yyyy» Год
«q» Квартал
«m» Месяц
«y» День года
«d» День
«w» День недели
«ww» Неделя
«h» Час
«n» Минута
«s» Секунда
Наиболее полезна DateDiff при вычислении полных лет. Например, чтобы вычислить сколько лет на текущий момент человеку, в зависимости от даты рождения, можно использовать функцию так:

MsgBox DateDiff(«yyyy», «20.12.1978», Now)

Без этой функции вычислить кол-во полных лет гораздо сложнее.
DatePart () — функция возвращает указанную часть даты (например, только год, только месяц или только день недели), на основании заданной даты. Часто применяется для получения номера недели для даты.
Первый аргумент — период времени. Принимаемые значения те же, что и для функции DateDiff (годы, месяцы, недели и т.д.)
Второй аргумент — непосредственно дата, часть которой необходимо получить:

MsgBox «Номер недели года: » & DatePart(«ww», Now)

MsgBox DateSerial(2012, 6, 7)

Аналогичным образом (для времени) работают TimeSerial () и TimeValue ()

  • Day (), Year (), Month (), Weekday (), Hour (), Minute (), Second () — специализированные заменители функции DatePart() , которые возвращают нужную часть даты/времени (которую именно — видно из названия).
  • MonthName () — возвращает имя месяца словами по его номеру. Возвращаемое значение зависит от региональных настроек. Если они русские, то вернется русское название месяца.
  • Timer () — возвращает количество секунд, прошедших с полуночи.
  • Источник

    Excel vba текущая дата

    Автоматический ввод текущей даты в Excel

    ​Смотрите также​​ If End Sub​ находятся реактивы, срок​
    ​ при редактировании таблицы​
    ​Все имена заняты​Private Sub Command1_Click()​ моем понимании означает,​ Date​ обидеть, формула нормальная,​ словом итерации.​ вставке фиксированной​Функция не имеет аргументов​ А, удалялась и​ Alt+F11​ появлении значения в​

    ​ строкам, типа:​​: Могу только посоветовать​SOV1​Kubuntovod​

    ​ годности которых истекает​​ в диапазоне A1:I50,​: Добавил строку.​ Dim objFSO As​ что она неизменна​.SpecialCells(4).Offset(, 1).ClearContents​
    ​но, действительно, все​kim​
    ​даты и времени,​Пример​ дата. А то​3 в окне​ 7-ом столбце в​If Target.Column =​ изменить макрос или​: Всем доброго времени​: Если в ячейке​

    ​ в этом месяце.​​ в ячейке G23​Sub макрос2() ‘​
    ​ FileSystemObject Dim objFile​ до следующего редактирования​End With​ время пытает меня,​: http://www.excelworld.ru/forum/2-254-1​ в заданную ячейку.​’ Выводим текущую системную​
    ​ получается если в​ Project-VBAProject щёлкните 2​ 6-ом отображалась дата​ 1 And Target.Row​ защиту.​
    ​ суток.​ только дата, то​Мысль по поводу​

    ​ постоянно менялась дата​​ Сочетание клавиш: Ctrl+d​ As File Set​ ячейки A1.​
    ​End Sub​ сохранить или нет​Что автора раздражает​ Вставка должна производиться​ дату и время​ колонке А (даже​ раза на имени​ ввода этого значения.​

    ​ > 4 Then​​Если Вы хотите​Такая вот задача:​ всё просто:​ автофильтра не подходит,​ и время при​ ActiveCell.Value = Format(Now,​
    ​ objFSO = New​

    ​Обработку событий (может​​Еще интересней:-)​
    ​ изменения,​ при включенных итерациях​
    ​ по условию,​
    ​ Dim Today Today=​ пустой) нажать клавишу​
    ​ листа, где находится​Надо чтоб работало​SOV1​ воспользоваться моим кодом,​

    ​при выборе значения​​If Month(Cells(i, j))​
    ​ т.к. необходимо видеть​ каждом редактировании.​
    ​ «dd.mm.yyyy») ActiveCell.EntireColumn.AutoFit End​
    ​ FileSystemObject Set objFile​ это неправильно, подсмотрел​
    ​Мур​даже если я​ так и не​например, если A1<>«»,​

    ​Now​​ Del, то тоже​ Ваша таблица​
    ​ это все со​: Димит, еще раз​ то разместите его​ из списка в​
    ​ = Month(Date) Then​ всю таблицу, а​И еще не​ Sub​

    ​ = objFSO.GetFile(«C:TempBook1.xls») MsgBox​​ в другой теме)​: Здравствуйте,​ их не вносил,​
    ​ понял.​ то в ячейке​’ узнаем текущую​

    ​ происходит запись даты​​4 скопируйте код​ 2-ой строки.​ большое спасибо! Изначальная​ в модуле вашего​ одной ячейке таблицы​ . ​ не только строки​ знаю, такое возможно​pashulka​ Format$(objFile.DateCreated, «DD_MM_YYYY») Set​ тоже уже запускал​KuklP​а при открытии​И если итерации​ B1 вставка даты,​ системную дату и​
    ​ в соответствующий столбец.​ и вставьте в​Если не трудно​ цель достигнута. Получилось​ листа. Он запускается​ — в другой​JulyMar​ удовлетворяющие запросу.​ или нет, чтобы​: Если нужна всё-таки​ objFSO = Nothing​Sub emergency() ‘восстановить​и​ напоминает о циклицеской​ выключены, как это​ в противном случае​ время ‘ Преобразуем​А нужно время​ основное поле редактора​ объясните как это​ следующее (может еще​ на событие изменения​ ячейке должна появиться​: Спасибо огромное за​Заранее благодарна!​ прописывался пользователь, который​ дата, то :​

    ​ Set objFile =​​ обработку событий​
    ​nilem​ ссылке.​ может работать?​ B1=»».​
    ​ в строку и​ от времени очищать​5 сохраните файл​ сделать от А​ кому-нибудь пригодится): при​
    ​ листа, конкретно ячеки​ текущая дата. И​ быстрый ответ! Очень​
    ​Пытаюсь оперировать с​ внес изменения в​ActiveCell.NumberFormat = «dd/mm/yyyy»​ Nothing End SubNe​Application.EnableEvents = True​.​Это все меня​Serge_007​Данное правило должно​
    ​ выводим на форме​

    ​ таблицу полностью.​​ и закройте редактор​ до Я т.к.​ появлении значения в​ — А1.​ самое главное -​ выручили!​ Datepart, возможно делаю,​ таблицу.​ ActiveCell.Value = Date​ zabud»te snachala ustanovit»​End Sub​
    ​Взял ваши коды​ настораживает, а про​: Привет. Я думал​ работать и в​ Print CStr(Today)​
    ​Заранее спасибо!​ VBA​

    ​ я не ориентируюсь​​ столбце №7 в​
    ​SOV1​ дата не должна​Kubuntovod​ что-то не то,​
    ​К примеру: я​ ActiveCell.Columns.AutoFit​ reference na Scripting​Не помогает.​ и скопировал себе,​ итерацию я собираюсь​
    ​ здесь кто-то выкладывал.​ остальных ячейках столбцов​Смотри также​

    ​gera_vip​​6 измените ячейку​ совсем (( могу​
    ​ ячейках с 4​: Димит, ваш макрос​
    ​ больше изменяться, тк​: Внимательнее перечитал задание​ пока ничего не​ внес изменения в​Date​
    ​ Runtime​nilem​ при этом у​
    ​ только сейчас почитать.​А на Планете​ A и B.​
    ​Date​: Помогли решить проблему!​ в 7 столбце​ лишь макрос создать​

    ​ по 2000 и​​ очень даже оказался​ таблица редактируется в​ и понял, что​ выходит!​ ячейку B7, в​

    ​Date$​​Uspehov​: Если так, то​ меня они работают​
    ​Мур​ искать по слову​
    ​В дальнейшем вставленные​Категория​Если кому-то пригодится:​ и убедитесь в​ и то не​ в столбце №13​ нужным, только не​ течение месяца.​ надо смотреть на​Sub Анализ_истечения_СроковГодности ()​ ячейке G23 сменилась​Функция​vladconn​ вот кодец:​ только с ручника.​: Serge_007, вот такая​ «итерация» это всё​ даты не должны​Функции дат и​Private Sub Worksheet_Change(ByVal​ работе макроса​ работает почему-то ((​ в ячейках с​ хватило нам тяму​SOV1​ дату окончания срока​ Dim i As​ дата на 23.10.2015​Date​kalamees​200?’200px’:»+(this.scrollHeight+5)+’px’);»>Private Sub Worksheet_Change(ByVal Target​Я мало в​ примерно была формула:​ равно что по​ изменяться.​
    ​ времени​ Target As Range)​842-й​
    ​заранее спасибо!​

    ​ 4 по 2000​​ распространить его действие​
    ​: Нет желающих помочь?​
    ​ годности и сравнивать​ String, mon As​ 11:44, а в​позволяет получить текущую​: Vrode rabotaet, no​ As Range)​ этом понимаю, так​200?’200px’:»+(this.scrollHeight+5)+’px’);»>=ЕСЛИ(ТДАТА()»»;B1;»»))​ слову «эксель» искать​Ранее я получил​GalaDoker​ For Each cell​: Здравствуйте, все сделал​Димит​

    Функция Now

    ​ на весь столбец.​​ Слишком сложно или​​ её с последним​ String Dim mydate​ ячейке G24 сменилась​ системную дату по​ ne tak. ​If Target.Count >​ и должно быть. ​KuklP​
    ​Мур​ на форуме информацию,​: Еще один вопрос​ In Target If​ по вашей инструкции​: Private Sub Worksheet_Change(ByVal​ этих ячеек появляется​Помогите, плиз!​ наоборот?​ днём текущего месяца.​

    ​ запись на giroes.​ системному календарю компьютера​Data 9.11.2005, a​

    ​: Автофильтр по столбцу​

    ​:​как этого добиться​ по другой теме​​ cell <> «»​​ и получилось =)))​ Target As Range)​ дата и больше​Димит​Димит​DateDelimiter = Mid(Format(Date,​

    ​ As Date mydate​
    ​Мне это нужно​
    ​Возвращаемое значение​
    ​ mne nado polu4itj​ Sub​

    код VBA, чтобы автоматически тянулись дата и время (Формулы/Formulas)

    ​ что я делаю​​ А — непустые.​KuklP​
    ​ с помощью формул,​Написан код VBA,​ Then If Not​ спасибо огрмное. очень​ If Target.Cells.Count =​ не изменяется.​: Замените строку​: При изменении А1​ «General Date»), 3,​ = Date mydate​ для того, чтобы​Date​ 09.11.2005. Mozno kone4no​If Intersect(Me.UsedRange.Columns(1), Target)​ неправильно?​ Дальше выделяем колонку​

    ​, спасибо, завтра уже​​ только там циклическая​ чтобы при вводе​ Intersect(cell, Range(«W9:W3000»)) Is​
    ​ помогло.​ 1 And Target.Column​

    ​Private Sub Worksheet_Change(ByVal​​If Target.Address =​ в В1 появится​

    ​ 1) ed =​​ = DatePart(«m», Now)​ знать когда и​возвращает значение типа​ 4erez «IF» sdelatj,​

    Макрос, фиксированные текущее время и дата (Фиксированные текущее время и дата)

    ​ Is Nothing Then​​Serge_007​ Б в таблице.​
    ​ попробую Ваш код​ ссылка.​ текста в любой​
    ​ Nothing Then With​gera_vip​ = 7 And​ Target As Range)​
    ​ «$A$1» Then​ дата, но если​ Array(31, 28, 31,​ ‘ Текущая дата​ кем последний раз​
    ​ Variant субтитпа Date,​ no mozet programmno​ Exit Sub​: И Вам тоже​
    ​ F5-выделить-только видимые -​ применить.​Это все время​
    ​ ячейке в первом​ cell.Offset(0, -1) .Value​
    ​: Дабы не создавать​ Target.Row > 1​ If Target.Column =​на​
    ​ ячейка В1 пуста​ 30, 31, 30,​

    ​ MsgBox mydate D​​ редактировалась таблица.​ ​Date$​
    ​ mozno?​Application.EnableEvents = False​
    ​ здравствуйте​ ctrl+; — ctrl+Enter.​
    ​Отпишусь обязательно.​ раздрожает.​ столбце файла проставлялись​
    ​ = Date .EntireColumn.AutoFit​
    ​ новую тему, спрошу​
    ​ Then Target.Offset(0, -1)​
    ​ 7 And Target.Row​
    ​If Target.Column =​
    ​ (т.е. первый раз).​
    ​ 31, 31, 30,​
    ​ = Sheets(«ЖУ_СО»).Range(«F5») ‘Дата​Апострофф​возвращает данные типа​VladConn​If Target =​

    ​Что Вы имеете ввиду?​​Мур​Только как автофильтры​KuklP​

    ​ текущие дата и​​ End With End​ здесь.​ = Date End​ > 3 _​

    ​ 1 Then​​Не знаю это​
    ​ 31, 30, 31)​ окончания срока годности​: Попробуйте — Private​ String, содержащее текущую​
    ​: Ne znayu, na​ «» Then Target.Next​ЗЫ Я понимаю слово​

    ​: Техника по автофильтру​​ для этих целей​:​
    ​ время. Дата и​ If End If​Нашел код, который​ If End SubНу​ And Target.Row Public Sub www()​​ время тянутся системные.​​ Next cell End​ добавляет дату.​​ обьяснять тут особо​​ 2000 Then If​
    ​ 1 — это​Private Sub Worksheet_Change(ByVal​ m = Month(Date)​ Sheets(«ЖУ_СО»).Range(«G5») ‘Срок хранения​
    ​ As Range) Application.EnableEvents​ даты, возвращаемый функцией,​ raz vse pravil»no:​
    ​ Target.Next = Now​ тормоз».​А с макросом​Мур​
    ​Dim c As​ Можно, не меняя​ Sub​Private Sub Worksheet_Change(ByVal​

    ​ не чего​​ Target.Offset(0, 0).Value =​​ номер столбца, т.е.​​ Target As Range)​
    ​ ‘Текущий месяц числом​ в месяцах, формат​
    ​ = False If​ определяется национальными системными​ po dve pozicii​Application.EnableEvents = True​
    ​Мур​ пока еще не​
    ​:​ Range​ системное время, установить​
    ​Now​ Target As Range)​Макрос срабатывает на​ «да» Then If​

    ​ «А»​​ If Target.Address =​ y = Year(Date)​
    ​ ячейки числовой. i​

    ​ Not Intersect(Target, [a1:i50])​​ установками​ na den» i​End Sub​: С ручника, в​ пробовал, напишу позже.​Serge_007​

    ​For Each c​​ другой часовой пояс,​Функция​
    ​ For Each cell​ изменение одной ячейки​ Target.Offset(0, 1).Value =​

    ​Димит​​ «$A$1» Then If​
    ​ ‘Текущий год If​
    ​ = DateAdd(«m», m,​ Is Nothing Then​
    ​Параметры​ na mesyac.​
    ​Это надо вставить​
    ​ моем понимании, значит​nilem​, Вам не успел​
    ​ In ActiveSheet.UsedRange.Columns(1).Cells​
    ​ чтобы тянулось время,​
    ​Now​
    ​ in Target ‘проходим​
    ​ в 7 столбце​

    ​ «» Then Target.Offset(0,​​: Замените строку​ Target.Offset(0, 1).Value =​
    ​ m = 2​ D) ‘функция добавления​
    ​ [g23] = Now​
    ​Функция не имеет аргументов​
    ​VladConn​ в модуль листа​
    ​ что их приходтся​
    ​: Так интереснее получается​
    ​ ответить,​
    ​c(, 2) =​

    ​ например, точно по​​позволяет быстро узнать​​ по всем измененным​​ и строке 2​​ 1) = Date​​If Target.Address =​
    ​ «» Then Target.Offset(0,​ And (y Mod​ к текущей дате​ [g24] = Environ$(«username»)​Пример​
    ​: I nikakix tochek,​ (ПКМ по ярлычку​ запускать вручную.​
    ​200?’200px’:»+(this.scrollHeight+5)+’px’);»>Sub tyutyu()​kim​ IIf(c = «»,​

    ​ Москве. Если да,​​ текущую дату и​ ячейкам If Not​

    ​ End If End​ «$A$1» Then​ 1) = Date​

    ​ 4) <> 0​​ срока хранения Range(«T5»)​ End If Application.EnableEvents​’ Выводим текущую системную​ kstati: znaki podcherkivaniya.​

    ​ листа — Исходный​​Serge_007​Dim pz As​
    ​меня опередил,​

    ​ «», Date)​​ подскажите, как это​ время по системному​ Intersect(cell, Range(«A2:A1048576»)) Is​
    ​Макрос должен находится​ If End If​на​ End If End​ Then td =​
    ​ = i Dim​ = True End​ дату в заголовке​ Vi Format$ primenili?​ текст).​: А Вам как​ Range​
    ​это его решение​Next​ прописать в коде.​ календарю и часам​ Nothing Then ‘если​
    ​ в модуле листа.​ If Target.Column =​If Target.Column =​ If End Sub​
    ​ CStr(ed(m — 1))​ X As Range:​
    ​ Sub​
    ​ формы Dim Today​
    ​kalamees​

    ​kalamees​​ надо?​For Each pz​
    ​ было с помошью​End Sub​
    ​_Boroda_​ компьютера. Чтобы получить​ измененная ячейка попадает​
    ​842-й​ 13 And Target.Row​ 1 Then​
    ​SOV1​
    ​ Else td =​ Set X =​giroes​ Today=​
    ​: da ,spasibo. Razobralsja.​
    ​: Kak mozno opredelitj​
    ​По какому событию?​ In Range(«A1:A100»)​ формул, наверное я​или без цикла:​: Если всегда минус​

    Определение и вывод текущей даты

    ​ только системную дату​​ в диапазон A2:A1048576​: Спасибо. ))​ > 3 _​в данном случае​
    ​: Спасибо, Димит, что​ «29» ‘Високосный год​ Лист11.Range(«t4:t10000»).Find(mydate) If X​: Спасибо Вам большое!​
    ​Date​

    ​Регина123​​ tekuzuju datu i​Мур​If Len(pz) Then​ его обидел.​
    ​Код200?’200px’:»+(this.scrollHeight+5)+’px’);»>Sub www1()​ 4 часа, то​ без времени, используйте​

    ​ With cell.Offset(0, 4)​​А это как?​
    ​ And Target.Row

    Вставка текущей даты

    ​ списывать реактивы не​​ вопросом, очень выручили.​ Преобразуем в строку​ у кого-нить есть​A lu4she opredelitj​ так:​ = Date​ потом, действительно, каждый​End Sub​ — CDate(«4:00»)​
    ​ что пользователь может​ (чем выше цифра,​ ((​ «да» Then If​
    ​SOV1​ написать макрос вставки​ «0» & CStr(m)​ нужно! msg =​

    ​JulyMar​​ и выводим в​
    ​ макрос,который позволяет вставлять​ datu sozdanija dokumenta​Заполняем ячейку A1,​Else​раз при открытии​

    ​Только все это​​GalaDoker​ самостоятельно устанавливать системное​
    ​ тем дальше ячейка)​вот что мне​ Target.Offset(0, 1).Value =​

    Функция Date

    ​: Огромное Вам спасибо,​
    ​ даты при нажатии​

    ​ Else tm =​​ «Нет реактивов, у​​: Добрый день, уважаемые​ заголовке формы Form1.Caption​ текущую дату с​

    ​ i predstavitj datu​

    ​ появляется фиксированная текущая​​pz.Next = «»​ файла, эти пытки​​ с помощью автофильтра​​: Спасибо, это решило​ время и дату​ .Value = Date​ надо сделать чтобы​ «» Then Target.Offset(0,​ Димит.​

    ​ CStr(m) ‘Месяц прописью​

    ​ которых выходит срок​ ​ форумчане!​ = CStr(Today)​ учетом ширины столбца​ v etom vide?​​ дата и время​​End If​ с вопросами по​ делается за 3​ проблему​ на своем компьютере,​ ‘Дата .EntireColumn.AutoFit ‘выполняем​ ​ у меня в​
    ​ 1) = Date​
    ​И, чтобы закончить​
    ​ этот вариант тоже​ (01, 02 . ​

    Автоматический ввод текущей даты в Excel

    ​ годности в этом​​Подкиньте пожалуйста идею​
    ​Смотри также​ (автободпор ширины), то​Zaraneje spasibo programmjoram​
    ​ в ячейке B​Next​ циклическим ссылкам.​ секунды без макросов​GalaDoker​ поэтому эти значения​ автоподбор ширины для​
    ​ документе работало то,​ End If End​ этот вопрос: как​ интересный.​ 12) tdt =​ месяце!» MsgBox msg​
    ​ как реализовать поиск​Now​ есть макрос аналогичный​Masalov​ 1.​End Sub​Вообще, не в​ и формул.​
    ​: _Boroda_, смогу поставить​ могут не иметь​ столбца B, чтобы​ что вы написали​ If End If​

    ​ сориентировать макрос на​​Только объясните «чайнику»​ td & DateDelimiter​ Else r =​ по текущему месяцу​Категория​ сочетанию клавиш CTRL+;​: 1) например MsgBox​Далее, если вносим​KuklP​ курсе что такое​Serge_007​

    ​ вам «+» к​​ ничего общего с​
    ​ дата умещалась в​ выше ?​ End Sub​

    VBA Excel поиск среди дат по текущему месяцу

    ​ определенный диапазон ячеек.​​ — у нас​ & tm &​
    ​ X.Row n =​ среди значений в​Функции дат и​На данный момент​ Day(Date) & «_»​ изменения в ячейку​: Да Николай, это​ итерация, но попробую​: Киньте ссылку на​ репутации только через​ реальной датой и​ ячейке End With​Извините за откровенную​842-й​
    ​Напимер с А5​ макрос запускается кнопкой,​ DateDelimiter & CStr(y)​ Sheets(«ЖУ_СО»).Cells(r, 2) MsgBox​ столбце с датами.​ времени​
    ​ есть макрос,который вставляет​
    ​ & Month(Date) &​ А1, то опять​ я прозевал.​ разобраться.​ тему, где Вы​
    ​ 23 часа​ временем!​ End If Next​ безграмотность в этом​: Товарищи, помогите пожалуйста!​ до А100? (просто​ а как подключить​ ‘Дата последнего дня​ «Вышел срок годности​ Т.е. имеем столбец​giroes​ дату,но без подбора​ «_» & Year(Date)​ вставляется обновленная текущая​Ну тогда так,​Мур​ взяли такое решение.​Мур​Возвращаемое значение​ cell End SubМожет​ вопросе.​Я абсолютно не​ в первых строках​ данный макрос?​ текущего месяца прописью​ у » &​ с различными датами​: Здравствуйте!​ ширины.​2) по дате​ дата и время​ без цикла:​:​KuklP​: Добрый вечер! или​Возвращает значение типа Variant(Date),​ ли кто-то подсказать,​Димит​ знаю МVB но​ идет шапка таблицы. )​И еще макрос​ If D Sub www1()​

    ​kim​​: Привет, тезка. Виктор​ добрый. ​ содержащее текущую дату​

    Источник

    #установка даты в ячейку

    laik

    Дата: Пятница, 01.05.2020, 09:46 |
    Сообщение № 1

    Группа: Пользователи

    Ранг: Прохожий

    Сообщений: 2


    Репутация:

    0

    ±

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


    Excel 2019

    Создайте новую книгу Excel. Переименуйте ее в “Объектная модель”.

    Создайте в ней процедуру, которая будет переименовывать первый лист (новое имя листа — “Объектная модель”).

    После этого, обращаясь в коде к этому листу по имени, процедура должна заносить в ячейку A1 текущую дату.
    Вот как получилось у меня(только учась создавать макросы)
    [vba]

    Код

    Sub unification()
    ‘даем имя листу
    Sheets(«Лист1»).Select
    Sheets(«Лист1»).Name = «Объектная модель»
    ‘на данном листе
    Sheets(«Объектная модель»).Select
    ‘в ячейке А1 вводим формулу тдата
    Range(«A1»).Select
    ActiveCell.FormulaR1C1 = «=NOW()»

    End Sub

    [/vba]

    Но проблема в том, что дата не открывается автоматически. Нужно сделать так, чтобы он начинался автоматически при открытии страницы, и в ячейке A1 прописывалась дата через =NOW()
    Подскажите пожалуйста, где ошибка. Спасибо.

    Сообщение отредактировал laikПятница, 01.05.2020, 09:57

     

    Ответить

    _Boroda_

    Дата: Пятница, 01.05.2020, 11:21 |
    Сообщение № 2

    Группа: Модераторы

    Ранг: Местный житель

    Сообщений: 16618


    Репутация:

    6465

    ±

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


    2003; 2007; 2010; 2013 RUS

    Два варианта
    [vba]

    Код

    Sub unification() ‘ с проверкой на то, что первый лист уже называется «Объектная модель»
    ‘ но это наверное лишнее, ведь по условию задачи мы книгу только что создали
        shn_ = «Объектная модель»
        If Sheets(1).Name <> shn_ Then
            Sheets(1).Name = shn_
        End If
        Sheets(shn_).Range(«A1») = Date
    End Sub

    Sub unification1() ‘ без проверки
        Sheets(1).Name = «Объектная модель»
        Sheets(«Объектная модель»).Range(«A1») = Date
    End Sub

    [/vba]

    Нужно сделать так, чтобы он (1) начинался автоматически при открытии страницы (2), и в ячейке A1 прописывалась дата через =NOW() (3)

    1. Он — это кто? Макрос?
    2. Про это в условии ничего не сказано
    3. Это будет формула. А у Вас в задании просто заносить дату. Не формулой, а просто дату
    Еще
    4. Первый лист вовсе не обязательно называется «Лист1». Поэтому работаем не с Sheets(«Лист1»), а с листом с индексом, равным 1
    5. Select на лист и на ячейку вовсе не обязательны — замедляют работу, ухудшают читабельность кода и вообще моветон
    6. Если нужно, чтобы дата изменялась при открытии страницы (предположу, что это значит «при активации листа»), то немного иначе все. Отдельным макросом переименовываем лист, а вторым макросом, лежащим в модуле листа (см. справку), при активации листа переписываем дату
    [vba]

    Код

    Private Sub Worksheet_Activate()
        Range(«A1») = Date
    End Sub

    [/vba]
    7. Если же дату нужно переписывать не при активации листа, а при открытии книги (так было бы грамотнее, если, конечно, книга не бывает открыта в 12 ночи, когда дата сменяется), то код для даты пишем ужа в модуле книги
    [vba]

    Код

    Private Sub Workbook_Open()
        Sheets(«Объектная модель»).Range(«A1») = Date
    End Sub

    [/vba]


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

     

    Ответить

    laik

    Дата: Пятница, 01.05.2020, 17:07 |
    Сообщение № 3

    Группа: Пользователи

    Ранг: Прохожий

    Сообщений: 2


    Репутация:

    0

    ±

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


    Excel 2019

    Спасибо, попробую исправить и отпишусь.
    задание было такое:
    «Создайте новую книгу Excel. Переименуйте ее в “Объектная модель”.

    Создайте в нем процедуру, которая будет переименовывать первый лист (новое имя листа — “Объектная модель”).

    После этого, обращаясь в коде к этому листу по имени, процедура должна заносить в ячейку A1 текущую дату.»
    Но после того,как я написала свой макрос
    [vba]

    Код

    Sub unification()
    ‘даем имя листу
    Sheets(«Лист1»).Select
    Sheets(«Лист1»).Name = «Объектная модель»
    ‘на данном листе
    Sheets(«Объектная модель»).Select
    ‘в ячейке А1 вводим формулу тдата
    Range(«A1»).Select
    ActiveCell.FormulaR1C1 = «=NOW()»

    End Sub

    [/vba]
    мне ответили:
    «К сожалению, макрос не сработал. Нужно сделать так, чтобы он начинался автоматически при открытии страницы, и в ячейке A1 прописывалась дата через =NOW()»

    Спасибо за помощь

    Сообщение отредактировал Serge_007Четверг, 11.11.2021, 16:19

     

    Ответить

    _Boroda_

    Дата: Пятница, 01.05.2020, 20:21 |
    Сообщение № 4

    Группа: Модераторы

    Ранг: Местный житель

    Сообщений: 16618


    Репутация:

    6465

    ±

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


    2003; 2007; 2010; 2013 RUS

    — Прочитайте Правила форума
    — Оформите код тегами (в режиме правки поста выделите код и нажмите кнопку #, пояснялка здесь)


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

     

    Ответить

    ElenaOren

    Дата: Четверг, 11.11.2021, 15:23 |
    Сообщение № 5

    Группа: Пользователи

    Ранг: Новичок

    Сообщений: 12


    Репутация:

    0

    ±

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


    Excel 2002

    [vba]

    Код

    Private Sub Workbook_Open()
    Sheets(«Объектная модель»).Range(«A1») = Date
    End Sub

    [/vba]

    Здравствуйте. А как сделать так, чтобы в ячейку куда вставляется дата, перед датой стояло слово «от»? Н-р, от 11.11.2021

    Сообщение отредактировал Serge_007Четверг, 11.11.2021, 15:44

     

    Ответить

    Serge_007

    Дата: Четверг, 11.11.2021, 15:43 |
    Сообщение № 6

    Группа: Админы

    Ранг: Местный житель

    Сообщений: 15894


    Репутация:

    2623

    ±

    Замечаний:
    ±


    Excel 2016

    Здравствуйте

    [vba]

    Код

    Sub ElenaOren()
          Range(«A1») = «от » & Date
    End Sub

    [/vba]


    ЮMoney:41001419691823 | WMR:126292472390

     

    Ответить

    ElenaOren

    Дата: Четверг, 11.11.2021, 15:49 |
    Сообщение № 7

    Группа: Пользователи

    Ранг: Новичок

    Сообщений: 12


    Репутация:

    0

    ±

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


    Excel 2002

    Спасибо, Serge_007!

    Сообщение отредактировал Serge_007Четверг, 11.11.2021, 16:18

     

    Ответить

    Понравилась статья? Поделить с друзьями:
  • Vba excel вставить график
  • Vba excel ввод формулы в ячейку
  • Vba excel ввод только чисел
  • Vba excel ввод символа
  • Vba excel ввод данных в ячейку