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

Вход

Регистрация

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

 

= Мир MS Excel/Сохранить картинку в файл с именем ячейки - Страница 2 - Мир MS Excel

Старая форма входа
  • Страница 2 из 2
  • «
  • 1
  • 2
Модератор форума: китин, _Boroda_  
Мир MS Excel » Вопросы и решения » Вопросы по VBA » Сохранить картинку в файл с именем ячейки (Макросы/Sub)
Сохранить картинку в файл с именем ячейки
Minerva76 Дата: Суббота, 28.10.2017, 00:49 | Сообщение № 21
Группа: Пользователи
Ранг: Прохожий
Сообщений: 7
Репутация: 0 ±
Замечаний: 20% ±

Excel 2007
вот бланк
К сообщению приложен файл: 8709244.xlsm (54.5 Kb)
 
Ответить
Сообщениевот бланк

Автор - Minerva76
Дата добавления - 28.10.2017 в 00:49
_Boroda_ Дата: Суббота, 28.10.2017, 02:38 | Сообщение № 22
Группа: Модераторы
Ранг: Местный житель
Сообщений: 16675
Репутация: 6481 ±
Замечаний: 0% ±

2003; 2007; 2010; 2013 RUS
Чуть подвиньте картинки. Нужно, чтобы нижний правый угол картинки (BottomRightCell) был внутри ячейки. Вернее, чтобы низ картинки был чуть-чуть выше границы ячейки


Скажи мне, кудесник, любимец ба’гов...
Платная помощь:
Boroda_Excel@mail.ru
Яндекс-деньги: 41001632713405 | Webmoney: R289877159277; Z102172301748; E177867141995
 
Ответить
СообщениеЧуть подвиньте картинки. Нужно, чтобы нижний правый угол картинки (BottomRightCell) был внутри ячейки. Вернее, чтобы низ картинки был чуть-чуть выше границы ячейки

Автор - _Boroda_
Дата добавления - 28.10.2017 в 02:38
Roman777 Дата: Суббота, 28.10.2017, 10:56 | Сообщение № 23
Группа: Проверенные
Ранг: Ветеран
Сообщений: 980
Репутация: 127 ±
Замечаний: 0% ±

Excel 2007, Excel 2013
Minerva76, Да, действительно, у Вас картинка смещена чуть выше, чем нужно... не попадает ровно в нужную ячейку. Мб лучше "починить" загрузчик картинок в эксель файл?
В любом случае, можно сделать сравнение по функции, по которой нужно, чтобы координата Y середины рисунка должна была бы хотя бы попасть в диапазон координат Y соответствующей ячейки.
[vba]
Код
Sub kartinki_von()
Dim i As Long, i_n As Long
Dim obj As Shape
Dim NWS As Worksheet, AWS As Worksheet
Set AWS = ActiveSheet
Set NWS = ActiveWorkbook.Sheets.Add
i_n = AWS.Cells(Rows.Count, 2).End(xlUp).Row
For i = 2 To i_n
For Each obj In AWS.Shapes
If obj.Type = 13 Then
    If RoundPlace(AWS.Cells(i, 2), obj) Then
    obj.Copy
    With NWS.ChartObjects.Add(0, 0, obj.Width, obj.Height).Chart
        .ChartArea.Border.LineStyle = 0
        .Paste
        .Export Filename:=ActiveWorkbook.Path & "\" & AWS.Cells(i, 2) & ".jpg", FilterName:="JPG"
        .Parent.Delete
    End With
    End If
End If
Next obj
Next i
Application.DisplayAlerts = False
NWS.Delete
Application.DisplayAlerts = True
End Sub
Function RoundPlace(r As Range, shp As Shape) As Boolean
    Dim Middle As Single
    Middle = shp.Top + shp.Height / 2
    RoundPlace = (r.Top <= Middle And Middle < r.Top + r.Height)
End Function
[/vba]


Много чего не знаю!!!!

Сообщение отредактировал Roman777 - Суббота, 28.10.2017, 10:57
 
