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

Вход

Регистрация

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

 

= Мир MS Excel/Формирование подложки - из картинки на листе. - Мир MS Excel

Старая форма входа
  • Страница 1 из 1
  • 1
Модератор форума: китин, _Boroda_  
Мир MS Excel » Вопросы и решения » Вопросы по VBA » Формирование подложки - из картинки на листе. (Формулы/Formulas)
Формирование подложки - из картинки на листе.
Grell Дата: Суббота, 07.01.2017, 20:03 | Сообщение № 1
Группа: Проверенные
Ранг: Форумчанин
Сообщений: 113
Репутация: 0 ±
Замечаний: 60% ±

Excel 2007
Здравствуйте, добрые люди.
Помогите советом.
Вот есть у меня картинка на листе, как макросом эту картинку - переместить в подложку?

То есть чтобы подложка формировалась не из какого-то стороннего файла, а из фото-объекта с определенным названием, который находится на том же листе.
К сообщению приложен файл: 5435345.xls (95.5 Kb)
 
Ответить
СообщениеЗдравствуйте, добрые люди.
Помогите советом.
Вот есть у меня картинка на листе, как макросом эту картинку - переместить в подложку?

То есть чтобы подложка формировалась не из какого-то стороннего файла, а из фото-объекта с определенным названием, который находится на том же листе.

Автор - Grell
Дата добавления - 07.01.2017 в 20:03
wild_pig Дата: Воскресенье, 08.01.2017, 01:42 | Сообщение № 2
Группа: Проверенные
Ранг: Обитатель
Сообщений: 517
Репутация: 97 ±
Замечаний: 0% ±

2003, 2013
Что такое "подложка"?
 
Ответить
СообщениеЧто такое "подложка"?

Автор - wild_pig
Дата добавления - 08.01.2017 в 01:42
Grell Дата: Воскресенье, 08.01.2017, 09:28 | Сообщение № 3
Группа: Проверенные
Ранг: Форумчанин
Сообщений: 113
Репутация: 0 ±
Замечаний: 60% ±

Excel 2007
wild_pig, .... что такое подложка ?

Ну в Эксель2013, например - это РАЗМЕТКА СТРАНИЦЫ - ПОДЛОЖКА - ИЗ ФАЙЛА - ОТКРЫТЬ.
 
Ответить
Сообщениеwild_pig, .... что такое подложка ?

Ну в Эксель2013, например - это РАЗМЕТКА СТРАНИЦЫ - ПОДЛОЖКА - ИЗ ФАЙЛА - ОТКРЫТЬ.

Автор - Grell
Дата добавления - 08.01.2017 в 09:28
bmv98rus Дата: Воскресенье, 08.01.2017, 15:48 | Сообщение № 4
Группа: Друзья
Ранг: Участник клуба
Сообщений: 4111
Репутация: 768 ±
Замечаний: 0% ±

Excel 2013/2016
Grell,

А что изменилось с тех пор, все на тех местах где и было.


Прошу прощения за ENG.
К сообщению приложен файл: 2229913.jpg (42.1 Kb)


Замечательный Временно просто медведь , процентов на 20.

Сообщение отредактировал bmv98rus - Воскресенье, 08.01.2017, 15:49
 
Ответить
СообщениеGrell,

А что изменилось с тех пор, все на тех местах где и было.


Прошу прощения за ENG.

Автор - bmv98rus
Дата добавления - 08.01.2017 в 15:48
Grell Дата: Воскресенье, 08.01.2017, 16:58 | Сообщение № 5
Группа: Проверенные
Ранг: Форумчанин
Сообщений: 113
Репутация: 0 ±
Замечаний: 60% ±

Excel 2007
bmv98rus, ничего не поменялось. На моем экселе - все точно также - как показано на вашей картинке.

А вы это вообще к чему спрашиваете, и какое отношение это имеет к моему вопросу?


Сообщение отредактировал Grell - Воскресенье, 08.01.2017, 17:21
 
