Страницы: 1
RSS
Копирование ячейки в умную таблицу без изменения цвета
 
Добрый день!  Нашел на просторах способ выделить активную ячейку цветом, цвет можно поставить любой.
Но есть недостаток такого способа, при копировании в умную таблицу - меняется цвет ячеек. Как можно копировать ячейки без изменения цвета?
Код выделения цвета ячейки через RGB:
Код
Private Sub Worksheet_SelectionChange(ByVal Target As Range)
Cells.FormatConditions.Delete
With Target
.FormatConditions.Add Type:=xlExpression, Formula1:=True
.FormatConditions(1).Interior.Color = RGB(252, 252, 77)
End With
End Sub
Данные в таблицу вводятся с помощью кода:
Код
Private Sub CommandButton2_Click()
Dim iLastRow As Integer
With Sheets("Отгрузки")
ActiveCell.Copy
iLastRow = .Cells(Rows.Count, 1).End(xlUp).Offset(0, 2).PasteSpecial
ActiveCell.Select
SendKeys ("{Enter}")
End With
End Sub
Таблица подхватывает значение, но после этого цвет ячейки уже нельзя поменять никак, только удалять строку.
 
Код
Private Sub CommandButton2_Click()
With Sheets("Отгрузки")
    .Cells(.Cells(.Rows.Count, 1).End(xlUp).Row, 3) = ActiveCell
End With
End Sub
Мастерство программиста не в том, чтобы писать программы, работающие без ошибок.
А в том, чтобы писать программы, работающие при любом количестве ошибок.
 
Всем доброго времени суток!

Вставил строки 3 - 6 макроса для изменения цвета ячейки (из первого поста темы) в макрос своего файла. Всё нормально работает - при выделении пустой ячейки диапазона К:АО в ней появляется значение ячейки столбца I этой же строки и изменяется цвет ячейки. Однако, при удалении данных из этой ячейки её цвет остаётся изменённым (((
Уважаемые знатоки VBA, просьба, если это возможно, дописать в код макроса условие, при котором в случае очищения ячейки возвращался бы её предыдущий цвет ...
 
Alemox, Огромное спасибо!!!!! Так коротко и просто, теперь стало намного удобнее.
 
Цитата
samass написал:
Однако, при удалении данных из этой ячейки её цвет остаётся изменённым (((
Странно. Попробовал вставить строки, удалить строки, очистить строки, написать новый текст в строку. Цвет ячеек не менялся при всех операциях.
Попробуйте вставить код в конкретную страницу - лист1, правая кнопка, исходный текст.
Заметил одну тонкость. При копировании ячейки вручную Ctrl+C и вставке через enter цвет ячейки окрашивается.
Если же вставить через специальную вставку - значения, то данные вносятся без форматирования (только текст).
Если вставить с окрашиванием ячейки ее уже нельзя будет перекрасить, т.к. это было сделано через макрос.
Изменено: IVAN92 - 18.02.2020 23:40:50
 
IVAN92, спасибо за участие, но Вы, видимо, не совсем поняли суть проблемы, попробую объяснить ещё раз.
Если открыть приложенный мною файл и щёлкнуть мышкой на какой-нибудь пустой ячейке в "сетке"(диапазон K:AO), то в ней появится число и ячейка изменит свой цвет - макрос выполняет то, что от него требуется. Бывает так, что необходимо подкорректировать "сетку", удалить данные из некоторых ячеек, но, при этом, остаётся цвет ячеек, заданный макросом при выделении (((
Хотелось бы, чтобы "очищенные" ячейки принимали свой первоначальный вид (до выделения). К сожалению, не владею VBA, поэтому и обращаюсь к специалистам с вышеизложенной просьбой ...
Изменено: samass - 19.02.2020 11:05:22
 
Цитата
samass написал:
Вы, видимо, не совсем поняли суть проблемы
Открыл ваш файл. У вас код находиться здесь:

Можно поместить его сюда и проверить.
 
 
Возможно нельзя создавать новую тему.
Как продолжение этой темы.
Имеется код для цветного выделения ячейки
Код
Private Sub Worksheet_SelectionChange(ByVal Target As Range)
Cells.FormatConditions.Delete
With Target
.FormatConditions.Add Type:=xlExpression, Formula1:=True
.FormatConditions(1).Interior.Color = RGB(252, 252, 77)
End With
End Sub
Опытным путем удалось узнать, если вставить данный код во все листы, то можно копировать данные с исходным форматированием (шрифты, цвет ячеек, цвет границ).
Но есть недостаток - при печати выделенного диапазона изменяются: цвет ячеек (например если чередуются строки), цветные границы (ставятся черные).
Как можно сделать, чтобы при печати выделенной области оставить цвет ячеек и границ.
Были мысли такие - сделать отдельно макрос флажок. При необходимости печати отключать и включать код выше. Но возможно есть другой способ?
Изменено: IVAN92 - 21.02.2020 22:30:10
Страницы: 1
Наверх