Ответить
СообщениеMinerva76, Да, действительно, у Вас картинка смещена чуть выше, чем нужно... не попадает ровно в нужную ячейку. Мб лучше "починить" загрузчик картинок в эксель файл?
В любом случае, можно сделать сравнение по функции, по которой нужно, чтобы координата Y середины рисунка должна была бы хотя бы попасть в диапазон координат Y соответствующей ячейки.
[vba]
Код
Sub kartinki_von()
Dim i As Long, i_n As Long
Dim obj As Shape
Dim NWS As Worksheet, AWS As Worksheet
Set AWS = ActiveSheet
Set NWS = ActiveWorkbook.Sheets.Add
i_n = AWS.Cells(Rows.Count, 2).End(xlUp).Row
For i = 2 To i_n
For Each obj In AWS.Shapes
If obj.Type = 13 Then
    If RoundPlace(AWS.Cells(i, 2), obj) Then
    obj.Copy
    With NWS.ChartObjects.Add(0, 0, obj.Width, obj.Height).Chart
        .ChartArea.Border.LineStyle = 0
        .Paste
        .Export Filename:=ActiveWorkbook.Path & "\" & AWS.Cells(i, 2) & ".jpg", FilterName:="JPG"
        .Parent.Delete
    End With
    End If
End If
Next obj
Next i
Application.DisplayAlerts = False
NWS.Delete
Application.DisplayAlerts = True
End Sub
Function RoundPlace(r As Range, shp As Shape) As Boolean
    Dim Middle As Single
    Middle = shp.Top + shp.Height / 2
    RoundPlace = (r.Top <= Middle And Middle < r.Top + r.Height)
End Function
[/vba]

Автор - Roman777
Дата добавления - 28.10.2017 в 10:56
Minerva76 Дата: Суббота, 28.10.2017, 14:02 | Сообщение № 24
Группа: Пользователи
Ранг: Прохожий
Сообщений: 7
Репутация: 0 ±
Замечаний: 20% ±

Excel 2007
Roman777,
Излишнее цитирование удалено
Спасибо Вам огромное за помощь! Вы во второй раз спасли меня !
Постараюсь и с загрузчиком картинок разобраться.


Сообщение отредактировал Manyasha - Понедельник, 30.10.2017, 11:18
 
Ответить
СообщениеRoman777,
Излишнее цитирование удалено
Спасибо Вам огромное за помощь! Вы во второй раз спасли меня !
Постараюсь и с загрузчиком картинок разобраться.

Автор - Minerva76
Дата добавления - 28.10.2017 в 14:02
Minerva76 Дата: Суббота, 28.10.2017, 14:06 | Сообщение № 25
Группа: Пользователи
Ранг: Прохожий
Сообщений: 7
Репутация: 0 ±
Замечаний: 20% ±

Excel 2007
_Boroda_,
Излишнее цитирование удалено
Спасибо огромное, поняла свою ошибку.


Сообщение отредактировал Manyasha - Понедельник, 30.10.2017, 11:19
 
Ответить
Сообщение_Boroda_,
Излишнее цитирование удалено
Спасибо огромное, поняла свою ошибку.

Автор - Minerva76
Дата добавления - 28.10.2017 в 14:06
lbarmen Дата: Среда, 24.01.2018, 10:15 | Сообщение № 26
Группа: Пользователи
Ранг: Прохожий
Сообщений: 3
Репутация: 0 ±
Замечаний: 0% ±

Excel 2016
Помогите разобраться, почему изображения сохраняются белыми? Скачивал ваш xlsm.
К сообщению приложен файл: 7238383.jpg (19.2 Kb)


Сообщение отредактировал lbarmen - Среда, 24.01.2018, 10:15
 
Ответить
СообщениеПомогите разобраться, почему изображения сохраняются белыми? Скачивал ваш xlsm.

Автор - lbarmen
Дата добавления - 24.01.2018 в 10:15
Roman777 Дата: Среда, 24.01.2018, 10:30 | Сообщение № 27
Группа: Проверенные
Ранг: Ветеран
Сообщений: 980
Репутация: 127 ±
Замечаний: 0% ±

Excel 2007, Excel 2013
lbarmen, пример файлика... без него можно только гадать...


Много чего не знаю!!!!
 
Ответить
Сообщениеlbarmen, пример файлика... без него можно только гадать...

Автор - Roman777
Дата добавления - 24.01.2018 в 10:30
lbarmen Дата: Среда, 24.01.2018, 10:37 | Сообщение № 28
Группа: Пользователи
Ранг: Прохожий
Сообщений: 3
Репутация: 0 ±
Замечаний: 0% ±

Excel 2016
Roman777, файл был взят из этой темы, вот он. Возможно ли это из-зав того что версия Excel 2016? Если да, то есть ли возможность исправить этот макрос :)
К сообщению приложен файл: 0211877.xlsm (57.8 Kb)


Сообщение отредактировал lbarmen - Среда, 24.01.2018, 10:39
 
Ответить
СообщениеRoman777, файл был взят из этой темы, вот он. Возможно ли это из-зав того что версия Excel 2016? Если да, то есть ли возможность исправить этот макрос :)

