Страницы: 1
RSS
Двойное кольцевое шкалирование (два кольца из сегментов‑штрихов), Макросом нарисовать круговую диаграмму, состоящую из одинаковых прямоугольных штрихов, заливка по значениям из ячеек
 
Добрый день! Макрос рисует а-ля круговую диаграмму из двух колец, состоящих из прямоугольных штрихов. Почему-то часть штрихов рисуется с меньшей высотой. Можно сделать штрихи одинаковой высоты?
Изменено: Владимир Ш. - 06.08.2026 08:46:35
 
файл-пример приложите
Согласие есть продукт при полном непротивлении сторон
 
Файл исходник с макросом.
 
Добрый день. В макросе неверный порядок отрисовки штрихов. При достаточно больших углах поворота штрихи просто выходят за границы листа и обрезаются. Нужно в блоках  With rect  ... End With параметр .Rotation = angleMidInner переместить на последнюю строку блока.
Т.е как то так  
Код
 With rect
            .Name = "InnerSegment_" & i
            .Height = barHeight
            .Width = innerBarWidth
            .Fill.ForeColor.RGB = IIf(i <= segments * valueInner, colorInnerFilled, colorEmpty)
            .Line.Visible = msoFalse
            .Top = centerY - innerRadius * Cos(Application.Radians(angleMidInner)) - (.Height / 2)
            .Left = centerX + innerRadius * Sin(Application.Radians(angleMidInner)) - (.Width / 2)
            .Rotation = angleMidInner
        End With
 
Спасибо! Почему-то с рабочего компа недоступна область с Текстом сообщения, не могу ответить, пишу с телефона. Код чуть поправили, ваш выдал ошибку.  
 
Результат
 
можно и обычным образом построить 2 шкалы штриховка только будет отличаться
познакомился с Excel
 
или еще немного дополнить шкалы стрелками
познакомился с Excel
Страницы: 1
Читают тему
Наверх