Домашняя страница Undo Do New Save Карта сайта Обратная связь Поиск по форуму
МИР MS EXCEL - Гость.xls

Вход

Регистрация

Напомнить пароль

 

= Мир MS Excel/Вставка картинок с подгонкой размера под ячейку - Мир MS Excel

Старая форма входа
  • Страница 1 из 1
  • 1
Модератор форума: китин, _Boroda_  
Мир MS Excel » Вопросы и решения » Вопросы по VBA » Вставка картинок с подгонкой размера под ячейку (Макросы/Sub)
Вставка картинок с подгонкой размера под ячейку
baxetle Дата: Среда, 24.05.2017, 18:55 | Сообщение № 1
Группа: Пользователи
Ранг: Новичок
Сообщений: 13
Репутация: 0 ±
Замечаний: 0% ±

Excel 2007
Друзья, прошу вашей помощи!
Функция(макрос) вставляет картинку по заданным значения Cell-ячека куда вставлять и Pic-путь к файлу. Проблема в том, что по каким то причинам функция не подгоняет размер картинки под ячейку. Помогите разобраться.

[vba]
Код
Function vsunut(ByRef cell As Range, ByVal Pic As String) As Boolean
   
    On Error Resume Next: Err.Clear
    Dim ph As Picture: Set ph = cell.Parent.Pictures.Insert(Pic)
    vs = Err.Number = 0
    ph.Top = cell.Top: ph.Left = cell.Left: k = ph.Width / ph.Height
    ph.Width = cell.Width: ph.Height = ph.Width / k
    cell.EntireRow.RowHeight = ph.Height

End Function
[/vba]
К сообщению приложен файл: 0424514.xlsm (22.4 Kb)


Сообщение отредактировал Pelena - Среда, 24.05.2017, 20:46
 
Ответить
СообщениеДрузья, прошу вашей помощи!
Функция(макрос) вставляет картинку по заданным значения Cell-ячека куда вставлять и Pic-путь к файлу. Проблема в том, что по каким то причинам функция не подгоняет размер картинки под ячейку. Помогите разобраться.

[vba]
Код
Function vsunut(ByRef cell As Range, ByVal Pic As String) As Boolean
   
    On Error Resume Next: Err.Clear
    Dim ph As Picture: Set ph = cell.Parent.Pictures.Insert(Pic)
    vs = Err.Number = 0
    ph.Top = cell.Top: ph.Left = cell.Left: k = ph.Width / ph.Height
    ph.Width = cell.Width: ph.Height = ph.Width / k
    cell.EntireRow.RowHeight = ph.Height

End Function
[/vba]

Автор - baxetle
Дата добавления - 24.05.2017 в 18:55
sboy Дата: Четверг, 25.05.2017, 11:27 | Сообщение № 2
Группа: Друзья
Ранг: Участник клуба
Сообщений: 2566
Репутация: 724 ±
Замечаний: 0% ±

Excel 2010
Добрый день.
Затрудняюсь ответить почему функция не изменяет высоту строки, но при обработке процедурой с циклом, все ОК
[vba]
Код
Sub vsunut()
    For r = 2 To Cells(Rows.Count, 2).End(xlUp).Row 'добавил
    '------------
    On Error Resume Next: Err.Clear
    Set cell = Cells(r, 1) 'добавил
    Pic = Cells(r, 2) 'добавил
    Dim ph As Picture: Set ph = cell.Parent.Pictures.Insert(Pic)
    vs = Err.Number = 0
    ph.Top = cell.Top: ph.Left = cell.Left: k = ph.Width / ph.Height
    ph.Width = cell.Width
    ph.Height = ph.Width / k
    cell.EntireRow.RowHeight = ph.Height
    ph.Placement = xlMoveAndSize 'перенес
    '------------
    Next r 'добавил
End Sub
[/vba]


Яндекс: 410016850021169
 
Ответить
СообщениеДобрый день.
Затрудняюсь ответить почему функция не изменяет высоту строки, но при обработке процедурой с циклом, все ОК
[vba]
Код
Sub vsunut()
    For r = 2 To Cells(Rows.Count, 2).End(xlUp).Row 'добавил
    '------------
    On Error Resume Next: Err.Clear
    Set cell = Cells(r, 1) 'добавил
    Pic = Cells(r, 2) 'добавил
    Dim ph As Picture: Set ph = cell.Parent.Pictures.Insert(Pic)
    vs = Err.Number = 0
    ph.Top = cell.Top: ph.Left = cell.Left: k = ph.Width / ph.Height
    ph.Width = cell.Width
    ph.Height = ph.Width / k
    cell.EntireRow.RowHeight = ph.Height
    ph.Placement = xlMoveAndSize 'перенес
    '------------
    Next r 'добавил
End Sub
[/vba]

Автор - sboy
Дата добавления - 25.05.2017 в 11:27
Manyasha Дата: Четверг, 25.05.2017, 13:00 | Сообщение № 3
Группа: Модераторы
Ранг: Старожил
Сообщений: 2198
Репутация: 898 ±
Замечаний: 0% ±

Excel 2010, 2016
почему функция не изменяет высоту строки

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


