Найти в Дзене
Игры в Excel

Товар лицом

Сегодня я хочу показать простую но полезную функцию. Если у нас есть список людей, товаров, книг в библиотеке, инструментов в мастерской и т.д. хранить изображения каждого постоянно в списке excel непродуктивно. От большого числа вставленных изображений файл "раздувается" и становится "труднопроворачиваемым". А нам ведь только глянуть при необходимости разок надо и удалить. Для этого как всегда делаем кнопку и вешаем на неё макрос. Да-да, вот на этот самый "глазик" (верхняя строка закреплена и он всегда виден) Что должен сделать этот макрос (Покажь) : 1. взять из столбца с именами соответствующих изображений то, что стоит в выделенной строке 2. Вставить в определённый один и тот же столбец (У меня это 24ый) изображение, а в рамочку повыше - его название и на обе картинки повесить макрос (экзорцист), который удалит (изгонит) их при нажатии Макросы несложны:
Оглавление

Сегодня я хочу показать простую но полезную функцию. Если у нас есть список людей, товаров, книг в библиотеке, инструментов в мастерской и т.д. хранить изображения каждого постоянно в списке excel непродуктивно. От большого числа вставленных изображений файл "раздувается" и становится "труднопроворачиваемым". А нам ведь только глянуть при необходимости разок надо и удалить.

Для этого как всегда делаем кнопку и вешаем на неё макрос. Да-да, вот на этот самый "глазик" (верхняя строка закреплена и он всегда виден)

Что должен сделать этот макрос (Покажь) :

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

2. Вставить в определённый один и тот же столбец (У меня это 24ый) изображение, а в рамочку повыше - его название и на обе картинки повесить макрос (экзорцист), который удалит (изгонит) их при нажатии

Макросы несложны:

Sub Покажь()

  • tr = ActiveCell.Row
  • 'имя герба в Q - 17м столбце
  • nama = Cells(tr, 17).Value
  • adr = Range("пуфла").Value & nama & ".png"
  • Cells(tr, 24).Select
  • ActiveSheet.Pictures.Insert(adr).Select
  • Selection.ShapeRange.Width = 200
  • Selection.Name = "демон"
  • Selection.OnAction = "экзорцист"
  • ActiveSheet.Shapes.AddShape(msoShapeRectangle, 0, 0, 200, 20.25).Select
  • Selection.ShapeRange.Fill.ForeColor.SchemeColor = 36
  • Selection.ShapeRange.Line.Visible = msoFalse
  • Selection.Name = "демон1" 'демон - от слова демонстрировать )))
  • Selection.OnAction = "экзорцист"
  • Selection.Characters.Text = Cells(tr, 1).Value
  • Selection.Cut
  • ttab = tr
  • if tr > 2 Then ttab = tr - 2 'чтобы вверху не обращаться к -1 и 0 строкам
  • Cells(ttab, 24).Select
  • ActiveSheet.Paste
  • Cells(tr + 1, 24).Select
  • End Sub

Sub экзорцист()

  • ActiveSheet.Shapes("демон").Select
  • Selection.Delete
  • ActiveSheet.Shapes("демон1").Select
  • Selection.Delete
  • End Sub