Здравствуйте. Перосмотрел огромное колличество информации по работе с изображениями на этом форуме, но под себя удалось найти частично. Нашел файл, который мне немного подходит. Помогите мне с его доработкой. В файле есть список. Сейчас из списка отображается картинка при выборе цифры 2. В макросе указана возможность выбора 1 или 2. 1-скрыта, 2- показана. Помогите мне. Мне нужно, чтобы картика была видна если в списке выбрано "Петров А.О.", во всех остальных случаях она не должна отображаться. И еще... В том макросе, который я нашел (в этом листе), я не пойму где указано имя самой картинки. Как она привязана к этому макросу? Или макрос к ней...
Здравствуйте. Перосмотрел огромное колличество информации по работе с изображениями на этом форуме, но под себя удалось найти частично. Нашел файл, который мне немного подходит. Помогите мне с его доработкой. В файле есть список. Сейчас из списка отображается картинка при выборе цифры 2. В макросе указана возможность выбора 1 или 2. 1-скрыта, 2- показана. Помогите мне. Мне нужно, чтобы картика была видна если в списке выбрано "Петров А.О.", во всех остальных случаях она не должна отображаться. И еще... В том макросе, который я нашел (в этом листе), я не пойму где указано имя самой картинки. Как она привязана к этому макросу? Или макрос к ней...kvlar
kvlar, по макросу 1. Измените тип dVal на текстовый 2. If dVal < 1 Or dVal > 2 Then MsgBox "Введите целое число от 1 до 2!" удалите 3. в If dVal = 1 Then =1 замените на <> "Петров А.О." 4. в ElseIf dVal = 2 Then 2 замените на "Петров А.О."
5. картинка ищется не по имени, а по номеру .Shapes.Item(3)
kvlar, по макросу 1. Измените тип dVal на текстовый 2. If dVal < 1 Or dVal > 2 Then MsgBox "Введите целое число от 1 до 2!" удалите 3. в If dVal = 1 Then =1 замените на <> "Петров А.О." 4. в ElseIf dVal = 2 Then 2 замените на "Петров А.О."
5. картинка ищется не по имени, а по номеру .Shapes.Item(3)bigor
Сообщение отредактировал bigor - Пятница, 26.09.2025, 16:27
Private Sub Worksheet_Change(ByVal Target As Range) Dim dVal As String If Not Intersect(Target, Sheets("far").Range("C3")) Is Nothing Then dVal = Sheets("far").Range("C3").Value If dVal = "Петров А.О." Then With ActiveSheet .Shapes.Item(3).Visible = False End With
ElseIf dVal = "Иванов В. В." Then With ActiveSheet .Shapes.Item(3).Visible = True End With End If End If End Sub
[/vba]
Иванов показана картинка, Петров скрыта. Но, появился нюанс в том, что в списке не две фамилии, а много. И на остальные фамилии реакции нет. По картинке... В макросе я понял, что картинка- -это .Shapes.Item(3), но я разбился не нашел где это имя именно в самой картинке? У меня будет другая картинка и где смотреть ее имя?
Если в макросе что лишнее, поправьте, пожалуйста. Я далеко не специалист.
Это то, что нужно Сделал так.
[vba]
Код
Private Sub Worksheet_Change(ByVal Target As Range) Dim dVal As String If Not Intersect(Target, Sheets("far").Range("C3")) Is Nothing Then dVal = Sheets("far").Range("C3").Value If dVal = "Петров А.О." Then With ActiveSheet .Shapes.Item(3).Visible = False End With
ElseIf dVal = "Иванов В. В." Then With ActiveSheet .Shapes.Item(3).Visible = True End With End If End If End Sub
[/vba]
Иванов показана картинка, Петров скрыта. Но, появился нюанс в том, что в списке не две фамилии, а много. И на остальные фамилии реакции нет. По картинке... В макросе я понял, что картинка- -это .Shapes.Item(3), но я разбился не нашел где это имя именно в самой картинке? У меня будет другая картинка и где смотреть ее имя?
Если в макросе что лишнее, поправьте, пожалуйста. Я далеко не специалист.kvlar
Shapes это коллекция рисованных объектов (моими словами), т.е. каждый рисованный объект в книге имеет свой номер. В вашем файле помимо рисунка, есть еще и поле выбора и наверное еще что-то раз у рисунка № 3, Т.е. если вы вставляете рисунки по очереди, то скорее всего и нумерация будет по порядку. Можно перебрать их и найти нужный по имени.
Shapes это коллекция рисованных объектов (моими словами), т.е. каждый рисованный объект в книге имеет свой номер. В вашем файле помимо рисунка, есть еще и поле выбора и наверное еще что-то раз у рисунка № 3, Т.е. если вы вставляете рисунки по очереди, то скорее всего и нумерация будет по порядку. Можно перебрать их и найти нужный по имени.bigor