В книге эксель - на каждой странице, в ячейке А1 находится фигура - круг "Овал 1".
Как сделать так, чтобы если файл эксель сохранен, или например - только что открыт - то все фигуры "Овал 1" на всех листах имеют зеленую заливку (но если документ не сохранен - то все они делаются красными) ?
(Дело в том, что в текстовом редакторе "Notepad++" есть такой маячок, который цветом показывает когда документ сохранен, а когда нет - и это очень удобно. А в экселе нет такого)
Доброго времени суток.
В книге эксель - на каждой странице, в ячейке А1 находится фигура - круг "Овал 1".
Как сделать так, чтобы если файл эксель сохранен, или например - только что открыт - то все фигуры "Овал 1" на всех листах имеют зеленую заливку (но если документ не сохранен - то все они делаются красными) ?
(Дело в том, что в текстовом редакторе "Notepad++" есть такой маячок, который цветом показывает когда документ сохранен, а когда нет - и это очень удобно. А в экселе нет такого)димитрий2
Dim TimeToRun 'глобальная переменная, где хранится следующее время запуска 'этот макрос назначает время следующего запуска Sub NextRun() TimeToRun = Now + TimeValue("00:00:01") 'прибавляем к текущему времени 1 сек Application.OnTime TimeToRun, "NextRun" 'назначаем следующий запуск If ThisWorkbook.Saved Then [a1].Interior.Color = vbGreen ThisWorkbook.Saved = True Else [a1].Interior.Color = vbRed End If End Sub
[/vba]
[vba]
Код
Dim TimeToRun 'глобальная переменная, где хранится следующее время запуска 'этот макрос назначает время следующего запуска Sub NextRun() TimeToRun = Now + TimeValue("00:00:01") 'прибавляем к текущему времени 1 сек Application.OnTime TimeToRun, "NextRun" 'назначаем следующий запуск If ThisWorkbook.Saved Then [a1].Interior.Color = vbGreen ThisWorkbook.Saved = True Else [a1].Interior.Color = vbRed End If End Sub
Private Sub Workbook_SheetSelectionChange(ByVal Sh As Object, ByVal Target As Range) If ThisWorkbook.Saved Then Sh.Shapes.Range(Array("Oval 1")).Fill.ForeColor.RGB = RGB(0, 176, 80) Else Sh.Shapes.Range(Array("Oval 1")).Fill.ForeColor.RGB = RGB(255, 0, 0) end if End Sub
[/vba]
или так
[vba]
Код
Private Sub Workbook_SheetSelectionChange(ByVal Sh As Object, ByVal Target As Range) If ThisWorkbook.Saved Then Sh.Shapes.Range(Array("Oval 1")).Fill.ForeColor.RGB = RGB(0, 176, 80) Else Sh.Shapes.Range(Array("Oval 1")).Fill.ForeColor.RGB = RGB(255, 0, 0) end if End Sub