Домашняя страница Undo Do Save Карта сайта Обратная связь Поиск по форуму
МИР MS EXCEL - Гость.xls

Вход

Регистрация

Напомнить пароль

 

= Мир MS Excel/Прозрачность картинки по условию - Мир MS Excel

Старая форма входа
  • Страница 1 из 1
  • 1
Модератор форума: китин, _Boroda_  
Прозрачность картинки по условию
vsemdobra Дата: Среда, 01.01.2025, 11:49 | Сообщение № 1
Группа: Пользователи
Ранг: Прохожий
Сообщений: 4
Репутация: 0 ±
Замечаний: 0% ±

Здравствуйте форумчани. В вопросах макросов несилен, но имеется потребность в его создании. Имеется картинка. Эта картинка по условию становится то прозрачной (полностью), то нет. Условие: если ячейка А1 (например) не имеет цвета, то она прозрачная. Если ячейка А1 имеет цвет (например, красный), то наша картинка становится не прозрачной. Буду благодарен за помощь. Спасибо.
 
Ответить
СообщениеЗдравствуйте форумчани. В вопросах макросов несилен, но имеется потребность в его создании. Имеется картинка. Эта картинка по условию становится то прозрачной (полностью), то нет. Условие: если ячейка А1 (например) не имеет цвета, то она прозрачная. Если ячейка А1 имеет цвет (например, красный), то наша картинка становится не прозрачной. Буду благодарен за помощь. Спасибо.

Автор - vsemdobra
Дата добавления - 01.01.2025 в 11:49
Gustav Дата: Среда, 01.01.2025, 17:57 | Сообщение № 2
Группа: Админы
Ранг: Участник клуба
Сообщений: 2816
Репутация: 1187 ±
Замечаний: ±

начинал с Excel 4.0, видел 2.1
Установка цвета ячейки или, говоря в общем, ее форматирование не вызывает никакой событийной процедуры рабочего листа, внутри которой можно было бы управлять прозрачностью рисунка. Для запуска подобной процедуры требуется более "весомое" действие: изменение значения ячейки, либо двойной щелчок по ней, либо выбор другой ячейки, либо помещение на рабочий лист специальной кнопки, либо еще что-нибудь с явно выраженным событием, которое можно обработать. Наконец, можно просто периодически по необходимости запускать отдельную процедуру вручную.

Вам следует пересмотреть постановку задачи и "привязаться" к какому-то более явному событию из перечисленных выше, нежели просто изменение цвета заливки ячейки.


МОИ: Ник, Tip box: 41001663842605
 
Ответить
СообщениеУстановка цвета ячейки или, говоря в общем, ее форматирование не вызывает никакой событийной процедуры рабочего листа, внутри которой можно было бы управлять прозрачностью рисунка. Для запуска подобной процедуры требуется более "весомое" действие: изменение значения ячейки, либо двойной щелчок по ней, либо выбор другой ячейки, либо помещение на рабочий лист специальной кнопки, либо еще что-нибудь с явно выраженным событием, которое можно обработать. Наконец, можно просто периодически по необходимости запускать отдельную процедуру вручную.

Вам следует пересмотреть постановку задачи и "привязаться" к какому-то более явному событию из перечисленных выше, нежели просто изменение цвета заливки ячейки.

Автор - Gustav
Дата добавления - 01.01.2025 в 17:57
vsemdobra Дата: Среда, 01.01.2025, 19:39 | Сообщение № 3
Группа: Пользователи
Ранг: Прохожий
Сообщений: 4
Репутация: 0 ±
Замечаний: 0% ±

Спасибо, что ответили и дали развернутый ответ. А если условием для ячейки А1 в описанном выше случае будет значение «00:00:00». Дело в том, что в ячейки А1 у меня секундомер с обратным отсчётом на 10 секунд. Когда секундомер достигает значения «00:00:00», то ячейка закрашивается в красный цвет. Это краткое объяснение. А если вместо красного цвета привязать условие к значению «00:00:00», т.е. достижение этого значения картинка становится не прозрачной, а если выше этого значения, то картинка всегда прозрачная. Так возможно?
 
Ответить
СообщениеСпасибо, что ответили и дали развернутый ответ. А если условием для ячейки А1 в описанном выше случае будет значение «00:00:00». Дело в том, что в ячейки А1 у меня секундомер с обратным отсчётом на 10 секунд. Когда секундомер достигает значения «00:00:00», то ячейка закрашивается в красный цвет. Это краткое объяснение. А если вместо красного цвета привязать условие к значению «00:00:00», т.е. достижение этого значения картинка становится не прозрачной, а если выше этого значения, то картинка всегда прозрачная. Так возможно?