Ответить
Сообщениеbmv98rus, ничего не поменялось. На моем экселе - все точно также - как показано на вашей картинке.

А вы это вообще к чему спрашиваете, и какое отношение это имеет к моему вопросу?

Автор - Grell
Дата добавления - 08.01.2017 в 16:58
TimSha Дата: Воскресенье, 08.01.2017, 17:05 | Сообщение № 6
Группа: Проверенные
Ранг: Ветеран
Сообщений: 627
Репутация: 94 ±
Замечаний: 0% ±

Excel 2013 Pro +
Grell, вы бы точнее пояснили какую подложку желаете иметь - обычную, которая на ВЕСЬ лист, или же на печатные страницы?!. ;)


"Ctrl+S" - достойное завершение ваших гениальных мыслей!.. ;)
 
Ответить
СообщениеGrell, вы бы точнее пояснили какую подложку желаете иметь - обычную, которая на ВЕСЬ лист, или же на печатные страницы?!. ;)

Автор - TimSha
Дата добавления - 08.01.2017 в 17:05
bmv98rus Дата: Воскресенье, 08.01.2017, 17:15 | Сообщение № 7
Группа: Друзья
Ранг: Участник клуба
Сообщений: 4111
Репутация: 768 ±
Замечаний: 0% ±

Excel 2013/2016
Grell,

Есть такой метод простой, запись макроса, дает результат в большинстве случаев,[vba]
Код
ActiveSheet.SetBackgroundPicture Filename:= ".......\0hljXzeVHpc.jpg"]
[/vba] правка под нужды.
Ну а пере этим выгрузить картинку объекта в файл. тут можно посомтреть как, разве что заменить кое что надо.
Поторопился

Тут два варианта сохранения, один через промежутоный Chart
[vba]
Код
Sub ExportMyPicture()
     
    Dim MyChart As String, MyPicture As String
    Dim PicWidth As Long, PicHeight As Long
     
    Application.ScreenUpdating = False
    On Error GoTo Finish
    MyPicture = Selection.Name
    With Selection
        PicHeight = .ShapeRange.Height
        PicWidth = .ShapeRange.Width
    End With
     
    Charts.Add
    ActiveChart.Location Where:=xlLocationAsObject, Name:="Sheet3"
    Selection.Border.LineStyle = 0
    MyChart = Selection.Name & " " & Split(ActiveChart.Name, " ")(2)
     
    With ActiveSheet
        With .Shapes(MyChart)
            .Width = PicWidth
            .Height = PicHeight
        End With
         
        .Shapes(MyPicture).Copy
         
        With ActiveChart
            .ChartArea.Select
            .Paste
        End With
         
        .ChartObjects(1).Chart.Export FileName:="MyPic.jpg", FilterName:="jpg"
        .Shapes(MyChart).Cut
    End With
     
    Application.ScreenUpdating = True
    Exit Sub
     
Finish:
    MsgBox "You must select a picture"
End Sub

[/vba] естественно надо адаптировать.


Замечательный Временно просто медведь , процентов на 20.

Сообщение отредактировал bmv98rus - Воскресенье, 08.01.2017, 17:57
 
Ответить
СообщениеGrell,

Есть такой метод простой, запись макроса, дает результат в большинстве случаев,[vba]
Код
ActiveSheet.SetBackgroundPicture Filename:= ".......\0hljXzeVHpc.jpg"]
[/vba] правка под нужды.
Ну а пере этим выгрузить картинку объекта в файл. тут можно посомтреть как, разве что заменить кое что надо.
Поторопился

