Страницы: 1
RSS
Как связать динамическую таблицу Excel с PowerPoint, в таблице Excel меняется высота и кол-во строк
 
Добрый день! Столкнулся с проблемой и не могу понять как ее решить и вообще, возможно ли это.
Суть в чем: Есть файл эксель со множеством листов в котором ведется обработка данных, далее эти данные необходимо добавить в презентацию. Процесс добавления представляет собой  Ctrl+C и Ctrl+V с учетом корректировки размера таблиц. Для ускорения этой рутинной задачи, хотелось создать связи чтобы при окончании работы в эксель данные обновились и в ПП.
В прикрепленном примере есть образец таблицы и как примерно это в ПП. Но проблема, которую не представляю, как решить, это то, что таблицы (в данном примере только одна таблица) динамичны, то есть в ней кол-во строк и их высота постоянно разное, в зависимости от выгружаемых данных. И задача в том, что бы при добавлении строк или увеличении высоты таблица автоматически расширялась в ПП. При этом соблюдалось условие по наличию шапки и строки подписи и если таблица не влазит на имеющиеся слайды, то чтобы добавился еще один слайд и данные вставились на него.
Решаема ли такая задача?  
 
Можно, например, превратить диапазон в рисунок, экспортировать его и связать уже как вставленный рисунок в PP (подвязать это всё на макрос который будет экспортировать).
 
То есть в самом екселе рядом с таблицей создавать ее копию в виде рисунка по частям, а потом  эти части с помощью макроса экспортировать в ПП? Вы это имели ввиду? Если так, то опять таки вопрос размера. Надо будет выгадывать, как именно разделить таблицу, то есть эта проблема остается
 
нет, имел ввиду:
Код
Sub Range_to_Picture()
    Dim sName As String, wsTmpSh As Worksheet

    Application.ScreenUpdating = False
    Application.DisplayAlerts = False
    With Sheets("Sheet1").Range("ИменованныйДиапазон1")
        .CopyPicture
        Set wsTmpSh = ThisWorkbook.Sheets.Add
        sName = ActiveWorkbook.FullName & "_" & ActiveSheet.Name & "_Range"
        With wsTmpSh.ChartObjects.Add(0, 0, .Width, .Height).Chart
            .ChartArea.Border.LineStyle = 0
            .Parent.Select
            .Paste
            .Export Filename:=sName & ".png", FilterName:="png"
            .Parent.Delete
        End With
    End With
    wsTmpSh.Delete
    Application.ScreenUpdating = True
    Application.DisplayAlerts = True
End Sub
Взято с небольшой модификацией: http://www.excel-vba.ru/chto-umeet-excel/kak-soxranit-kartinki-iz-lista-excel-v-kartinki-jpg/

Затем вставить в PP именно сохранённый файл с сохранением ссылки. Вставлять из PP -- Вкладка "Вставить" - "Рисунок", и выбрать "Вставить и связать".
 
Постараюсь сегодня попробовать, спасибо, что откликнулись
 
Zoynels, вы, наверно не совсем поняли суть проблемы. То что вы предлагаете подходит, когда кол-во и размер строк всегда одинаково. Это даже можно сделать и без макроса. Проблема в том, что количество и высота строк всегда разное. Если сегодня в таблице 15 строк (к примеру) я их вставлю в PP и все хорошо, но завтра строчек будет 12 и каждая еще будет в два раза выше чем строчки до этого, и чтобы полностью представить эти данные в PP надо больше слайдов чем надо было для вставки 15 строк, которые были меньше по высоте. Я не понял, каким образом предложенный вами способ может решить задачу. Возможно я не так понял вас.
 
Доброе время суток.
Цитата
mos_art написал:
создать связи чтобы при окончании работы в эксель данные обновились и в ПП.
Противоречит
Цитата
mos_art написал:
то чтобы добавился еще один слайд и данные вставились на него.
Связь не может управлять числом слайдов, увы.
Так что решение только макросом, котоый по команде перестраивает исходную таблицу с листа Excel на слайды (чтобы определить, что слайд содержит таблицу можно воспользоваться коллекциями Comments, Tags объекта Slide, записывая туда название "связанной" таблицы, признак начального слайда).
То есть по команде, удаляем все непервые слайды, "связанные" с таблицей. На начальном слайде вставляем допустимое количество строк. Скрываем в исходной таблице, вставленные строки. Есть ли ещё. Если есть добавляем новый слайд, пишем информацию о связи в него, добавляем нужное количество строк. И так далее...
Изменено: Андрей VG - 27.03.2017 14:07:30
 
К сожалению, я очень далек от самостоятельного написания макроса. Поэтому и обратился сюда за помощью, так как сам не представляю как выполнить такую задачу.  
 
Цитата
mos_art написал:
я очень далек от самостоятельного написания макроса
Понятно. Тогда вам стоит дождаться того, у кого возникнет интерес это реализовать.
 
Ожидаю) Спасибо, что поделились своими мыслями
Страницы: 1
Наверх