Excel картинка в зависимости от значения

Во многих случаях может потребоваться динамическая вставка изображения в ячейку в зависимости от значения ячейки. Например, вы хотите, чтобы соответствующие изображения динамически изменялись с различными значениями, которые вы вводите в указанной ячейке. Эта статья покажет вам, как этого добиться.

Вставка и изменение изображения динамически на основе значений, которые вы вводите в ячейку
Динамическое изменение изображения на основе значений ячеек с помощью замечательного инструмента


Вставка и изменение изображения динамически на основе значений, которые вы вводите в ячейку

Как показано на скриншоте ниже, вы хотите отображать соответствующие изображения динамически на основе значения, введенного вами в ячейку G2. При вводе банана в ячейку G2 изображение банана будет отображаться в ячейке H2. При вводе «Ананас» в ячейку G2 изображение в ячейке H2 превратится в соответствующее изображение ананаса.

1. Создайте на листе два столбца, первый диапазон столбцов. A2: A4 содержит название картинки, а второй диапазон столбца B2: B4 содержит соответствующие изображения. См. Показанный снимок экрана.

2. Нажмите Формулы > Менеджер имен.

3. в Менеджер имен диалогового окна, нажмите Новинки кнопка. Затем Редактировать имя всплывает диалоговое окно, введите Продукт в Имя и фамилия поле введите формулу ниже в поле Относится к поле, а затем щелкните OK кнопка. Смотрите скриншот:

=INDIRECT(ADDRESS(2-1+MATCH(Sheet2!$G$2, Sheet2!$A$2:$A$4, 0), 2))

Заметки:

1). В формуле первое число 2 — номер строки вашего первого продукта. В этом случае мое первое название продукта находится в строке 2.

2). Лист2! $ G $ 2 это ячейка, на основе которой вы хотите, чтобы соответствующее изображение изменялось динамически.

3). Sheet2! $ A $ 2: $ A $ 4 это ваш список названий продуктов на текущем листе.

4). Последний номер 2 — это номер столбца, в котором находятся ваши изображения.

Вы можете изменить их по своему усмотрению в приведенной выше формуле.

4. Закрой Менеджер имен диалоговое окно.

5. Выберите изображение в столбце «Изображения» и нажмите Ctrl + C ключи одновременно, чтобы скопировать его. Затем вставьте его в новое место на текущем листе. Здесь я копирую изображение яблока и помещаю его в ячейку H2.

6. Введите название фрукта, например Apple, в ячейку G2, щелкните, чтобы выбрать вставленное изображение, и введите формулу. = Продукт в Панель формул, затем нажмите Enter ключ. Смотрите скриншот:

Отныне при смене имени фрукта в ячейке G2 картинки в ячейке H2 будут динамически превращаться в соответствующие.

Вы можете быстро выбрать название фрукта, создав раскрывающийся список, содержащий все названия фруктов в ячейке G2, как показано на скриншоте ниже.


Легко вставляйте изображения в связанные ячейки на основе значений ячеек с помощью замечательного инструмента

Многим новичкам в Excel этот метод непрост. Здесь рекомендую Раскрывающийся список изображений особенность Kutools for Excel. С помощью этой функции вы можете легко создать динамический раскрывающийся список с полностью совпадающими значениями и изображениями.

Пожалуйста, сделайте следующее, чтобы применить функцию раскрывающегося списка изображений Kutools for Excel для создания раскрывающегося списка динамических изображений в Excel.

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

2. Нажмите Кутулс > Импорт Экспорт > Сопоставить Импорт изображений.

3. в Раскрывающийся список изображений диалоговое окно необходимо настроить следующим образом.

3.1) Если вы создали столбцы значений и изображений на шаге 1 выше, проигнорируйте этот шаг;

3.2) В Step2 раздел, выберите два столбца, которые вы создали;

3.3) В Step3 В разделе выберите диапазон для вывода раскрывающегося списка динамического изображения.

Примечание: In Step3 раздел, нужно выбрать две колонки для размещения результатов. Один столбец предназначен для значений, а другой — для соответствующих изображений.

3.4) Нажмите ОК.

4. Затем Kutools for Excel всплывает диалоговое окно, напоминающее вам о том, что в процессе будут созданы некоторые промежуточные данные, щелкните Да для продолжения.

Затем создается динамический раскрывающийся список изображений. Изображение будет динамически меняться в зависимости от элемента, который вы выбрали в раскрывающемся списке.