Тут два варианта сохранения, один через промежутоный Chart
[vba]
Код
Sub ExportMyPicture()
     
    Dim MyChart As String, MyPicture As String
    Dim PicWidth As Long, PicHeight As Long
     
    Application.ScreenUpdating = False
    On Error GoTo Finish
    MyPicture = Selection.Name
    With Selection
        PicHeight = .ShapeRange.Height
        PicWidth = .ShapeRange.Width
    End With
     
    Charts.Add
    ActiveChart.Location Where:=xlLocationAsObject, Name:="Sheet3"
    Selection.Border.LineStyle = 0
    MyChart = Selection.Name & " " & Split(ActiveChart.Name, " ")(2)
     
    With ActiveSheet
        With .Shapes(MyChart)
            .Width = PicWidth
            .Height = PicHeight
        End With
         
        .Shapes(MyPicture).Copy
         
        With ActiveChart
            .ChartArea.Select
            .Paste
        End With
         
        .ChartObjects(1).Chart.Export FileName:="MyPic.jpg", FilterName:="jpg"
        .Shapes(MyChart).Cut
    End With
     
    Application.ScreenUpdating = True
    Exit Sub
     
Finish:
    MsgBox "You must select a picture"
End Sub

[/vba] естественно надо адаптировать.

Автор - bmv98rus
Дата добавления - 08.01.2017 в 17:15
Grell Дата: Воскресенье, 08.01.2017, 17:39 | Сообщение № 8
Группа: Проверенные
Ранг: Форумчанин
Сообщений: 113
Репутация: 0 ±
Замечаний: 60% ±

Excel 2007
bmv98rus, то что вы написали - не подходит.
Я же говорю - картинка не на диске, а на листе находится.
 
Ответить
Сообщениеbmv98rus, то что вы написали - не подходит.
Я же говорю - картинка не на диске, а на листе находится.

Автор - Grell
Дата добавления - 08.01.2017 в 17:39
Grell Дата: Воскресенье, 08.01.2017, 17:40 | Сообщение № 9
Группа: Проверенные
Ранг: Форумчанин
Сообщений: 113
Репутация: 0 ±
Замечаний: 60% ±

Excel 2007
TimSha, самую обычную подложку - которая на весь лист идет.
 
Ответить
СообщениеTimSha, самую обычную подложку - которая на весь лист идет.

Автор - Grell
Дата добавления - 08.01.2017 в 17:40
bmv98rus Дата: Воскресенье, 08.01.2017, 17:52 | Сообщение № 10
Группа: Друзья
Ранг: Участник клуба
Сообщений: 4111
Репутация: 768 ±
Замечаний: 0% ±

Excel 2013/2016
Grell,

См. предыдущее сообщение, я исправил.


Замечательный Временно просто медведь , процентов на 20.
 
Ответить
СообщениеGrell,

См. предыдущее сообщение, я исправил.

Автор - bmv98rus
Дата добавления - 08.01.2017 в 17:52
krosav4ig Дата: Воскресенье, 08.01.2017, 18:25 | Сообщение № 11
Группа: Друзья
Ранг: Старожил
Сообщений: 2347
Репутация: 989 ±
Замечаний: 0% ±

Excel 2007,2010,2013
модуль modPastePicture спёр тут

[vba]
Код
Sub Подложка()
    Dim sFile$: sFile = Environ("tmp") & "\tmp.bmp"
    Лист3.[Рисунок 1].CopyPicture xlScreen, xlBitmap
    DoEvents: SavePicture PastePicture(xlBitmap), sFile
    DoEvents: Лист3.SetBackgroundPicture sFile
    DoEvents: Kill sFile
End Sub
[/vba]
К сообщению приложен файл: 5435345-.xlsm (98.9 Kb)


email:krosav4ig26@gmail.com WMR R207627035142 WMZ Z821145374535 ЯД 410012026478460

Сообщение отредактировал krosav4ig - Воскресенье, 08.01.2017, 18:25
 
Ответить
Сообщениемодуль modPastePicture спёр тут

[vba]
Код
Sub Подложка()
    Dim sFile$: sFile = Environ("tmp") & "\tmp.bmp"
    Лист3.[Рисунок 1].CopyPicture xlScreen, xlBitmap
    DoEvents: SavePicture PastePicture(xlBitmap), sFile
    DoEvents: Лист3.SetBackgroundPicture sFile
    DoEvents: Kill sFile
End Sub
[/vba]

