Добрый вечер. Подскажите как справиться с задачей: существует книга Excel с несколькими, связанными между собой листами, на которых есть данные. Необходимо: если ячейки на основном листе пустые, то и ячейки, в которых ссылки на основной лист должны оставаться пустыми, если же в ячейках присутствуют данные, то они должны вставиться в ячейках как например (=ссылка), которые ссылаются на них, а так же эти ячейки должны выделиться обычными черными внешними границами как при нажатии (Ctrl+Shift+&), соответственно при исчезновении данных должно исчезнуть и форматирование, а при появлении соответственно появляться автоматически. Задача с форматированием границ ячеек основная
спасибо за ссылки, изучу! но у меня задачка немного посложней, под позициями есть ячейка итого, она должна в зависимости от отсутствующих ячеек смещаться, т.е. если например 1 позиция то под ней, если 10 позиций то соответственно сумма под всеми 10ю позициями.
userbasya написал: есть ячейка итого, она должна в зависимости от отсутствующих ячеек смещаться, т.е. если например 1 позиция то под ней, если 10 позиций то соответственно сумма под всеми 10ю позициями.
А сделать итого сверху нельзя? чтобы она считала все ячейки внизу
Юрий М написал: как потом в них будете вносить данные?
В них данные подгружаются автоматически с другого листа, вопрос в том чтобы в зависимости от содержания дефиса или непосредственно данных эти строки раскрывались.
в силу небольшого опыта, мне сначала пришло в голову что границы должны исчезать а текст должен становиться белым, на белом фоне, а пункт "итого" как-то динамически появляться поверх ячеек с измененным форматированием, идея фильтрации на этом фоне смотрится куда разумнее, правда пока еще непонятно работает ли это?!
Sub schet()
Dim LastRow, StartRow, I As Long
StartRow = 3
With Sheets("ссылающийся лист")
LastRow = .Cells(Rows.Count, 2).End(xlUp).Row
.Range("A5:D" & LastRow).Clear
I = 2
While (IsNumeric(Sheets("лист с формой для заполнения").Cells(I, 1)))
.Range("A" & StartRow + I & ":D" & StartRow + I).Value = Sheets("лист с формой для заполнения").Range("A" & I & ":D" & I).Value
I = I + 1
Wend
I = I + StartRow
.Cells(I, 2) = "Итого:"
.Cells(I, 3).Formula = "= Sum(C5:C" & I - 1 & ")"
.Cells(I, 4).Formula = "= Sum(D5:D" & I - 1 & ")"
.Range("A5:D" & I - 1).Borders.LineStyle = 1
.Range("B" & I & ":D" & I).Borders.LineStyle = 1
End With
End Sub