Автор - vsemdobra
Дата добавления - 01.01.2025 в 19:39
Gustav Дата: Четверг, 02.01.2025, 15:56 | Сообщение № 4
Группа: Админы
Ранг: Участник клуба
Сообщений: 2816
Репутация: 1187 ±
Замечаний: ±

начинал с Excel 4.0, видел 2.1
в ячейки А1 у меня секундомер с обратным отсчётом на 10 секунд

Что представляет собой этот секундомер? Это же, наверное, процедура, написанная на VB? Вот вам и место, которое можно подправить и дописать в него код по управлению прозрачностью рисунка. А как запускается этот секундомер?

Кстати, по поводу прозрачности рисунка. Что-то я не нашёл свойство "прозрачность" (Transparency?) среди свойств внедренного на лист рисунка. Такое свойство есть у таких подъобъектов рисунка как "Тень" и "Отражение", но у самого рисунка такое свойство, увы, не наблюдается. Вы сами вручную через пользовательский интерфейс Excel умеете как-то изменить прозрачность рисунка? Если да, то как именно? Возможно, здесь есть путаница понятий и имеется в виду не "прозрачность", а, например, "видимость" (Visible).

Вообще, конечно, давно пора показать это ваше "секундомерное хозяйство" здесь в виде файла-примера. А то разговор какой-то не очень предметный получается... И потом, если срастется решение, на каком материале мне или кому-то другому Вам всё это показывать? Мы же не будем сами этот тестовый "полигон" городить с нуля, тем более, что в ваших словах пока "не всё так однозначно".


МОИ: Ник, Tip box: 41001663842605
 
Ответить
Сообщение
в ячейки А1 у меня секундомер с обратным отсчётом на 10 секунд

Что представляет собой этот секундомер? Это же, наверное, процедура, написанная на VB? Вот вам и место, которое можно подправить и дописать в него код по управлению прозрачностью рисунка. А как запускается этот секундомер?

Кстати, по поводу прозрачности рисунка. Что-то я не нашёл свойство "прозрачность" (Transparency?) среди свойств внедренного на лист рисунка. Такое свойство есть у таких подъобъектов рисунка как "Тень" и "Отражение", но у самого рисунка такое свойство, увы, не наблюдается. Вы сами вручную через пользовательский интерфейс Excel умеете как-то изменить прозрачность рисунка? Если да, то как именно? Возможно, здесь есть путаница понятий и имеется в виду не "прозрачность", а, например, "видимость" (Visible).

Вообще, конечно, давно пора показать это ваше "секундомерное хозяйство" здесь в виде файла-примера. А то разговор какой-то не очень предметный получается... И потом, если срастется решение, на каком материале мне или кому-то другому Вам всё это показывать? Мы же не будем сами этот тестовый "полигон" городить с нуля, тем более, что в ваших словах пока "не всё так однозначно".

Автор - Gustav
Дата добавления - 02.01.2025 в 15:56
vsemdobra Дата: Пятница, 03.01.2025, 00:37 | Сообщение № 5
Группа: Пользователи
Ранг: Прохожий
Сообщений: 4
Репутация: 0 ±
Замечаний: 0% ±

Обратите внимание на файл, что я приложил. Нажав на кнопку "крутить спички" включается счетчик отсчета секундомера. При нажатии на кнопку добавляется 10 секунд, и отсчитывается вниз пока на достигнет значения 00:00:00. Цель такая, чтобы пока значение секундомера БОЛЬШЕ ЧЕМ 00:00:00, то синий прямоугольник должен быть прозрачным. Как только значение достигает 00:00:00, то прямоугольник становится непрозрачным. Теперь по поводу вашего вопроса о прозрачности. Прикладываю скриншот, где указывается прозрачность для фигуры прямоугольник. Такое свойство для фигуры в моей версии экзеля имеется. На скриншоте выделил красным цветом. Это игра, для развития кратковременной памяти ребёнка. Ребёнок нажимает на "крутить спички", в течении 10 секунд должен запомнить расположение спичек, а после истечения 10 секунд прямоугольник становится непрозрачным и закрывает с собой все спички. И ребёнок по памяти должен воспроизвести расположение спичек ручкой на бумаге. Вот как то так.
К сообщению приложен файл: cifry.xlsm (62.2 Kb) · 2953007.png (65.3 Kb)
 