Автор - krosav4ig
Дата добавления - 08.01.2017 в 18:25
Grell Дата: Воскресенье, 08.01.2017, 18:38 | Сообщение № 12
Группа: Проверенные
Ранг: Форумчанин
Сообщений: 113
Репутация: 0 ±
Замечаний: 60% ±

Excel 2007
bmv98rus, протестировал этот код.
Выделяю картинку - жму на кнопку. Мне пишут You must select a picture.
Затем создается лист с названием Диаграмма. Этот лист пустой - а в центре него какой-то белый прямоугольник - видимо это какое-то поле для некой диаграммы.

В общем мне нужно - просто сделать подложку. Посмотрите - я скидывал пример. Там на листе3 - находится картинка.
И эту картинку мне надо поместить в подложку.
То есть картинка - это не файл, который где-то на диске лежит, а картинка, которая находится на листе.
 
Ответить
Сообщениеbmv98rus, протестировал этот код.
Выделяю картинку - жму на кнопку. Мне пишут You must select a picture.
Затем создается лист с названием Диаграмма. Этот лист пустой - а в центре него какой-то белый прямоугольник - видимо это какое-то поле для некой диаграммы.

В общем мне нужно - просто сделать подложку. Посмотрите - я скидывал пример. Там на листе3 - находится картинка.
И эту картинку мне надо поместить в подложку.
То есть картинка - это не файл, который где-то на диске лежит, а картинка, которая находится на листе.

Автор - Grell
Дата добавления - 08.01.2017 в 18:38
TimSha Дата: Воскресенье, 08.01.2017, 19:01 | Сообщение № 13
Группа: Проверенные
Ранг: Ветеран
Сообщений: 627
Репутация: 94 ±
Замечаний: 0% ±

Excel 2013 Pro +
И это разве не то?!
См. скрин.
К сообщению приложен файл: 3014481.png (98.2 Kb)


"Ctrl+S" - достойное завершение ваших гениальных мыслей!.. ;)
 
Ответить
СообщениеИ это разве не то?!
См. скрин.

Автор - TimSha
Дата добавления - 08.01.2017 в 19:01
Grell Дата: Воскресенье, 08.01.2017, 19:18 | Сообщение № 14
Группа: Проверенные
Ранг: Форумчанин
Сообщений: 113
Репутация: 0 ±
Замечаний: 60% ±

Excel 2007
TimSha, да.
Мне вот так и нужно.
 
Ответить
СообщениеTimSha, да.
Мне вот так и нужно.

Автор - Grell
Дата добавления - 08.01.2017 в 19:18
Grell Дата: Воскресенье, 08.01.2017, 19:20 | Сообщение № 15
Группа: Проверенные
Ранг: Форумчанин
Сообщений: 113
Репутация: 0 ±
Замечаний: 60% ±

Excel 2007
krosav4ig, вот ваш код работает.
Большое спасибо.
 
Ответить
Сообщениеkrosav4ig, вот ваш код работает.
Большое спасибо.

Автор - Grell
Дата добавления - 08.01.2017 в 19:20
krosav4ig Дата: Воскресенье, 08.01.2017, 22:17 | Сообщение № 16
Группа: Друзья
Ранг: Старожил
Сообщений: 2347
Репутация: 989 ±
Замечаний: 0% ±

Excel 2007,2010,2013
You must select a picture

ну дык чего не понятно-то?
Ведь черным по-англиццки написано "Вы должны выделить изображение"
Выделил картинку, запустил макрос, получил выделенную картинку в подложке


email:krosav4ig26@gmail.com WMR R207627035142 WMZ Z821145374535 ЯД 410012026478460

Сообщение отредактировал krosav4ig - Воскресенье, 08.01.2017, 22:19
 
Ответить
Сообщение
You must select a picture

ну дык чего не понятно-то?
Ведь черным по-англиццки написано "Вы должны выделить изображение"
Выделил картинку, запустил макрос, получил выделенную картинку в подложке

Автор - krosav4ig
Дата добавления - 08.01.2017 в 22:17
bmv98rus Дата: Воскресенье, 08.01.2017, 22:32 | Сообщение № 17
Группа: Друзья
Ранг: Участник клуба
Сообщений: 4111
Репутация: 768 ±
Замечаний: 0% ±

