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

Страницы: 1 2 След.
Начало работы макроса от выделенной ячейки.
 
Работает спасибо)
Изменено: vikttur - 06.09.2021 10:49:31
Начало работы макроса от выделенной ячейки.
 
Код
Sub ЧВ()
CarryOn = MsgBox("Выполнить?", vbYesNo, "Message from Excel")
  If CarryOn = vbYes Then
  ActiveSheet.Unprotect "password"
    Cells(ActiveCell.Row, "F") = Date 'в столбец С активной строки ставим дату
    Cells(ActiveCell.Row, "T").ClearContents 'очищаем столбец F активной строки
     With Selection.Interior
        Cells(ActiveCell.Row, "T").Pattern = xlSolid
        Cells(ActiveCell.Row, "T").PatternColorIndex = xlAutomatic
        Cells(ActiveCell.Row, "T").ThemeColor = xlThemeColorAccent6
        Cells(ActiveCell.Row, "T").TintAndShade = 0.399975585192419
        .PatternTintAndShade = 0
    End With
     ActiveSheet.Protect "password"
  End If
End Sub


Подскажите - что не так? через запись макроса сделал, скопировал, добавил - ошибку выдаёт в пределах With. Хочу чтобы подкрашивалась ячейка при выполнении макроса
Изменено: Александр К - 06.09.2021 05:50:23
Начало работы макроса от выделенной ячейки.
 
:excl: Спасибо :excl:  ;)
Начало работы макроса от выделенной ячейки.
 
ОГРОМНЕЙШАЯ БЛАГОДАРНОСТЬ!!!

Цитата
New написал: в коде Игоря надо заменить слово clearecontents на слово "ClearContents"
Он и так работает  :D
Изменено: vikttur - 06.09.2021 10:50:33
Начало работы макроса от выделенной ячейки.
 
Спасибо - работает)
Подскажите пожалуйста вот это что значит? if .column > 4 then

И ещё вопросик (чуть по другому). Как сделать, чтобы неважно какая ячейка в строке выделена - макрос выполнялся только к определённым столбикам. как объяснить - не знаю, может, чтобы отсчёт (куда вставить дату и какую ячейку очистить) шёл от первого столбика...

например пользователь выделит не ту ячейку от которой начнётся отсчёт (0;-5);(0;-2) и дата с удалением зайдут не в ту ячейку...
Изменено: Александр К - 06.09.2021 02:53:46
Начало работы макроса от выделенной ячейки.
 
Добрый день знатокам программирования. Будьте добры - помогите с макросом.

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

Заранее благодарю.
Изменено: vikttur - 04.09.2021 10:45:22
[ Закрыто] Запрет переноса условного форматирования при копировании ячеек
 
Цитата
Ігор Гончаренко написал: напишите cell.offset(0,13) = date...
Спасибо огромное. Чуть не так написали, но главное что суть ясна)) спасибо чуть поправил и получилось как надо..

Цитата
и еще в ячейку можно написать Now - будет вам и дата и время (зачем их хранить в разных ячейках)
там расчет идет от даты, короче так надо)
[ Закрыто] Запрет переноса условного форматирования при копировании ячеек
 
Resize(1,19)
А можете расшифровать, что значит 1, а что 19. А то я не понимаю)

вот например по моему макросу. изменяется ячейка, от неё вправо на 13 вставляется дата, вправо на 16 время.
потом от времени надо влево 4 ячейки заблокировать, пятую не надо, и от шестой до столбика А (т.е. до первой ячейки в строке)

со следующими строками так же. изменили - строка заблокировалась (кроме одной ячейки) и т.д.
[ Закрыто] Запрет переноса условного форматирования при копировании ячеек
 
