1. Есть две колонки с цифрами. На несколько строк. Нужно в первой колонке подсветить те ячейки, в которых значения больше, чем по втором столбце в той же строке. Создаю условный формат для первой ячейки, далее копирую на остальные ячейки столбца - и по ним в условном формате не происходит автоматического изменения ссылки на ячейку второго столбца (остается наименование первой ячейки).
2. При добавлении новых строк - сохраняется всё тот же условный формат...с ссылкой на первую ячейку второго столбца.
Как сделать условное форматирование диапазона с автоматическим изменением "адреса" ячеек в условии форматирования (аналогично формулам)?
1. Есть две колонки с цифрами. На несколько строк. Нужно в первой колонке подсветить те ячейки, в которых значения больше, чем по втором столбце в той же строке. Создаю условный формат для первой ячейки, далее копирую на остальные ячейки столбца - и по ним в условном формате не происходит автоматического изменения ссылки на ячейку второго столбца (остается наименование первой ячейки).
2. При добавлении новых строк - сохраняется всё тот же условный формат...с ссылкой на первую ячейку второго столбца.
Как сделать условное форматирование диапазона с автоматическим изменением "адреса" ячеек в условии форматирования (аналогично формулам)?ctcvostok
Перерыла весь инет. Простой ответ не нашла. Рекомендуют макрос, но я в этом вообще 0.
[vba]
Код
Sub addAndBtnClick() Set Button = ActiveSheet.Buttons(Application.Caller) With Button.TopLeftCell ColumnIndex = .Column RowIndex = Button.TopLeftCell.Row End With currentRowIndex = RowIndex Set Table = ActiveSheet.ListObjects("Table name") Table.ListRows.Add (currentRowIndex) Set currentCell = Table.DataBodyRange.Cells(currentRowIndex, Table.ListColumns("Column name").Index) currentCell.Value = "Cell value" Call setCreateButtons End Sub
Sub removeAndBtnClick() Set Button = ActiveSheet.Buttons(Application.Caller) With Button.TopLeftCell ColumnIndex = .Column RowIndex = Button.TopLeftCell.Row End With currentRowIndex = RowIndex Set Table = ActiveSheet.ListObjects("Table name") Table.ListRows(currentRowIndex - 1).Delete End Sub
Sub setCreateButtons() Set Table = ActiveSheet.ListObjects("Table name") ActiveSheet.Buttons.Delete For x = 1 To Table.Range.Rows.Count For y = 1 To Table.Range.Columns.Count
If y = Table.ListColumns("Column name").Index Then Set cell = Table.Range.Cells(x, y) If cell.Text = "Some condition" Then Set btn = ActiveSheet.Buttons.Add(cell.Left + cell.Width - 2 * cell.Height, cell.Top, cell.Height, cell.Height) btn.Text = "-" btn.OnAction = "removeAndBtnClick" Set btn = ActiveSheet.Buttons.Add(cell.Left + cell.Width - cell.Height, cell.Top, cell.Height, cell.Height) btn.Text = "+" btn.OnAction = "addAndBtnClick" End If End If Next Next End Sub
[/vba]
Перерыла весь инет. Простой ответ не нашла. Рекомендуют макрос, но я в этом вообще 0.
[vba]
Код
Sub addAndBtnClick() Set Button = ActiveSheet.Buttons(Application.Caller) With Button.TopLeftCell ColumnIndex = .Column RowIndex = Button.TopLeftCell.Row End With currentRowIndex = RowIndex Set Table = ActiveSheet.ListObjects("Table name") Table.ListRows.Add (currentRowIndex) Set currentCell = Table.DataBodyRange.Cells(currentRowIndex, Table.ListColumns("Column name").Index) currentCell.Value = "Cell value" Call setCreateButtons End Sub
Sub removeAndBtnClick() Set Button = ActiveSheet.Buttons(Application.Caller) With Button.TopLeftCell ColumnIndex = .Column RowIndex = Button.TopLeftCell.Row End With currentRowIndex = RowIndex Set Table = ActiveSheet.ListObjects("Table name") Table.ListRows(currentRowIndex - 1).Delete End Sub
Sub setCreateButtons() Set Table = ActiveSheet.ListObjects("Table name") ActiveSheet.Buttons.Delete For x = 1 To Table.Range.Rows.Count For y = 1 To Table.Range.Columns.Count
If y = Table.ListColumns("Column name").Index Then Set cell = Table.Range.Cells(x, y) If cell.Text = "Some condition" Then Set btn = ActiveSheet.Buttons.Add(cell.Left + cell.Width - 2 * cell.Height, cell.Top, cell.Height, cell.Height) btn.Text = "-" btn.OnAction = "removeAndBtnClick" Set btn = ActiveSheet.Buttons.Add(cell.Left + cell.Width - cell.Height, cell.Top, cell.Height, cell.Height) btn.Text = "+" btn.OnAction = "addAndBtnClick" End If End If Next Next End Sub