Выбрать дату в календареВыбрать дату в календаре

Страницы: 1
Начало работы макроса от выделенной ячейки.
 
Добрый день знатокам программирования. Будьте добры - помогите с макросом.

Макрос будет включаться с кнопки. Нужно чтобы он начал действие от выделенной пользователем ячейки.
Действия:
1. Снять защиту листа с паролем.
2. Ушёл на 5 ячеек влево (от выделенной перед началом макроса ячейки) и поставил там сегодняшнюю дату.
3. Ушёл на 2 ячейки влево (от выделенной перед началом макроса ячейки) и удалил там значение (если оно там имеется)
4. Поставил защиту листа обратно.

Заранее благодарю.
Изменено: vikttur - 04.09.2021 10:45:22
VBA. Если измененная ячейка пустая не вносить изменения в соседнюю ячейку, а менять только дату в ячейке дальше.
 
Код
Private Sub Worksheet_Change(ByVal Target As Range)
Application.ScreenUpdating = False
Application.EnableEvents = False
On Error Resume Next
For Each cell In Target
    With cell
        If Not Intersect(cell, Range("AE:AE")) Is Nothing Then
            Me.Unprotect Password:="лфкфе1708159357"
            .Offset(0, -1).Value = Now
            Me.Protect Password:="лфкфе1708159357", DrawingObjects:=True, Contents:=True, Scenarios:=True _
        , AllowFormattingCells:=True
        ElseIf Not Intersect(cell, Range("AF:AF")) Is Nothing Then
        Me.Unprotect Password:="лфкфе1708159357"
            .Offset(0, -11).Value = Date
            .Offset(0, -20).Value = Date + 30
            .Offset(0, -22).Value = .Offset(0, -7).Value
            .Locked = True
            Me.Protect Password:="лфкфе1708159357", DrawingObjects:=True, Contents:=True, Scenarios:=True _
        , AllowFormattingCells:=True
        ElseIf Not Intersect(Target, Range("Y:Y")) Is Nothing Then
        Me.Unprotect Password:="лфкфе1708159357"
        Target.Offset(0, -17) = Target
        .Offset(0, -18).Value = Now
            Me.Protect Password:="лфкфе1708159357", DrawingObjects:=True, Contents:=True, Scenarios:=True _
        , AllowFormattingCells:=True
        ElseIf Not Intersect(Target, Range("AI:AI")) Is Nothing Then
        Me.Unprotect Password:="лфкфе1708159357"
            .Offset(0, 1).Value = Now
            Me.Protect Password:="лфкфе1708159357", DrawingObjects:=True, Contents:=True, Scenarios:=True _
        , AllowFormattingCells:=True
        End If
    End With
Next
Application.EnableEvents = True
Application.ScreenUpdating = True
End Sub
Помогите пожалуйста поправить макрос, сейчас при изменении значения в диапазоне "Y:Y" в ячейку (0,-17) вставляется  то что туда вводят, а в ячейку (0,-18) - дата и время изменения.

Но при удалении значения из ячейки "Y:Y", мой макрос так же удаляет в ячейке (0,-17) значение которое там было.
Вот нужно сделать так, чтобы именно при удалении он не трогал ячейку (0,-17). Дату изменения (0,-18) пусть вставляет, а значение в ячейке (0,-17) нужно оставить, которое было до удаления.
Изменено: Александр К - 21.04.2018 08:03:37
[ Закрыто] Запрет переноса условного форматирования при копировании ячеек
 
Здравствуйте. Подскажите пожалуйста, как сделать чтобы правила условного форматирования при копировании данных с другого листа не копировались вместе с данными...
Не знаю понятно или нет...
Скажем есть лист с данными в n-столбов, в каждом столбце свои правила форматирования. При копировании строки например в другой лист - вместе со строкой копируются все правила. Как сделать чтобы форматирование не копировалось... А еще лучше, чтобы сам формат копировался в ячейках а правила нет)

P.S. страницы в макросах, когда копирую на другой лист 100% срабатывает макрос, поэтому параметры вставки не канают
Автоматическая вставка дат при вводе и при удалении
 
Здравствуйте, форумчане. Подскажите пожалуйста как сделать... http://www.planetaexcel.ru/techniques/6/44/
Как в этом макросе сделать так, чтобы при вводе значения в ячейку дата вставлялась в одну ячейку (как например в этом макросе - в следующую справа), а при удалении значения из этой же ячйеки (del) в другую. (например через одну вправо).
Код
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

Автоматическая вставка значения из другой ячейки
 