Нажмите, чтобы узнать больше об этой функции …

  Если вы хотите получить бесплатную пробную версию (30-день) этой утилиты, пожалуйста, нажмите, чтобы загрузить это, а затем перейдите к применению операции в соответствии с указанными выше шагами.


Статьи по теме:

  • Как создать динамическую гиперссылку на другой лист в Excel?
  • Как динамически извлечь список уникальных значений из диапазона столбцов в Excel?
  • Как создать динамический ежемесячный календарь в Excel?

Лучшие инструменты для работы в офисе

Kutools for Excel Решит большинство ваших проблем и повысит вашу производительность на 80%

  • Снова использовать: Быстро вставить сложные формулы, диаграммы и все, что вы использовали раньше; Зашифровать ячейки с паролем; Создать список рассылки и отправлять электронные письма …
  • Бар Супер Формулы (легко редактировать несколько строк текста и формул); Макет для чтения (легко читать и редактировать большое количество ячеек); Вставить в отфильтрованный диапазон
  • Объединить ячейки / строки / столбцы без потери данных; Разделить содержимое ячеек; Объединить повторяющиеся строки / столбцы… Предотвращение дублирования ячеек; Сравнить диапазоны
  • Выберите Дубликат или Уникальный Ряды; Выбрать пустые строки (все ячейки пустые); Супер находка и нечеткая находка во многих рабочих тетрадях; Случайный выбор …
  • Точная копия Несколько ячеек без изменения ссылки на формулу; Автоматическое создание ссылок на несколько листов; Вставить пули, Флажки и многое другое …
  • Извлечь текст, Добавить текст, Удалить по позиции, Удалить пробел; Создание и печать промежуточных итогов по страницам; Преобразование содержимого ячеек в комментарии
  • Суперфильтр (сохранять и применять схемы фильтров к другим листам); Расширенная сортировка по месяцам / неделям / дням, периодичности и др .; Специальный фильтр жирным, курсивом …
  • Комбинируйте книги и рабочие листы; Объединить таблицы на основе ключевых столбцов; Разделить данные на несколько листов; Пакетное преобразование xls, xlsx и PDF
  • Более 300 мощных функций. Поддерживает Office/Excel 2007-2021 и 365. Поддерживает все языки. Простое развертывание на вашем предприятии или в организации. Полнофункциональная 30-дневная бесплатная пробная версия. 60-дневная гарантия возврата денег.

вкладка kte 201905


Вкладка Office: интерфейс с вкладками в Office и упрощение работы

  • Включение редактирования и чтения с вкладками в Word, Excel, PowerPoint, Издатель, доступ, Visio и проект.
  • Открывайте и создавайте несколько документов на новых вкладках одного окна, а не в новых окнах.
  • Повышает вашу продуктивность на 50% и сокращает количество щелчков мышью на сотни каждый день!

офисный дно

 

prorab

Пользователь

Сообщений: 29
Регистрация: 29.04.2014

Приветствую форумчан и обращаюсь к вам с негромким но криком о помощи, по сути надо на листе в книге отображать большую карту с разными объектами, над каждым объектом три слоя разноцветных (с помощью которого отображается готовность объекта) , эти слои выдвигаются на передний план в зависимости от значения в определенной ячейке , подскажите можно ли реализовать данную задумку в Excel если да то в какую сторону смотреть.
PS. В Excel сам слои в «ФОРМАТ—> Область выделения» видел а как управлять не разберусь.

 

Ну если на вскидку, условное форматирование — создать правило(и пишите формулу)  или правила выделения ячеек.

 

prorab

Пользователь

Сообщений: 29
Регистрация: 29.04.2014