Ответить
СообщениеОбратите внимание на файл, что я приложил. Нажав на кнопку "крутить спички" включается счетчик отсчета секундомера. При нажатии на кнопку добавляется 10 секунд, и отсчитывается вниз пока на достигнет значения 00:00:00. Цель такая, чтобы пока значение секундомера БОЛЬШЕ ЧЕМ 00:00:00, то синий прямоугольник должен быть прозрачным. Как только значение достигает 00:00:00, то прямоугольник становится непрозрачным. Теперь по поводу вашего вопроса о прозрачности. Прикладываю скриншот, где указывается прозрачность для фигуры прямоугольник. Такое свойство для фигуры в моей версии экзеля имеется. На скриншоте выделил красным цветом. Это игра, для развития кратковременной памяти ребёнка. Ребёнок нажимает на "крутить спички", в течении 10 секунд должен запомнить расположение спичек, а после истечения 10 секунд прямоугольник становится непрозрачным и закрывает с собой все спички. И ребёнок по памяти должен воспроизвести расположение спичек ручкой на бумаге. Вот как то так.

Автор - vsemdobra
Дата добавления - 03.01.2025 в 00:37
Gustav Дата: Суббота, 04.01.2025, 01:13 | Сообщение № 6
Группа: Админы
Ранг: Участник клуба
Сообщений: 2816
Репутация: 1187 ±
Замечаний: ±

начинал с Excel 4.0, видел 2.1
Ну, вроде, что-то получилось и, вроде, даже похоже на правду (см. прилагаемый файл). Я совместил "синий" (когда он непрозрачный) прямоугольник с полем для спичек и придал коду модулей 26 и 27 следующий вид:

Код модуля Module27:
[vba]
Код
Sub закрыть_спички()    
    set_transparency 0    
End Sub

Sub открыть_спички()
    set_transparency 1
End Sub

Sub set_transparency(transp)
    Worksheets("Спички").Shapes("Прямоугольник 2").Fill.Transparency = transp
End Sub
[/vba]

Код модуля Module26:
[vba]
Код
Public interval As Date
Sub timer_spichki()
    interval = Now + TimeValue("00:00:01")
    
    If Range("W10").Value < TimeValue("00:00:01") / 2 Then
        закрыть_спички
        Exit Sub
    End If

    Range("W10") = Range("W10") - TimeValue("00:00:01")
     
    Application.OnTime interval, "timer_spichki"
End Sub
[/vba]

Остальные подробности см. в модуле листа "Спички" в процедурах нажатия кнопок 1 и 2. В них добавлен вызов процедуры "открыть_спички". А вот вызов "закрыть_спички" перебрался в процедуру продления таймера "timer_spichki" в Module26.
К сообщению приложен файл: cifry03.xlsm (48.6 Kb)


МОИ: Ник, Tip box: 41001663842605
 
Ответить
СообщениеНу, вроде, что-то получилось и, вроде, даже похоже на правду (см. прилагаемый файл). Я совместил "синий" (когда он непрозрачный) прямоугольник с полем для спичек и придал коду модулей 26 и 27 следующий вид:

Код модуля Module27:
[vba]
Код
Sub закрыть_спички()    
    set_transparency 0    
End Sub

Sub открыть_спички()
    set_transparency 1
End Sub

Sub set_transparency(transp)
    Worksheets("Спички").Shapes("Прямоугольник 2").Fill.Transparency = transp
End Sub
[/vba]

Код модуля Module26:
[vba]
Код
Public interval As Date
Sub timer_spichki()
    interval = Now + TimeValue("00:00:01")
    
    If Range("W10").Value < TimeValue("00:00:01") / 2 Then
        закрыть_спички
        Exit Sub
    End If

    Range("W10") = Range("W10") - TimeValue("00:00:01")
     
    Application.OnTime interval, "timer_spichki"
End Sub
[/vba]

Остальные подробности см. в модуле листа "Спички" в процедурах нажатия кнопок 1 и 2. В них добавлен вызов процедуры "открыть_спички". А вот вызов "закрыть_спички" перебрался в процедуру продления таймера "timer_spichki" в Module26.

Автор - Gustav
Дата добавления - 04.01.2025 в 01:13
vsemdobra Дата: Суббота, 04.01.2025, 19:33 | Сообщение № 7
Группа: Пользователи
Ранг: Прохожий
Сообщений: 4
Репутация: 0 ±
Замечаний: 0% ±

ВСЁ отлично заработало, спасибо.
Gustav - ты реально крут, обнимаю, жму руку)))
 
Ответить
СообщениеВСЁ отлично заработало, спасибо.
Gustav - ты реально крут, обнимаю, жму руку)))

Автор - vsemdobra
Дата добавления - 04.01.2025 в 19:33
  • Страница 1 из 1
  • 1
Поиск:

Яндекс.Метрика Яндекс цитирования
© 2010-2025 · Дизайн: MichaelCH · Хостинг от uCoz · При использовании материалов сайта, ссылка на www.excelworld.ru обязательна!