Добрый день. Знаю, что есть выбор фото из выпадающего списка, но она меняет картинку в ячейке, а вот чтобы фото менялось в примечании, увы никак не смог найти, весь инет излазил. Нашел на этом форуме небольшой код от ZVI, суть его в том, что при смене значения в одной ячейке, можно поменять значение в другой. Не много доработав его под свою задачу, применив копирование примечания из другой ячейки, получил то, что собственно и хотел, но мои познания в вба желают быть лучшими, поэтому прошу помощи в оптимизации сего кода. Суть заключается в следующем: при выборе из выпадающего списка в ячейке А1, к примеру "Коала", в ячейке А2 в примечании появится фото Коалы, а в ячейке А3 примечание с текстом "Коала любит лазить по деревьям"..) -это просто пример, вместо текста там может быть и другая картинка. Для решения моей задачи, при выборе какого либо значения из ячейки А1, ему будут соответствовать до 6 параметров, которые должны показывать свою индивидуальную картинку именно в примечании. Поэтому код так сказать вырастет на одном только копировании... Выкладываю файл с примером, там будет все наглядно. Возможно у кого нибудь есть более простое решение данной задачи, буду весьма благодарен.
Код |
---|
Private Sub Worksheet_Change(ByVal Target As Range)
Dim x
x = Range("a1" ;)
If x = "Коала" Then
If Target.Address = [a1].Address Then
Range("e2" ;) .Copy
Range("a2" ;) .PasteSpecial Paste:=xlPasteComments, Operation:=xlNone, _
SkipBlanks:=False, Transpose:=False
Range("e6" ;) .Copy
Range("a3" ;) .PasteSpecial Paste:=xlPasteComments, Operation:=xlNone, _
SkipBlanks:=False, Transpose:=False
End If
End If
If x = "Маяк" Then
If Target.Address = [a1].Address Then
Range("e3" ;) .Copy
Range("a2" ;) .PasteSpecial Paste:=xlPasteComments, Operation:=xlNone, _
SkipBlanks:=False, Transpose:=False
Range("e7" ;) .Copy
Range("a3" ;) .PasteSpecial Paste:=xlPasteComments, Operation:=xlNone, _
SkipBlanks:=False, Transpose:=False
End If
End If
If x = "Пингвины" Then
If Target.Address = [a1].Address Then
Range("e4" ;) .Copy
Range("a2" ;) .PasteSpecial Paste:=xlPasteComments, Operation:=xlNone, _
SkipBlanks:=False, Transpose:=False
Range("e8" ;) .Copy
Range("a3" ;) .PasteSpecial Paste:=xlPasteComments, Operation:=xlNone, _
SkipBlanks:=False, Transpose:=False
End If
End If
Application.CutCopyMode = False
End Sub |