Excel 2013/2016
krosav4ig,
Там не все гладко, я попытался побыстрому накидать, ното работает, то нет.
[vba]
Код
Sub background()
    Dim fso As Object
    Set fso = CreateObject("Scripting.FileSystemObject")
    get_tempName = Replace(fso.GetTempName(), ".tmp", ".jpg")
    'On Error GoTo Finish
    Set Sourcesheet = ActiveSheet
    MyPicture = ActiveSheet.Shapes(1).Name
    With Sourcesheet.Shapes(MyPicture)
        PicHeight = .Height
        PicWidth = .Width
    End With
    
    Set NewChart = ActiveSheet.Shapes.AddChart
    NewChart.Line.Visible = msoFalse
    NewChart.Select
    With Selection
        .Height = PicHeight
        .Width = PicWidth
    End With
    Sourcesheet.Shapes(MyPicture).Copy
    ActiveChart.Paste
    NewChart.Select
    ActiveSheet.Shapes(1).Select
    Worksheet("Ëèñò3").ChartObjects(1).Chart.Export Filename:=get_tempName, FilterName:="jpg"
    ActiveChart.Parent.Delete
    Selection.Delete
    Sourcesheet.SetBackgroundPicture get_tempName
    fso.DeleteFile get_tempName, 0
End Sub
[/vba]

вот эту часть [vba]
Код
   NewChart.Select
    ActiveSheet.Shapes(1).Select
    Worksheet("Ëèñò3").ChartObjects(1).Chart.Export Filename:=get_tempName, FilterName:="jpg"
[/vba]никак нормально не оформить, то рабоатет то нет. Это и так и так пробовал, и фокус снимал и .... но вдруг получится. Код то крохотный.


Замечательный Временно просто медведь , процентов на 20.

Сообщение отредактировал bmv98rus - Воскресенье, 08.01.2017, 22:33
 
Ответить
Сообщениеkrosav4ig,
Там не все гладко, я попытался побыстрому накидать, ното работает, то нет.
[vba]
Код
Sub background()
    Dim fso As Object
    Set fso = CreateObject("Scripting.FileSystemObject")
    get_tempName = Replace(fso.GetTempName(), ".tmp", ".jpg")
    'On Error GoTo Finish
    Set Sourcesheet = ActiveSheet
    MyPicture = ActiveSheet.Shapes(1).Name
    With Sourcesheet.Shapes(MyPicture)
        PicHeight = .Height
        PicWidth = .Width
    End With
    
    Set NewChart = ActiveSheet.Shapes.AddChart
    NewChart.Line.Visible = msoFalse
    NewChart.Select
    With Selection
        .Height = PicHeight
        .Width = PicWidth
    End With
    Sourcesheet.Shapes(MyPicture).Copy
    ActiveChart.Paste
    NewChart.Select
    ActiveSheet.Shapes(1).Select
    Worksheet("Ëèñò3").ChartObjects(1).Chart.Export Filename:=get_tempName, FilterName:="jpg"
    ActiveChart.Parent.Delete
    Selection.Delete
    Sourcesheet.SetBackgroundPicture get_tempName
    fso.DeleteFile get_tempName, 0
End Sub
[/vba]

вот эту часть [vba]
Код
   NewChart.Select
    ActiveSheet.Shapes(1).Select
    Worksheet("Ëèñò3").ChartObjects(1).Chart.Export Filename:=get_tempName, FilterName:="jpg"
[/vba]никак нормально не оформить, то рабоатет то нет. Это и так и так пробовал, и фокус снимал и .... но вдруг получится. Код то крохотный.

Автор - bmv98rus
Дата добавления - 08.01.2017 в 22:32
Мир MS Excel » Вопросы и решения » Вопросы по VBA » Формирование подложки - из картинки на листе. (Формулы/Formulas)
  • Страница 1 из 1
  • 1
Поиск:

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