Автор - lbarmen
Дата добавления - 24.01.2018 в 10:37
Roman777 Дата: Среда, 24.01.2018, 11:02 | Сообщение № 29
Группа: Проверенные
Ранг: Ветеран
Сообщений: 980
Репутация: 127 ±
Замечаний: 0% ±

Excel 2007, Excel 2013
lbarmen, мб и из-за версии, не проверить сейчас, нет 2016-го. Попробуйте такой... работает?
[vba]
Код
Sub kartinki_von()
Dim i As Long, i_n As Long
Dim obj As Shape
Dim NWS As Worksheet, AWS As Worksheet
Set AWS = ActiveSheet
Set NWS = ActiveWorkbook.Sheets.Add
i_n = AWS.Cells(Rows.Count, 2).End(xlUp).Row
Application.ScreenUpdating = False
For i = 2 To i_n
For Each obj In AWS.Shapes
  If obj.Type = 13 Then
    If AWS.Cells(i, 2).Top = obj.BottomRightCell.Top Then
       obj.Copy
       With NWS.ChartObjects.Add(0, 0, obj.Width, obj.Height).Chart
           .ChartArea.Select
           .ChartArea.Border.LineStyle = 0
           .Paste
           .Export Filename:=ActiveWorkbook.Path & "\" & AWS.Cells(i, 2) & ".jpg", FilterName:="JPG"
           .Parent.Delete
       End With
    End If
  End If
Next obj
Next i
Application.DisplayAlerts = False
NWS.Delete
Application.DisplayAlerts = True
Application.ScreenUpdating = True
End Sub
[/vba]


Много чего не знаю!!!!
 
Ответить
Сообщениеlbarmen, мб и из-за версии, не проверить сейчас, нет 2016-го. Попробуйте такой... работает?
[vba]
Код
Sub kartinki_von()
Dim i As Long, i_n As Long
Dim obj As Shape
Dim NWS As Worksheet, AWS As Worksheet
Set AWS = ActiveSheet
Set NWS = ActiveWorkbook.Sheets.Add
i_n = AWS.Cells(Rows.Count, 2).End(xlUp).Row
Application.ScreenUpdating = False
For i = 2 To i_n
For Each obj In AWS.Shapes
  If obj.Type = 13 Then
    If AWS.Cells(i, 2).Top = obj.BottomRightCell.Top Then
       obj.Copy
       With NWS.ChartObjects.Add(0, 0, obj.Width, obj.Height).Chart
           .ChartArea.Select
           .ChartArea.Border.LineStyle = 0
           .Paste
           .Export Filename:=ActiveWorkbook.Path & "\" & AWS.Cells(i, 2) & ".jpg", FilterName:="JPG"
           .Parent.Delete
       End With
    End If
  End If
Next obj
Next i
Application.DisplayAlerts = False
NWS.Delete
Application.DisplayAlerts = True
Application.ScreenUpdating = True
End Sub
[/vba]

Автор - Roman777
Дата добавления - 24.01.2018 в 11:02
lbarmen Дата: Четверг, 25.01.2018, 08:29 | Сообщение № 30
Группа: Пользователи
Ранг: Прохожий
Сообщений: 3
Репутация: 0 ±
Замечаний: 0% ±

Excel 2016
Roman777, спасибо, всё работает!
 
Ответить
СообщениеRoman777, спасибо, всё работает!

Автор - lbarmen
Дата добавления - 25.01.2018 в 08:29
aho3 Дата: Четверг, 11.05.2023, 19:08 | Сообщение № 31
Группа: Пользователи
Ранг: Прохожий
Сообщений: 1
Репутация: 0 ±
Замечаний: 0% ±

2021
мб и из-за версии, не проверить сейчас, нет 2016-го. Попробуйте такой... работает?


Добрый день! Скачал файл из этой ветки, попробовал в версии 2021 и также белые фото сохраняются. Подскажите, пожалуйста, что нужно поправить в коде, чтобы фото сохранялись как надо? Заранее огромное спасибо!
К сообщению приложен файл: 9969037.xlsm (58.8 Kb)
 
Ответить
Сообщение
мб и из-за версии, не проверить сейчас, нет 2016-го. Попробуйте такой... работает?


Добрый день! Скачал файл из этой ветки, попробовал в версии 2021 и также белые фото сохраняются. Подскажите, пожалуйста, что нужно поправить в коде, чтобы фото сохранялись как надо? Заранее огромное спасибо!

Автор - aho3
Дата добавления - 11.05.2023 в 19:08
Мир MS Excel » Вопросы и решения » Вопросы по VBA » Сохранить картинку в файл с именем ячейки (Макросы/Sub)
  • Страница 2 из 2
  • «
  • 1
  • 2
Поиск:

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