Здравствуйте есть вот такой код
Код
Private Sub Worksheet_Change(ByVal Target As Range)
Application.ScreenUpdating = False
Application.EnableEvents = False
On Error Resume Next
For Each cell In Target
    With cell
        If Not Intersect(cell, Range("P:P")) Is Nothing Then
            Me.Unprotect Password:="êàðàò1708159357"
            .Offset(0, -1).Value = Now
            Me.Protect Password:="êàðàò1708159357", DrawingObjects:=True, Contents:=True, Scenarios:=True _
        , AllowFormattingCells:=True
        ElseIf Not Intersect(cell, Range("Q:Q")) Is Nothing Then
        Me.Unprotect Password:="êàðàò1708159357"
            .Offset(0, -12).Value = Day(Date + 30)
            .Offset(0, -11).Value = Month(Date + 30)
            .Offset(0, -14).Value = .Offset(0, -6).Value
            .Locked = True
            Me.Protect Password:="êàðàò1708159357", DrawingObjects:=True, Contents:=True, Scenarios:=True _
        , AllowFormattingCells:=True
        End If
    End With
Next
Application.EnableEvents = True
Application.ScreenUpdating = True
End Sub
Подскажите пожалуйста, куда и что добавить чтобы при изменении или вводе в столбик К, в ячейку справа вставилось значение ячейки K деленное на 11...
т.е. что то типа такого)
Код
If Not Intersect(cell, Range("K:K")) Is Nothing Then
            Me.Unprotect Password:="êàðàò1708159357"
            .Offset(0, 1).Value = .Offset(0, 0).Value/11
            Me.Protect Password:="êàðàò1708159357", DrawingObjects:=True, Contents:=True, Scenarios:=True _
        , AllowFormattingCells:=True
Изменено: Александр К - 30.11.2016 11:31:29
Вставка значения из формулы макросом
 
Код
Application.ScreenUpdating = False
Application.EnableEvents = False
On Error Resume Next
For Each cell In Target
    With cell
        If Not Intersect(cell, Range("N:N")) Is Nothing Then
            Me.Unprotect Password:="123"
            .Offset(0, 1).Value = Now
            Me.Protect Password:="123", DrawingObjects:=True, Contents:=True, Scenarios:=True _
        , AllowFormattingCells:=True
        ElseIf Not Intersect(cell, Range("Q:Q")) Is Nothing Then
        Me.Unprotect Password:="123"
            .Offset(0, -12).Value = Day(Date + 30)
            .Offset(0, -11).Value = Month(Date + 30)
            .Offset(0, -13).Value
            .Locked = True
            Me.Protect Password:="123", DrawingObjects:=True, Contents:=True, Scenarios:=True _
        , AllowFormattingCells:=True
        End If
    End With
Next
Application.EnableEvents = True
Application.ScreenUpdating = True
End Sub
помогите пожалуйста уже три часа экспериментирую ничего не помогает)
Что нужно вставить после Value где .Offset(0, -13).  (15строка)
Что вставить чтобы  в -13 столбе вписывалось ЗНАЧЕНИЕ формулы, которая находится от столбца Q:Q в -6 столбце?
что ни пробовал, то ложь, то ссылку на формулу вставляет....
Изменено: Александр К - 17.10.2016 07:14:32
Макрос для сортирови во всплывающем списке
 
Здравствуйте. Подскажите. Можно ли как нибудь вывести сортировку отдельной кнопкой с уже забитыми параметрами?

Т.е. Есть таблица, в которой столбы: номер, фио, дата. Хотелось бы вывести на страницу отдельную кнопку сортировки в виде уже запрограммированного списка... чтоб к примеру работник не смог допустить ошибки при сортировке... Например выделил не все столбы или еще что... т.е. одним нажатием включить сортировку таблицы либо по фио либо по номеру либо по дате...

P.s. пожалуйста не надо отвечать что это и так просто делается или еще что нибудь в этом роде... Я это прекрасно знаю, хочу сделать это для работников, нужен конкретный ответ на конкретный вопрос. Можно ли сделать так или нет. Если можно то буду очень признателен если подскажете как
Защита отдельной ячейки
 
Здравствуйте. Подскажите. Как защитить отдельную ячейку. Я начитался на форуме про защиту листа и все такое. НО!
После того как я ставлю защиту листа, я не могу вставлять, удалять со сдвигом, ячейки в таблице... А мне это нужно...
В общем. Я хочу чтоб только определенные ячейки защищались от редактирования, но в остальном вся функциональность оставалась...
Страницы: 1
Наверх