А если картинка не в ячейке а в лист просто вставлена (картинка большая ) ?
Пример во вложении чтоб не было недопонимания.
PS Нажать на картинку — выбрать Область выделения увидите слои.
При загрузке файла выдает ошибку ((

Изменено: prorab29.04.2014 16:49:10

 

покажите файл….. может и решение найдется….

 

prorab

Пользователь

Сообщений: 29
Регистрация: 29.04.2014

файл

Изменено: prorab30.04.2014 01:24:41

 

Юрий М

Модератор

Сообщений: 60570
Регистрация: 14.09.2012

Контакты см. в профиле

#6

29.04.2014 21:41:54

Цитата
prorab пишет:
При загрузке файла выдает ошибку

Какой размер файла?

 

prorab

Пользователь

Сообщений: 29
Регистрация: 29.04.2014

четыреста с чем то килобайт

 

Юрий М

Модератор

Сообщений: 60570
Регистрация: 14.09.2012

Контакты см. в профиле

Подставляетесь: а в Правилах о каком ограничении разговор?

 

prorab

Пользователь

Сообщений: 29
Регистрация: 29.04.2014

Эп виноват, до 100 килограмм, но там растр и вроде маленький ((((
Но у меня ссылка ))

Изменено: prorab30.04.2014 01:25:06

 

Юрий М

Модератор

Сообщений: 60570
Регистрация: 14.09.2012

Контакты см. в профиле

Кто мешает сделать МАЛЕНЬКИЙ файл-аналог?
По вопросу вариант: все три картинки наложить друг на друга и при изменении значения в ячейке отображать/скрывать нужные. Само скрытие/отображение можно записать рекордером.
Файл не смотрел — большой.

 

prorab

Пользователь

Сообщений: 29
Регистрация: 29.04.2014

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

 

Юрий М

Модератор

Сообщений: 60570
Регистрация: 14.09.2012

Контакты см. в профиле

#12

29.04.2014 22:11:21

Цитата
prorab пишет:
при использовании рекордера у другого пользователя может возникнуть проблема при просмотре файла

Это каким же образом? Рекордером пользуетесь только Вы, чтобы создать макрос)))

 

prorab

Пользователь

Сообщений: 29
Регистрация: 29.04.2014

Извиняюсь, пропустил вопросительный знак))) а файл все таки глянте   :D

 

Юрий М

Модератор

Сообщений: 60570
Регистрация: 14.09.2012

Контакты см. в профиле

 

Юрий М

Модератор

Сообщений: 60570
Регистрация: 14.09.2012

Контакты см. в профиле

 

prorab

Пользователь

Сообщений: 29
Регистрация: 29.04.2014

#16

29.04.2014 23:15:45

Цитата
Юрий М пишет:
В какой ячейке 1-2-3?

под ячейкой Дом1 ставим например значение 3 и видится зеленый слой над этим домом на картинке, значение 2 видим желтый слой над Дом 1, и так над каждым домом, при этом кликая на картинку в районе какого либо дома попадаем на лист с этим домом

а как Ваша версия реализована?

Изменено: prorab29.04.2014 23:20:10

 

Юрий М

Модератор

Сообщений: 60570
Регистрация: 14.09.2012

Контакты см. в профиле

Написан макрос. Его код можно посмотреть в модуле листа: правый клик по ярлычку листа — Исходный текст.

 

prorab

Пользователь

Сообщений: 29
Регистрация: 29.04.2014

Так, пошел курить макрос для чайников может хоть азы освою,(тяжело вздыхаю, и смотря умоляющим взглядом вопрошаю) а вы могли бы в примере реализовать «светофор», над каждым домом в зависимости от значения отображается слой

 

Юрий М

Модератор

Сообщений: 60570
Регистрация: 14.09.2012

Контакты см. в профиле

Что за светофор и что за слой?

 

prorab

Пользователь

Сообщений: 29
Регистрация: 29.04.2014

в вашем варианте при изменении значения в одной ячейке меняются слои(изображения находящиеся друг над другом, скрытые или нет) вкл и выкл над разными домами, в моем файле над каждым домом три слоя с разными цветами, два слоя скрыты. А надо чтоб в трех ячейках изменяя значение, над разными домам я получал разные цвета.

 

Юрий М

Модератор

Сообщений: 60570
Регистрация: 14.09.2012

Контакты см. в профиле

#21

30.04.2014 00:16:37

Цитата
prorab пишет:
в моем файле над каждым домом три слоя с разными цветами

А как эти слои посмотреть?

 

Зачем слои? один рисунок; заливку и (или) видимость менять, в зависимости от выбранных значений.

 

prorab

Пользователь

Сообщений: 29
Регистрация: 29.04.2014

#23

30.04.2014 06:23:20

Цитата
Юрий М пишет:
А как эти слои посмотреть?

 

anvg

Пользователь

Сообщений: 11878
Регистрация: 22.12.2012

Excel 2016, 365

Вариант по предложению Михаила. Ведь действительно, проще работать с одним полигоном, чем с тремя. Успехов.

 

prorab

Пользователь

Сообщений: 29
Регистрация: 29.04.2014

#25

30.04.2014 07:40:34

anvg

