Форум программистов, компьютерный форум, киберфорум
Наши страницы
VBA
Войти
Регистрация
Восстановить пароль
 
Рейтинг 4.57/14: Рейтинг темы: голосов - 14, средняя оценка - 4.57
curbat
0 / 0 / 0
Регистрация: 27.09.2012
Сообщений: 25
#1

Рисунок, процентная заливка определённым цветом

12.10.2012, 15:18. Просмотров 2615. Ответов 15
Метки нет (Все метки)

Здравствуйте.
Реально ли в VBA на форме создать изображение ёмкости с условием что в ёмкости будет меняться цвет заливки в процентном соотношении в зависимости от поступающего сигнала 0-100% ? Если на форме невозможно, на листе возможно?
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
12.10.2012, 15:18
Ответы с готовыми решениями:

По значению в ячейке выделить определённым цветом всю строку
Добрый вечер! Ну, пожалуйста, необходим макрос: В определённом столбце(R) если...

Заливка строки цветом
Здравствуйте. Подскажите пожалуйста как мне изменить код. если в определенной...

VBA Excel: Заливка цветом
Задача следующая: В ячейке могут появляться значения от 1 до 300. Нужно, что бы...

Заливка ячейки текущим цветом
Подскажите кто-нибудь, как сделать заливку ячейки тем цветом, который выбран в...

Поиск значений по таблице и заливка цветом
Дорогие форумчане, нужен ваш совет. Есть такая задача: 1. Один файл Excel....

15
Sasha_Smirnov
5466 / 1306 / 143
Регистрация: 08.02.2009
Сообщений: 4,013
Записей в блоге: 29
12.10.2012, 16:08 #2
Лучший ответ Сообщение было отмечено как решение

Решение

Возможно, что и возможно. Я сделал на странице документа; запуск по F7; код по Alt-F11.
3
Вложения
Тип файла: doc tank.doc (34.5 Кб, 53 просмотров)
Dragokas
Эксперт WindowsАвтор FAQ
16969 / 7054 / 856
Регистрация: 25.12.2011
Сообщений: 10,868
Записей в блоге: 16
13.10.2012, 02:38 #3
Sasha_Smirnov, F7 - это проверка правописания
0
Sasha_Smirnov
5466 / 1306 / 143
Регистрация: 08.02.2009
Сообщений: 4,013
Записей в блоге: 29
13.10.2012, 15:06 #4
А я назначил макросу. Хотя и неудачно: сохранил это назначение в шаблоне (а не в tank.doc).

Но код в докумете работает (при активной библиотеке MsoTriState), словом, возможность есть!
0
Sasha_Smirnov
5466 / 1306 / 143
Регистрация: 08.02.2009
Сообщений: 4,013
Записей в блоге: 29
13.10.2012, 18:07 #5
Лучший ответ Сообщение было отмечено как решение

Решение

У ячеек есть вид заливки, но нет свойства Transparency, но "наливание краской" изобразить можно:
Visual Basic
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
Sub green_filling_of_shapes() ' Макрос записан 13.10.2012 (Admin)
Dim t As Single, n As Byte: n = 8           'число итераций для наполнения цветом
    If InStr(Application.Name, "Excel") Then
        ActiveSheet.DrawingObjects.Select 'выделили на листе всё нарисованное
        If ActiveSheet.DrawingObjects.Count = 0 Then Exit Sub
    Else
        ActiveDocument.Shapes.SelectAll   'выделили в документе фигуры 1
        If Selection.ShapeRange.Count = 0 Then Exit Sub
    End If
 
    With Selection.ShapeRange.Fill  'работаем с их заливкой
        .Solid                              'сплошная
        .ForeColor.RGB = RGB(0, 255, 0)     'цвет по RGB
        .Transparency = 1                   'прозрачность (полная)
'Stop 'эта строка, после настройки скорости заливки, более не нужна
        Do While n > 0               'прозрачность будем уменьшать до 0
            t = Timer: t = t + 0.2  'задержка шага уменьшения на 0,2 секунды
            n = n - 1
            .Transparency = n / (n + 1) 'прозрачность падает: 0,875 0,75 0,625...
            While Timer < t: Wend
        Loop
    End With
