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

P.S. страницы в макросах, когда копирую на другой лист 100% срабатывает макрос, поэтому параметры вставки не канают
 
Цитата
Александр К написал:
страницы в макросах
Привет!
ну и добавьте макрос, который будет очищать от ненужного.
Сравнение прайсов, таблиц - без настроек
 

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

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

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

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

Код
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
 
Цитата
Александр К написал:
ActiveSheet.Unprotect Password:="123456"
добавьте ниже строку
Код
.FormatConditions.Delete
Сравнение прайсов, таблиц - без настроек
 
выдает ошибку invalid or unqualified reference и выделяет желтым верхнюю строку......P
Код
rivate Sub Worksheet_Change(ByVal Target As Range)
     
 
Попробуйте почитать здесь:
http://www.planetaexcel.ru/forum/index.php?PAGE_NAME=message&FID=1&TID=95857&amp...
 
Дабы не плодить... Здесь же спрошу... Подскажите пожалуйста, какой командой укоротить макрос на блокирование ячеек...
Чтоб вот так как у меня не писать каждую ячейку отдельно, а диапазоном может...
Интересует именно строчный диапазон и именно влево от изменяемой ячейки..
Код
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
 
Цитата
Александр К написал:
Дабы не плодить...
плодите, ибо ваш вопрос не по теме.
Одна теме - один вопрос.

ругаться будут, ну ладно,
Код
.Offset(0, -23).Resize(1,19).Locked = True
Изменено: Михаил Витальевич С. - 07.12.2019 07:52:56
 
вместо этого:
Код
            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
напишите
Код
  cell.offset(0,13) = date
  cell.offset(0,16) = time
  cell.offset(0,-7).resize(1,19).Locked = true
Изменено: Ігор Гончаренко - 07.12.2019 08:15:47 (провтыкал что там еще время записывается)
Программисты - это люди, решающие проблемы, о существовании которых Вы не подозревали, методами, которых Вы не понимаете!
 
Resize(1,19)
А можете расшифровать, что значит 1, а что 19. А то я не понимаю)

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

со следующими строками так же. изменили - строка заблокировалась (кроме одной ячейки) и т.д.
 
увидел, одна ячейка пропускается, не блокируется
Код
  cell.offset(0,13) = date
  cell.offset(0,16) = time
  cell.offset(0,-7).resize(1,14).Locked = true
  cell.offset(0, 8).resize(1, 5).Locked = true
и еще в ячейку можно написать Now - будет вам и дата и время (зачем их хранить в разных ячейках)
Программисты - это люди, решающие проблемы, о существовании которых Вы не подозревали, методами, которых Вы не понимаете!
 
Цитата
Ігор Гончаренко написал: напишите cell.offset(0,13) = date...
Спасибо огромное. Чуть не так написали, но главное что суть ясна)) спасибо чуть поправил и получилось как надо..

Цитата
и еще в ячейку можно написать Now - будет вам и дата и время (зачем их хранить в разных ячейках)
там расчет идет от даты, короче так надо)
 
Цитата
Александр К написал:
Чуть не так написали
выполните начальный код (поменяйте что-то в колонке U)
в другом файле замените указанный фрагмент на предложенный и поменяйте что-то в той же ячейке колонки U
найдите 10 отличий, между результатами в двух файлах (кроме времени, оно может отличаться)
Изменено: Ігор Гончаренко - 07.12.2019 10:22:12
Программисты - это люди, решающие проблемы, о существовании которых Вы не подозревали, методами, которых Вы не понимаете!
Страницы: 1
Наверх