Как в VBA Excel автоматически вставить текущую дату в ячейку и защитить лист
Вставка
- Опубліковано 5 жов 2024
- Пример автоматического заполнения одной ячейки Excel (в неё автоматически вводится текущая дата) при вводе какого-то значения в другую ячейку. Плюс реализована защита ячейки от последующего изменения.
Текстовая версия урока d-nik.site/ru/...
Поддержать автора чашечкой кофе можна тут 👉 www.buymeacoff...
Спасибо за урок, очень ценная информация.
Не за что. Это ответ подписчику. Но получился хороший урок по VBA.
То же самое но "другими словами" (фиксируем дату внесения значения в А1):
в модуле листа:
Private Sub Worksheet_Change(ByVal Target As Range)
If Target.Address = "$A$1" And Not IsEmpty(Target) And IsEmpty(Range("B1")) Then
InsertDateB1
End If
End Sub
в глобальном модуле:
Public Sub InsertDateB1()
Cells.Locked = False
Range("B1") = Date
Columns("B:B").EntireColumn.AutoFit
Range("B1").Locked = True
ActiveSheet.Protect Password:="123", DrawingObjects:=True, Contents:=True, _
Scenarios:=True, AllowFormattingCells:=True
End Sub
Второй вариант - фиксируем дату внесения/изменения значения в А1:
в модуле листа:
Private Sub Worksheet_Change(ByVal Target As Range)
If Target.Address = "$A$1" And Not IsEmpty(Target) Then
InsertDateB1
End If
End Sub
в глобальном модуле:
Public Sub InsertDateB1()
ActiveSheet.Unprotect "123"
Cells.Locked = False
Range("B1") = Date
Columns("B:B").EntireColumn.AutoFit
Range("B1").Locked = True
ActiveSheet.Protect Password:="123", DrawingObjects:=True, Contents:=True, _
Scenarios:=True, AllowFormattingCells:=True
End Sub
Благодарю. Как объяснил, то и получил))
Под фиксированной я понимал конечно немного другое, а именно, чтобы дата не менялась на текущую при открытии документа скажем через день. Но идея с защитой тоже полезна.
А как теперь сделать:
1) Чтобы при повторном вводе (в другой день) в туже самую ячейку, дата обновлялась на текущую?
2) Как применить этот макрос для таблицы? Как бы растянуть...Желательно для умной таблицы
Я же вам пример написал. Простите, но за вас программу делать не буду. Включайте логику. Ведь всё и так понятно. Например, добавьте ещё условие: Если в ячейке B1 не текущая дата, то выполнять код. А по второму вопросу не совсем понял, что значит "растянуть"?
@@DNikWebmaster Спасибо Вам большое!!!
Понятно все человеку разбирающемуся в VBA, я таковым не являюсь)) Будет время разберусь.
А по второму вопросу...Ну протянуть, не совсем по экселевски выразился... Треба, чтобы в столбец А вводились данные, а в столбце B в соответствующих ячейках записывались даты. Не буду же я для каждой ячейки таблицы писать макрос)) Опять же наверняка это все можно прописать в коде....Но я пока не шарю
@@DNikWebmaster мне тоже нужно чтоб можно было растянуть. Что нада прописать ?
@@onemorelight9216 Что растянуть? Куда растянуть?
@@DNikWebmaster на видео показано только ячейки а1 и в1 .
А мне нужно чтоб это работал на весь столбец А, и на столбец Б
Может в коде нада просто написать А:А ?
Спасибо за видео, но вопрос стоял про фиксированную ДАТУ, а не ячейку.
Интересное видео. Подскажите что такое Target.Count = 1 ???
ОТЛИЧИЕ ВИДЕОУРОК
Отличный урок,спасибо огромное!Подскажите пожалуйста код по такому же принципу,только с добавлением текущего времени🙏
Используйте функцию Date d-nik.pro/programmirovanie/programmirovanie-na-vba/27-funktsii-vba-dlya-raboty-s-datoj-i-vremenem
Огромное спасибо,получилось,только проблема в том что это работает только с ячейками А1 B1,как распространить эти действия на все нижеследующие ячейки?Подскажите пожалуйста
@@hasanhasanzada4715 Распишите пожалуйста подробно, что должно происходить и после чего. Чтобы я понимал логику вашей программы.
Я сканирую штрихкод товаров,а их много,и хочу чтобы к каждому товару рядом автоматически записывалось время сканирования.С этой формулой получается только для одной ячейки А1 и B1,а мне нужно,чтобы на все ячейки распространялось
Заранее,спасибо большое
Как Вставить Отметку Даты В Ячейку, Если В Excel Установлен Флажок?
Отличный урок. Но получается что любой пользователь может открыт код и посмотреть пароль и снять защиту или чего то я не понял?
Получается что так.
Спасибо за ответ, а нельзя ли пароль скрыть?
@@КенБеков Сама по себе защита в Excel очень слабая. Но как вариант, можно запретить открывать код VBA. Можно установить ещё и пароль на открытие кода VBA. Тогда пользователь не сможет посмотреть ваш код, и соответственно не сможет увидеть пароль. Запишу сегодня видео об этом. Интересную тему вы мне подбросили.
@@DNikWebmaster Тогда будем ждать
а как сделать чтоб в столбце А1 автоматом ставилась дата, когда редактируют ячейки в других столбцах?
Подумайте. Принцип как реализовать подобные вещи, я показал.
Help, а можете помочь, сил нет. Я согласна уже заплатить и не терять время((((
Что нужно сделать?