Страницы: 1
RSS
Вставка рисунка в зависимости от условия.
 
Помогите, пожалуйста!
есть несколько (много) именованных диапазонов, в зависимости от выбраного значения именованный диапазон отображается в виде картинки,
как это реализовать более элегантно чем на листе "Test"
дабы не плодить огромное количество картинок
Изменено: Rvictor - 11.05.2019 19:53:44
 
Нужен именно рисунок или в одном и том же месте отображать сам диапазон?
 
диапазоны отличаются размерами (серый, самый большой рисунок) и их необходимо вписать в определенный размер. (Это формируется печатная форма)
поэтому было решено через картинки
Скрытый текст
Изменено: Rvictor - 11.05.2019 21:38:44
 
Цитата
Rvictor написал:
решено через картинки
Так у Вас это уже реализовано.
 
когда этих картинок переваливает за 20 шт excel начинает задумываться нещадно
поэтому и был вопрос как это сделать "более Элегантно"
задача была решена "по быстрому". но мне кажется, что это можно сделать по другому, не генерируя учу картинок, а подпихнуть в значение"Foto" именованный  диапазон


PS спасибо что убрали картинки под спойлер
Изменено: Rvictor - 11.05.2019 22:09:41
 
Я бы всё же показывал диапазон, а не картинку - как Вы потом будет извлекать из картинки данные?
См. вариант.
 
Цитата
Rvictor написал:
подпихнуть в значение"Foto" именованный  диапазон
Вариант в файле. Под реальный файл нужно будет переделать формулу диапазона
Изменено: gling - 11.05.2019 22:40:50
 
Цитата
gling написал:
Под реальный файл нужно будет переделать формулу диапазона
Наверное я сильно упростил пример.  На "Лист2" пример именованного диапазона из реального документа, там сборная солянка,  поэтому через динамические диапазоны не получается

Цитата
Юрий М написал:
Я бы всё же показывал диапазон, а не картинку - как Вы потом будет извлекать из картинки данные?
Макрос не подтягивает картинки и блоки. Или я не знаю как. Данные извлекать не надо, Это формируется "Печатная форма" для распечатки на бумагу.
 
Цитата
Rvictor написал:
Макрос не подтягивает картинки и блоки
А я картинки и не подтягивал - копировал диапазон.
 
Цитата
Юрий М написал:
А я картинки и не подтягивал
вот я и говорю, наверное сильно упростил пример. В связи с этим приложил данные из реального файла
 
Может опять не так понял, ещё вариант.
 
Разобрался !!!! Оказалось просто надо оквадратить индекс одинаковыми уникальными значениями.
Изменено: Rvictor - 12.05.2019 01:57:47 (дополнение ответа)
 
Ув. знатоки подскажите пожалуйста. Не стал создавать новую тему, т.к. тем по данному вопросу уже предостаточно, уже с готовыми решениями. Но я споткнулся на простейшем. Вот есть файл (взял с одной из тем, находящейся в архиве). В зависимости от значения в ячейке - показывает одну из трех картинок. По коду все понятно, идет выбор одного из трех Item-ов. Но я голову сломал, где эти Item-ы (картинки то есть), находятся внутри файла? Куда их вставил автор файла изначально?
 
Цитата
D07 написал:
я голову сломал, где эти Item-ы (картинки то есть), находятся внутри файла?
Они все находятся на листе в одной позиции, только две постоянно скрыты, а отображается выбранная.
 
Цитата
D07 написал:
По коду все понятно
На самом деле всё понятно? Тогда откуда вообще возник вопрос, если в коде видно, что управляем видимостью рисунков:
Код
            With ActiveSheet
                .Shapes.Item(1).Visible = True
                .Shapes.Item(2).Visible = False
                .Shapes.Item(3).Visible = False
            End With
 
Ммм, спасибо большое.  
 
Приветствую.
Также Не стал создавать новую тему, т.к. тем по данному вопросу уже предостаточно, уже с готовыми решениями.

Прикрепленный выше файл  post_29533.xls (87 КБ) был взят как исходный.

Моя вводные: Есть файл с 15 листами. Имена листов меняются пользователем.

На листе "Сводная" в ячейке А43 - можно поставить значение "1" или "2".
Идёт смена логотипа "100", либо "Item(2)"
Тестируя, В коде указал лист "СМП". Он единственный никем не переименовывается.

Моя задача: чтобы на всех остальных листах Книги - также происходила смена картинки по измению А43 на "Сводной"


Код
Private Sub Worksheet_Change(ByVal Target As Range)
    Dim dVal As Integer
    If Not Intersect(Target, Sheets("Сводная").Range("A43")) Is Nothing Then
        dVal = Sheets("Сводная").Range("A43").Value
    If dVal = 1 Then
            With ActiveSheet
                .Shapes("100").Visible = True
                .Shapes.Item(2).Visible = False
            End With
                With Sheets("СМП")
                .Shapes("100").Visible = True
                .Shapes.Item(2).Visible = False
            End With
    ElseIf dVal = 2 Then
         With ActiveSheet
                .Shapes("100").Visible = False
                .Shapes.Item(2).Visible = True
        End With
               With Sheets("СМП")
                .Shapes("100").Visible = False
                .Shapes.Item(2).Visible = True
        End With
    End If
    End If
End Sub
Изменено: on.999 - 10.02.2020 23:31:05
Страницы: 1
Наверх