Спасибо, то что доктор прописал ))) а Ваш вариант тоже на макросах?
Перефразировав народную мудрость » Смотрю в макрос вижу фигу»
anvg  я понимаю что это уже наглость с моей стороны , могли бы Вы прокоментировать все строчки в вашем макросе?
я только вот это смог разглядеть (

Код
Private Sub Worksheet_Change(ByVal Target As Range)
    Const lastId As Long = 3
    Const colOffset As Long = 6
    Dim vColor As Long, i As Long
    If Not Application.Intersect(Target, Me.Range("G7:I7"    ) Is Nothing Then - это где проверяется изменение значения
        For i = 1 To lastId
            With Me.Shapes("Дом" & CStr(i))
                Select Case Me.Cells(Target.Row, i + colOffset).Value
                    Case 1: .Visible = msoTrue: .Fill.ForeColor.RGB = vbRed          - это покраска в зависимости от значения
                    Case 2: .Visible = msoTrue: .Fill.ForeColor.RGB = vbYellow
                    Case 3: .Visible = msoTrue: .Fill.ForeColor.RGB = vbGreen
                    Case Else: .Visible = msoFalse
                End Select
            End With
        Next
    End If
End Sub

Private Sub Worksheet_SelectionChange(ByVal Target As Range)
End Sub

При добавлении нового контура как его привязать ?

код оформляем с помощью этой кнопки [МОДЕРАТОР]

Изменено: prorab30.04.2014 08:42:45

 

prorab

Пользователь

Сообщений: 29
Регистрация: 29.04.2014

#26

30.04.2014 11:06:51

Цитата
prorab пишет:
код оформляем с помощью этой кнопки [МОДЕРАТОР]

Спасибо что поправили, на будущее учту.

 

prorab

Пользователь

Сообщений: 29
Регистрация: 29.04.2014

Комрады у кого есть возможность подсказать по макросу в сообщении выше, будьте любезны, помогите.

Изменено: prorab30.04.2014 16:20:23

 

anvg

Пользователь

Сообщений: 11878
Регистрация: 22.12.2012

Excel 2016, 365

prorab, полигоны имеют имена Дом1, Дом2, Дом3
Отсюда цикл For от 1 до lastCol (равный 3). По склейке номера и текста «Дом» получаем соответствующий полигон на листе. По номеру и смещению получаем столбец ячейки, в которой находится влияющее значение. По нему определяем цвет полученного полигона (или его отсутствие). Далее если есть цвет, то показываем полигон и устанавливаем его цвет. Если код noColor, то скрываем полигон. Чтобы добавить ещё, создаём полигон с именем начинающимся с Дом и номером по порядку, увеличиваем в коде lastCol и в следующий столбец записываем значение.
Алгоритм не оптимальный, создан лишь для демонстрации идеи Михаила.
P. S. В личку писать стоит лишь если Вы хотите заказать платную работу.

 

prorab

Пользователь

Сообщений: 29
Регистрация: 29.04.2014

#29

01.05.2014 21:56:39

anvg

С полигонами разобрался (как добавлять) , на счет алгоритма ничего плохого не скажу, на мой неискушенный взгляд все просто ОТЛИЧНО реализовано, меня единственно смущает мое непонимание как добавить на том же алгоритме другие категории полигонов например «Парковка», с программированием знаком издалека  посему не догоняю.

Пропорциональное изменение размеров изображения в зависимости от значения в ячейках

Изменение размеров изображения пропорционально значениям ячеек на листе Excel

Этот простейший макрос позволяет пропорционально изменять размеры изображения (высоту и ширину) в зависимости от значений ячеек B3 и B4.
Попробуйте изменить значения в этих ячейках (выделенных желтым цветом) — и автоматически изменятся размеры изображения.

Значения в ячейках указываются в диапазоне от 500 до 2500 (используется проверка вводимых значений — допускается ввод чисел только в указанном диапазоне).
При этом размеры картинки изменяются в пределах от 75 х 75 до 150 х 150.

Используется обработка событий листа — при изменении ячеек производится корректировка размеров изображения:

Private Sub Worksheet_Change(ByVal Target As Range)
    Select Case Target.Address
        Case [b3].Address    ' изменяем высоту
            h = 75 * (Val([b3]) + 1500) / 2000
            [pic].Height = h: [c3] = h
        Case [b4].Address    ' изменяем ширину
            w = 75 * (Val([b4]) + 1500) / 2000
            [pic].Width = w: [c4] = w
    End Select
End Sub

Кроме того, в соседние ячейки (С3 и С4) заносятся новые размеры картинки.

  • 14004 просмотра

Не получается применить макрос? Не удаётся изменить код под свои нужды?

Оформите заказ у нас на сайте, не забыв прикрепить примеры файлов, и описать, что и как должно работать.

И все-таки…

по поводу изменения рисунка в зависимости от выпадающего списка — не получается…. т.к. либо я не пониманимаю чего-то, либо эксель у меня ограниченный… т.к. на последнем этапе «Привязываем фотографию к ссылке » вписыванием встроку формул =Фото1 возникает проблема… НЕ вписывается. не возможно туда поствить курсор… Попыток пересмотреть курс и перечитать текст о том, как все сделать — около 10…. в течение нескольких дней…..

Короче, написал макрос, который в зависимости от условий в ячейке копирует/вставляет нужный рисунок.
Столкнулся с 2 вопросами:
1. А как-нибудь можно его сократить?

Visual Basic
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
304
305
306
307
308
309
310
311
312
313
314
315
316
317
318
319
320
321
322
323
324
325
326
327
328
329
330
331
332
333
334
335
336
337
338
339
340
341
342
343
344
345
346
347
348
349
350
351
352
353
354
355
356
357
358
359
360
361
362
363
364
365
366
367
368
369
370
371
372
373
374
375
376
377
378
379
380
381
382
383
384
385
386
387
388
389
390
391
392
393
394
395
396
397
398
399
400
401
402
403
404
405
406
407
408
409
410
411
412
413
414
415
416
417
418
419
420
421
422
423
424
425
426
427
428
429
430
431
432
433
434
435
436
437
438
439
440
441
442
443
444
445
446
447
448
449
450
451
452
453
454
455
456
457
458
459
460
461
462
463
464
465
466
467
468
469
470
471
472
473
474
475
476
477
478
479
480
481
482
483
484
485
486
487
488
489
490
491
492
493
494
495
496
497
498
499
500
501
502
503
504
505
506
507
508
509
510
511
512
513
514
515
516
517
518
519
520
521
522
523
524
525
526
527
528
529
530
531
532
533
534
535
536
537
538
539
540
541
542
543
544
545
546
547
548
549
550
551
552
553
554
555
556
Sub label()
   If ActiveSheet.Range("AG5").Text = "text1" Then
      Call logo1a
End If
If ActiveSheet.Range("AG8").Text = "text1" Then
      Call logo1b
End If
If ActiveSheet.Range("AG11").Text = "text1" Then
      Call logo1c
End If
If ActiveSheet.Range("AG14").Text = "text1" Then
      Call logo1d
End If
If ActiveSheet.Range("AG17").Text = "text1" Then
      Call logo1e
End If
If ActiveSheet.Range("AG20").Text = "text1" Then
      Call logo1f
End If
If ActiveSheet.Range("AG23").Text = "text1" Then
      Call logo1g
End If
If ActiveSheet.Range("AG26").Text = "text1" Then
      Call logo1h
End If
If ActiveSheet.Range("AG29").Text = "text1" Then
      Call logo1i
End If
If ActiveSheet.Range("AG32").Text = "text1" Then
      Call logo1j
End If
If ActiveSheet.Range("AG35").Text = "text1" Then
      Call logo1k
End If
If ActiveSheet.Range("AG38").Text = "text1" Then
      Call logo1l
End If
'-------------------------------------------------------------------------'
 
If ActiveSheet.Range("AG5").Text = "text2" Then
      Call logo2a
End If
If ActiveSheet.Range("AG8").Text = "text2" Then
      Call logo2b
End If
If ActiveSheet.Range("AG11").Text = "text2" Then
      Call logo2c
End If
If ActiveSheet.Range("AG14").Text = "text2" Then
      Call logo2d
End If
If ActiveSheet.Range("AG17").Text = "text2" Then
      Call logo2e
End If
If ActiveSheet.Range("AG20").Text = "text2" Then
      Call logo2f
End If
If ActiveSheet.Range("AG23").Text = "text2" Then
      Call logo2g
End If
If ActiveSheet.Range("AG26").Text = "text2" Then
      Call logo2h
End If
If ActiveSheet.Range("AG29").Text = "text2" Then
      Call logo2i
End If
If ActiveSheet.Range("AG32").Text = "text2" Then
      Call logo2j
End If
If ActiveSheet.Range("AG35").Text = "text2" Then
      Call logo2k
End If
If ActiveSheet.Range("AG38").Text = "text2" Then
      Call logo2l
      End If
  '-------------------------------------------------------------------------'
      If ActiveSheet.Range("AG5").Text = "text3" Then
      Call logo3a
End If
If ActiveSheet.Range("AG8").Text = "text3" Then
      Call logo3b
End If
If ActiveSheet.Range("AG11").Text = "text3" Then
      Call logo3c
End If
If ActiveSheet.Range("AG14").Text = "text3" Then
      Call logo3d
End If
If ActiveSheet.Range("AG17").Text = "text3" Then
      Call logo3e
End If
If ActiveSheet.Range("AG20").Text = "text3" Then
      Call logo3f
End If
If ActiveSheet.Range("AG23").Text = "text3" Then
      Call logo3g
End If
If ActiveSheet.Range("AG26").Text = "text3" Then
      Call logo3h
End If
If ActiveSheet.Range("AG29").Text = "text3" Then
      Call logo3i
End If
If ActiveSheet.Range("AG32").Text = "text3" Then
      Call logo3j
End If
If ActiveSheet.Range("AG35").Text = "text3" Then
      Call logo3k
End If
If ActiveSheet.Range("AG38").Text = "text3" Then
      Call logo3l
End If
      '------------------------------------------------------------------------'
               If ActiveSheet.Range("AG5").Text = "text4" Then
      Call logo4a
End If
If ActiveSheet.Range("AG8").Text = "text4" Then
      Call logo4b
End If
If ActiveSheet.Range("AG11").Text = "text4" Then
      Call logo4c
End If
If ActiveSheet.Range("AG14").Text = "text4" Then
      Call logo4d
End If
If ActiveSheet.Range("AG17").Text = "text4" Then
      Call logo4e
End If
If ActiveSheet.Range("AG20").Text = "text4" Then
      Call logo4f
End If
If ActiveSheet.Range("AG23").Text = "text4" Then
      Call logo4g
End If
If ActiveSheet.Range("AG26").Text = "text4" Then
      Call logo4h
End If
If ActiveSheet.Range("AG29").Text = "text4" Then
      Call logo4i
End If
If ActiveSheet.Range("AG32").Text = "text4" Then
      Call logo4j
End If
If ActiveSheet.Range("AG35").Text = "text4" Then
      Call logo4k
End If
If ActiveSheet.Range("AG38").Text = "text4" Then
      Call logo4l
End If
      
  End Sub
'-----------------------------------------------'
 
 
 
 Sub logo1a()
     Range("E1").Select
    Selection.Copy
    Range("G3").Select
    ActiveSheet.Pictures.Paste.Select
    Application.CutCopyMode = False
 
 End Sub
 Sub logo1b()
     Range("E1").Select
    Selection.Copy
    Range("P3").Select
    ActiveSheet.Pictures.Paste.Select
    Application.CutCopyMode = False
 
 End Sub
 Sub logo1c()
     Range("E1").Select
    Selection.Copy
    Range("G25").Select
    ActiveSheet.Pictures.Paste.Select
    Application.CutCopyMode = False
 
 End Sub
 Sub logo1d()
     Range("E1").Select
    Selection.Copy
    Range("P25").Select
    ActiveSheet.Pictures.Paste.Select
    Application.CutCopyMode = False
 
 End Sub
 Sub logo1e()
     Range("E1").Select
    Selection.Copy
    Range("G47").Select
    ActiveSheet.Pictures.Paste.Select
    Application.CutCopyMode = False
 
 End Sub
 Sub logo1f()
     Range("E1").Select
    Selection.Copy
    Range("P47").Select
    ActiveSheet.Pictures.Paste.Select
    Application.CutCopyMode = False
 
 End Sub
 Sub logo1g()
     Range("E1").Select
    Selection.Copy
    Range("G69").Select
    ActiveSheet.Pictures.Paste.Select
    Application.CutCopyMode = False
 
 End Sub
  Sub logo1h()
     Range("E1").Select
    Selection.Copy
    Range("P69").Select
    ActiveSheet.Pictures.Paste.Select
    Application.CutCopyMode = False
 
 End Sub
 Sub logo1i()
     Range("E1").Select
    Selection.Copy
    Range("G91").Select
    ActiveSheet.Pictures.Paste.Select
    Application.CutCopyMode = False
 
 End Sub
  Sub logo1j()
     Range("E1").Select
    Selection.Copy
    Range("P91").Select
    ActiveSheet.Pictures.Paste.Select
    Application.CutCopyMode = False
 
 End Sub
 
 
 Sub logo1k()
     Range("E1").Select
    Selection.Copy
    Range("G113").Select
    ActiveSheet.Pictures.Paste.Select
    Application.CutCopyMode = False
 
 End Sub
  Sub logo1l()
     Range("E1").Select
    Selection.Copy
    Range("P113").Select
    ActiveSheet.Pictures.Paste.Select
    Application.CutCopyMode = False
 
 End Sub
 
 
 
 Sub logo2a()
     Range("F1").Select
    Selection.Copy
    Range("G3").Select
    ActiveSheet.Pictures.Paste.Select
    Application.CutCopyMode = False
 
 End Sub
 Sub logo2b()
     Range("F1").Select
    Selection.Copy
    Range("P3").Select
    ActiveSheet.Pictures.Paste.Select
    Application.CutCopyMode = False
 
 End Sub
 Sub logo2c()
     Range("F1").Select
    Selection.Copy
    Range("G25").Select
    ActiveSheet.Pictures.Paste.Select
    Application.CutCopyMode = False
 
 End Sub
 Sub logo2d()
     Range("F1").Select
    Selection.Copy
    Range("P25").Select
    ActiveSheet.Pictures.Paste.Select
    Application.CutCopyMode = False
 
 End Sub
 Sub logo2e()
     Range("F1").Select
    Selection.Copy
    Range("G47").Select
    ActiveSheet.Pictures.Paste.Select
    Application.CutCopyMode = False
 
 End Sub
 Sub logo2f()
     Range("F1").Select
    Selection.Copy
    Range("P47").Select
    ActiveSheet.Pictures.Paste.Select
    Application.CutCopyMode = False
 
 End Sub
 Sub logo2g()
     Range("F1").Select
    Selection.Copy
    Range("G69").Select
    ActiveSheet.Pictures.Paste.Select
    Application.CutCopyMode = False
 
 End Sub
  Sub logo2h()
     Range("F1").Select
    Selection.Copy
    Range("P69").Select
    ActiveSheet.Pictures.Paste.Select
    Application.CutCopyMode = False
 
 End Sub
 Sub logo2i()
     Range("F1").Select
    Selection.Copy
    Range("G91").Select
    ActiveSheet.Pictures.Paste.Select
    Application.CutCopyMode = False
 
 End Sub
  Sub logo2j()
     Range("F1").Select
    Selection.Copy
    Range("P91").Select
    ActiveSheet.Pictures.Paste.Select
    Application.CutCopyMode = False
 
 End Sub
 
 
 Sub logo2k()
     Range("F1").Select
    Selection.Copy
    Range("G113").Select
    ActiveSheet.Pictures.Paste.Select
    Application.CutCopyMode = False
 
 End Sub
  Sub logo2l()
     Range("F1").Select
    Selection.Copy
    Range("P113").Select
    ActiveSheet.Pictures.Paste.Select
    Application.CutCopyMode = False
 
 End Sub
 
 Sub logo3a()
     Range("G1").Select
    Selection.Copy
    Range("G3").Select
    ActiveSheet.Pictures.Paste.Select
    Application.CutCopyMode = False
 
 End Sub
 Sub logo3b()
     Range("G1").Select
    Selection.Copy
    Range("P3").Select
    ActiveSheet.Pictures.Paste.Select
    Application.CutCopyMode = False
 
 End Sub
 Sub logo3c()
     Range("G1").Select
    Selection.Copy
    Range("G25").Select
    ActiveSheet.Pictures.Paste.Select
    Application.CutCopyMode = False
 
 End Sub
 Sub logo3d()
     Range("G1").Select
    Selection.Copy
    Range("P25").Select
    ActiveSheet.Pictures.Paste.Select
    Application.CutCopyMode = False
 
 End Sub
 Sub logo3e()
     Range("G1").Select
    Selection.Copy
    Range("G47").Select
    ActiveSheet.Pictures.Paste.Select
    Application.CutCopyMode = False
 
 End Sub
 Sub logo3f()
     Range("G1").Select
    Selection.Copy
    Range("P47").Select
    ActiveSheet.Pictures.Paste.Select
    Application.CutCopyMode = False
 
 End Sub
 Sub logo3g()
     Range("G1").Select
    Selection.Copy
    Range("G69").Select
    ActiveSheet.Pictures.Paste.Select
    Application.CutCopyMode = False
 
 End Sub
  Sub logo3h()
     Range("G1").Select
    Selection.Copy
    Range("P69").Select
    ActiveSheet.Pictures.Paste.Select
    Application.CutCopyMode = False
 
 End Sub
 Sub logo3i()
     Range("G1").Select
    Selection.Copy
    Range("G91").Select
    ActiveSheet.Pictures.Paste.Select
    Application.CutCopyMode = False
 
 End Sub
  Sub logo3j()
     Range("G1").Select
    Selection.Copy
    Range("P91").Select
    ActiveSheet.Pictures.Paste.Select
    Application.CutCopyMode = False
 
 End Sub
 
 
 Sub logo3k()
     Range("G1").Select
    Selection.Copy
    Range("G113").Select
    ActiveSheet.Pictures.Paste.Select
    Application.CutCopyMode = False
 
 End Sub
  Sub logo3l()
     Range("G1").Select
    Selection.Copy
    Range("P113").Select
    ActiveSheet.Pictures.Paste.Select
    Application.CutCopyMode = False
 
 End Sub
 
 
 
 
 
 Sub logo4a()
     Range("P1").Select
    Selection.Copy
    Range("G3").Select
    ActiveSheet.Pictures.Paste.Select
    Application.CutCopyMode = False
 
 End Sub
 Sub logo4b()
     Range("P1").Select
    Selection.Copy
    Range("P3").Select
    ActiveSheet.Pictures.Paste.Select
    Application.CutCopyMode = False
 
 End Sub
 Sub logo4c()
     Range("P1").Select
    Selection.Copy
    Range("G25").Select
    ActiveSheet.Pictures.Paste.Select
    Application.CutCopyMode = False
 
 End Sub
 Sub logo4d()
     Range("P1").Select
    Selection.Copy
    Range("P25").Select
    ActiveSheet.Pictures.Paste.Select
    Application.CutCopyMode = False
 
 End Sub
 Sub logo4e()
     Range("P1").Select
    Selection.Copy
    Range("G47").Select
    ActiveSheet.Pictures.Paste.Select
    Application.CutCopyMode = False
 
 End Sub
 Sub logo4f()
     Range("P1").Select
    Selection.Copy
    Range("P47").Select
    ActiveSheet.Pictures.Paste.Select
    Application.CutCopyMode = False
 
 End Sub
 Sub logo4g()
     Range("P1").Select
    Selection.Copy
    Range("G69").Select
    ActiveSheet.Pictures.Paste.Select
    Application.CutCopyMode = False
 
 End Sub
  Sub logo4h()
     Range("P1").Select
    Selection.Copy
    Range("P69").Select
    ActiveSheet.Pictures.Paste.Select
    Application.CutCopyMode = False
 
 End Sub
 Sub logo4i()
     Range("P1").Select
    Selection.Copy
    Range("G91").Select
    ActiveSheet.Pictures.Paste.Select
    Application.CutCopyMode = False
 
 End Sub
  Sub logo4j()
     Range("P1").Select
    Selection.Copy
    Range("P91").Select
    ActiveSheet.Pictures.Paste.Select
    Application.CutCopyMode = False
 
 End Sub
 
 
 Sub logo4k()
     Range("P1").Select
    Selection.Copy
    Range("G113").Select
    ActiveSheet.Pictures.Paste.Select
    Application.CutCopyMode = False
 
 End Sub
  Sub logo4l()
     Range("P1").Select
    Selection.Copy
    Range("P113").Select
    ActiveSheet.Pictures.Paste.Select
    Application.CutCopyMode = False
 
 End Sub

Добавлено через 4 минуты
Код работает длинный … но рабочий

2. Столкнулся с проблемой:пользователи выполняя этот макрос не будут удалять рисунки при сохранении файла и файл будет расти в объеме.
Как можно задать автоматом, что при закрытии файла удаляются рисунки?
Т.е. запуск макроса на закрытие есть, а вот как должен выглядеть макрос, который находит на листе1 «Рисунок 110» (и далее до, например, 300) и удаляет их?

Добавлено через 16 часов 24 минуты
сам спросил — сам ответил
Макрос удаление всех рисунков с листа:

Visual Basic
1
2
3
4
5
6
7
8
9
Sub DeletePictures()
 
For Each pic In ActiveSheet.Shapes
 
If pic.Type = msoPicture Then pic.Delete
 
Next pic
 
End Sub

Понравилась статья? Поделить с друзьями:

А вот еще интересные статьи:

  • Excel калькулятор расчета заработной платы
  • Excel кнопка для вызова макроса
  • Excel калькулятор расчет ставки
  • Excel кнопка вызова функции
  • Excel калькулятор ипотеки сбербанк

  • 0 0 голоса
    Рейтинг статьи
    Подписаться
    Уведомить о
    guest

    0 комментариев
    Старые
    Новые Популярные
    Межтекстовые Отзывы
    Посмотреть все комментарии