Дабы не плодить... Здесь же спрошу... Подскажите пожалуйста, какой командой укоротить макрос на блокирование ячеек...
Чтоб вот так как у меня не писать каждую ячейку отдельно, а диапазоном может...
Интересует именно строчный диапазон и именно влево от изменяемой ячейки..
Код
Private Sub Worksheet_Change(ByVal Target As Range)
     
    For Each cell In Target
       If Not Intersect(cell, Range("U:U")) Is Nothing Then
     
            With cell.Offset(0, 13)
               .Value = Date
               End With
            With cell.Offset(0, 16)
               .Value = Time
               .Offset(0, -4).Locked = True
               .Offset(0, -5).Locked = True
               .Offset(0, -6).Locked = True
               .Offset(0, -7).Locked = True
               .Offset(0, -8).Locked = True
               .Offset(0, -10).Locked = True
               .Offset(0, -11).Locked = True
               .Offset(0, -12).Locked = True
               .Offset(0, -13).Locked = True
               .Offset(0, -14).Locked = True
               .Offset(0, -15).Locked = True
               .Offset(0, -16).Locked = True
               .Offset(0, -17).Locked = True
               .Offset(0, -18).Locked = True
               .Offset(0, -19).Locked = True
               .Offset(0, -20).Locked = True
               .Offset(0, -21).Locked = True
               .Offset(0, -22).Locked = True
               .Offset(0, -23).Locked = True
            ActiveSheet.EnableOutlining = True
            End With
            ActiveSheet.EnableOutlining = True
            DrawingObjects:=True, Contents:=True, Scenarios:=True _
        , AllowFormattingCells:=True
        End If
    Next cell
End Sub



Изменено: Александр К - 07.12.2019 07:43:38
VBA. Если измененная ячейка пустая не вносить изменения в соседнюю ячейку, а менять только дату в ячейке дальше.
 
Огромнейшее СПАААССИБО!!!
VBA. Если измененная ячейка пустая не вносить изменения в соседнюю ячейку, а менять только дату в ячейке дальше.
 
А как это в самом макросе будет выглядеть, вставьте пожалуйста.  
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
[ Закрыто] Запрет переноса условного форматирования при копировании ячеек
 
выдает ошибку invalid or unqualified reference и выделяет желтым верхнюю строку......P
Код
rivate Sub Worksheet_Change(ByVal Target As Range)
     
[ Закрыто] Запрет переноса условного форматирования при копировании ячеек
 

Тогда прошу помощи)

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

Ах да... На этом листе тоже есть свои правила усл.форматирования... Надо чтобы они не удалились при этом

В общем, если можно конечно, чтобы формат копируемых ячеек сохранился, а правила нет

Код
Private Sub Worksheet_Change(ByVal Target As Range)
     
    For Each cell In Target
       If Not Intersect(cell, Range("U:U")) Is Nothing Then
       ActiveSheet.Unprotect Password:="123456"
            With cell.Offset(0, 11)
               .Value = Date
               .Offset(0, -2).Locked = True
               .Offset(0, -3).Locked = True
               .Offset(0, -4).Locked = True
               .Offset(0, -5).Locked = True
               .Offset(0, -6).Locked = True
               .Offset(0, -7).Locked = True
               .Offset(0, -8).Locked = True
               .Offset(0, -9).Locked = True
               .Offset(0, -10).Locked = True
               ActiveSheet.EnableOutlining = True
            End With
            ActiveSheet.EnableOutlining = True
            ActiveSheet.Protect Password:="123456", DrawingObjects:=True, Contents:=True, Scenarios:=True _
        , AllowFormattingCells:=True
        End If
    Next cell
End Sub
Изменено: Александр К - 03.10.2017 10:29:19
[ Закрыто] Запрет переноса условного форматирования при копировании ячеек
 
Здравствуйте. Подскажите пожалуйста, как сделать чтобы правила условного форматирования при копировании данных с другого листа не копировались вместе с данными...
Не знаю понятно или нет...
Скажем есть лист с данными в n-столбов, в каждом столбце свои правила форматирования. При копировании строки например в другой лист - вместе со строкой копируются все правила. Как сделать чтобы форматирование не копировалось... А еще лучше, чтобы сам формат копировался в ячейках а правила нет)

P.S. страницы в макросах, когда копирую на другой лист 100% срабатывает макрос, поэтому параметры вставки не канают
Копирование условного форматирование в другие книги
 