ЯД: 410013299366744 WM: R193491431804
 
Ответить
Сообщение
почему функция не изменяет высоту строки

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

Автор - Manyasha
Дата добавления - 25.05.2017 в 13:00
sboy Дата: Четверг, 25.05.2017, 14:07 | Сообщение № 4
Группа: Друзья
Ранг: Участник клуба
Сообщений: 2566
Репутация: 724 ±
Замечаний: 0% ±

Excel 2010
Manyasha, Высота строки не относится к форматам, и значения других ячеек ведь не меняем.
А есть возможность внутри UDF узнать в какую ячейку ее ввели, типа Me.address? так для интереса по тестировать.


Яндекс: 410016850021169
 
Ответить
СообщениеManyasha, Высота строки не относится к форматам, и значения других ячеек ведь не меняем.
А есть возможность внутри UDF узнать в какую ячейку ее ввели, типа Me.address? так для интереса по тестировать.

Автор - sboy
Дата добавления - 25.05.2017 в 14:07
baxetle Дата: Четверг, 25.05.2017, 16:23 | Сообщение № 5
Группа: Пользователи
Ранг: Новичок
Сообщений: 13
Репутация: 0 ±
Замечаний: 0% ±

Excel 2007
sboy, возникает проблема с фото. Часть фото отрабатывается корректно, а часть ведет себя не предсказуемо. Обратите внимание на эту ссылку с фото "https://ta.fly7.ru/pics/f0f6c03b-bb84-11e6-9209-00155d63110f.jpg", процедура не отрабатывает корректно. Можете разъяснить почему? Спасибо. PS таких "фото" порядка 10% из выборки 20 тыс.
К сообщению приложен файл: 8880468.xlsm (24.6 Kb)
 
Ответить
Сообщениеsboy, возникает проблема с фото. Часть фото отрабатывается корректно, а часть ведет себя не предсказуемо. Обратите внимание на эту ссылку с фото "https://ta.fly7.ru/pics/f0f6c03b-bb84-11e6-9209-00155d63110f.jpg", процедура не отрабатывает корректно. Можете разъяснить почему? Спасибо. PS таких "фото" порядка 10% из выборки 20 тыс.

Автор - baxetle
Дата добавления - 25.05.2017 в 16:23
sboy Дата: Четверг, 25.05.2017, 16:37 | Сообщение № 6
Группа: Друзья
Ранг: Участник клуба
Сообщений: 2566
Репутация: 724 ±
Замечаний: 0% ±

Excel 2010
процедура не отрабатывает корректно

какая именно процедура?
у меня все ОК


Яндекс: 410016850021169
 
Ответить
Сообщение
процедура не отрабатывает корректно

какая именно процедура?
у меня все ОК

Автор - sboy
Дата добавления - 25.05.2017 в 16:37
Udik Дата: Четверг, 25.05.2017, 16:40 | Сообщение № 7
Группа: Друзья
Ранг: Старожил
Сообщений: 1588
Репутация: 192 ±
Замечаний: 0% ±

Excel 2016 х 64
А есть возможность внутри UDF узнать в какую ячейку ее ввели,

Application.Caller.Address - адрес ячейки, из которой вызвана функция
Application.Caller.Parent.Name - имя листа, в котором прописана функция


вот вам барабан
яд 41001231307558 wm R419131876897
udik1968@gmail.com
 
Ответить
Сообщение
А есть возможность внутри UDF узнать в какую ячейку ее ввели,

Application.Caller.Address - адрес ячейки, из которой вызвана функция
Application.Caller.Parent.Name - имя листа, в котором прописана функция

Автор - Udik
Дата добавления - 25.05.2017 в 16:40
sboy Дата: Четверг, 25.05.2017, 17:13 | Сообщение № 8
Группа: Друзья
Ранг: Участник клуба
Сообщений: 2566
Репутация: 724 ±
Замечаний: 0% ±

Excel 2010
Udik, спасибо, потренируюсь


Яндекс: 410016850021169
 
Ответить
СообщениеUdik, спасибо, потренируюсь

Автор - sboy
Дата добавления - 25.05.2017 в 17:13
baxetle Дата: Четверг, 25.05.2017, 17:28 | Сообщение № 9
Группа: Пользователи
Ранг: Новичок
Сообщений: 13
Репутация: 0 ±
Замечаний: 0% ±

Excel 2007
какая именно процедура?
у меня все ОК

Sboy, я имею ввиду программа. Выслал пример ранее.
 
Ответить
Сообщение
какая именно процедура?
у меня все ОК

Sboy, я имею ввиду программа. Выслал пример ранее.

Автор - baxetle
Дата добавления - 25.05.2017 в 17:28
Мир MS Excel » Вопросы и решения » Вопросы по VBA » Вставка картинок с подгонкой размера под ячейку (Макросы/Sub)
  • Страница 1 из 1
  • 1
Поиск:

Яндекс.Метрика Яндекс цитирования
© 2010-2024 · Дизайн: MichaelCH · Хостинг от uCoz · При использовании материалов сайта, ссылка на www.excelworld.ru обязательна!