End Sub
Дествующая модель приложена, запуск по F5, F5.
2
Вложения
Тип файла: doc tank.doc (29.5 Кб, 40 просмотров)
curbat
0 / 0 / 0
Регистрация: 27.09.2012
Сообщений: 25
15.10.2012, 13:56  [ТС] #6
Спасибо всем за помощь. Я наверно неправильно изложил что мне нужно. Эта ёмкость, заполняется водой или любым другим веществом снизу вверх . Например человек набирает воду со скважины в ёмкость, в ёмкости стоит аналоговый датчик с него и берутся данные для уровня.
0
Казанский
14067 / 5790 / 1510
Регистрация: 24.09.2011
Сообщений: 9,080
15.10.2012, 14:41 #7
Лучший ответ Сообщение было отмечено как решение

Решение

В качестве шутки (в которой есть доля правды ) - решение без VBA
5
Вложения
Тип файла: xls tank_no_vba.xls (26.5 Кб, 42 просмотров)
SlavaRus
1091 / 205 / 29
Регистрация: 15.03.2010
Сообщений: 641
15.10.2012, 15:39 #8
Лучший ответ Сообщение было отмечено как решение

Решение

Посмотри, так не подойдет?
4
Вложения
Тип файла: xls Proba.xls (34.5 Кб, 60 просмотров)
Казанский
14067 / 5790 / 1510
Регистрация: 24.09.2011
Сообщений: 9,080
15.10.2012, 17:07 #9
SlavaRus, можно ресайзить только синий лейбл, расположенный поверх белого. Белый всегда полного размера.
1
toiai
3090 / 885 / 191
Регистрация: 29.05.2010
Сообщений: 1,887
15.10.2012, 19:16 #10
Лучший ответ Сообщение было отмечено как решение

Решение

Вот предлагаю вариант с использованием диаграммы без VBA, может пригодится.
6
Вложения
Тип файла: xls Заполнение емкости без VBA.xls (32.5 Кб, 38 просмотров)
curbat
0 / 0 / 0
Регистрация: 27.09.2012
Сообщений: 25
16.10.2012, 10:27  [ТС] #11
Благодарю всех. Буду переваривать.
0
denis88
0 / 0 / 0
Регистрация: 12.10.2012
Сообщений: 9
16.10.2012, 12:41 #12
Цитата Сообщение от toiai Посмотреть сообщение
Вот предлагаю вариант с использованием диаграммы без VBA, может пригодится.
не опытен в VBA...Напиши пожалуйста как ты это сделал?
0
Dragokas
Эксперт WindowsАвтор FAQ
16969 / 7054 / 856
Регистрация: 25.12.2011
Сообщений: 10,868
Записей в блоге: 16
16.10.2012, 13:18 #13
denis88, нажимаешь ПКМ по панеле управления, галочка "Элементы управления".
Появится панель. Выбираешь первую кнопку "Режим конструктора".

ПКМ по форме со стрелками ("счетчик" или "SpinButton"), свойства. LinkedCell -> C3 (вот здесь задана ячейка).
Выходим из режима конструктора.

Далее создаем диаграмму на основе исходных данных в ячейке С3.
1
curbat
0 / 0 / 0
Регистрация: 27.09.2012
Сообщений: 25
18.10.2012, 15:34  [ТС] #14
Здравствуйте, ещё раз. Нужно что то наподобие этого. Только как можно наложить ещё поверх танка и лейбла контур танка?
0
Вложения
Тип файла: zip Proba2.zip (14.2 Кб, 15 просмотров)
curbat
0 / 0 / 0
Регистрация: 27.09.2012
Сообщений: 25
25.10.2012, 15:16  [ТС] #15
Получилось, что хотел.
0
Вложения
Тип файла: xls Proba3.xls (53.0 Кб, 33 просмотров)
mc-black
2759 / 695 / 101
Регистрация: 04.02.2011
Сообщений: 1,421
25.10.2012, 18:47 #16
Цитата Сообщение от Sasha_Smirnov Посмотреть сообщение
Возможно, что и возможно. Я сделал на странице документа; запуск по F7; код по Alt-F11.
Вообще-то у меня в этом примере плавного изменения не было. Вместо msoTrue сделал просто True, а после изменения прозрачности автофигуры в цикле поставил DoEvents.
0
25.10.2012, 18:47
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
25.10.2012, 18:47

Заливка ячейки другим цветом в цикле
Здравствуйте, уважаемые форумчане. Подскажите пожалуйста... Есть таблица,...

Заливка выделенного текста выбранным пользователем цветом
Заливка выделенного текста выбранным пользователем цветом. Заливка фона...

Заливка цветом строки после ее вывода в документ
Доброе время суток! Прошу помочь: С вордовского макроса вывожу в документ...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
16
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2018, vBulletin Solutions, Inc.
Рейтинг@Mail.ru