Здравствуйте. Подскажите пожалуйста, как сделать чтобы правила условного форматирования при копировании данных с другого листа не копировались вместе с данными...
Не знаю понятно или нет...
Скажем есть лист с данными в n-столбов, в каждом столбце свои правила форматирования. При копировании строки например в другой лист - вместе со строкой копируются все правила. Как сделать чтобы форматирование не копировалось... А еще лучше, чтобы сам формат копировался в ячейках а правила нет)

P.S. страницы в макросах, когда копирую на другой лист 100% срабатывает макрос, поэтому параметры вставки не канают
Изменено: Александр К - 01.10.2017 03:48:52
Автоматическая вставка дат при вводе и при удалении
 
Цитата
k61 написал:
Сокращённый паразит на теле макроса heso:
Что значит сокращенный паразит?)
Вроде все работает хорошо без паразитов)
Изменено: Александр К - 02.03.2017 06:34:18
Автоматическая вставка дат при вводе и при удалении
 
СПАСИБО ОГРОМНОЕ)))
Автоматическая вставка дат при вводе и при удалении
 
Попробовал, не совсем то, при вставке вставляется, но и при удалении вставляется дата в (0,1) надо чтобы только при вводе вставлялось в (0,1) а при удалении только (0,2) можно так?
Автоматическая вставка дат при вводе и при удалении
 
Здравствуйте, форумчане. Подскажите пожалуйста как сделать... 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

Автоматическая вставка значения из другой ячейки
 
Спасибо большое, все получилось
Изменено: Александр К - 30.11.2016 15:01:35
Автоматическая вставка значения из другой ячейки
 
Здравствуйте есть вот такой код
Код
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
Вставка значения из формулы макросом
 
В противном случае, при редактировании (может и ошибочном а может и специальном) это приведет к выполнению макроса и вставке новых дат... А этого делать нельзя...В том и суть макроса, чтобы отражал дату внесения информации, ну и не только)
Вставка значения из формулы макросом
 
Меня мой макрос устраивает тем что он работает)))
Дело в том что я не сразу пронял про www...
И до сих пор не совсем понял что сделал этот макрос? Чтобы защита ячеек действовала только на действия юзера? А макросу чтоб защита не мешала? так я понимаю.. Я сделал выполнение этого макроса... Он должен оставаться в Коде?
Но вы мне еще убрали защиту ячейки в столбце Q после редактирования...  
Вставка значения из формулы макросом
 
я просто вставил 13 строчку из вашего первого варианта в свой и все....никакие www не добавлял - все работает - Спасибо
Изменено: Александр К - 17.10.2016 08:38:44
Вставка значения из формулы макросом
 
Цитата
kuklp написал:
Один раз выполните макрос www, больше не понадобится.
Не понял
Цитата
kuklp написал:
P.S. зачем у Вас цикл For Each cell In Target? Вы меняете сразу по нескольку строк?
нет не меняю...Я не понимаю почти что там написано) базу макроса слизал где то на этом сайте)
Вставка значения из формулы макросом
 
Цитата
kuklp написал:
Я писал о примере в файле Эксель, а Вы опять это недоразумение скопировали...
мммм
Вставка значения из формулы макросом
 
Код работает, я в него вставил вот только 15 строку... ниже код без нее...
Нужно чтобы при редактировании в столбце Q:Q в ячейку q-13 вставлялось значение формулы из q-6. Незнаю понятно или нет объясняю...
ну вот в 13 и 14 строке макроса: при редактировании в столбце Q:Q в q-12 вставляется День, в q-11 месяц...
Код
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)
            .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
Вставка значения из формулы макросом
 
Код
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
Изменить способ вставки по умолчанию
 
еще один малюсенький вопросик. Почему когда вручную ставишь защиту, устанавливаешь разрешение на изменение формата ячеек - тогда работает, а когда макрос ставит защиту то делать вообще ничего нельзя)))???
Страницы: 1 2 След.
Наверх