Страницы: 1
RSS
Макрос выбора всего диапазона данных для выбранной диаграммы.(Power Point)
 
Имеем обычную столбчатую диаграмму в Power Point построенную по таблице внутреннего Excel. Таблица всегда жестко располагается в трех столбцах  B, C, D. и начинается всегда с третьей строки (это шапка таблицы). В столбцах  C и D числовые значения.  Количество строк может быть разным, пропусков и пустых ячеек в таблице нет. Нужен макрос который на этой (выделенной мной) диаграмме отрабатывал бы нажатия: Конструктор диаграмм - Выбрать данные - и далее автоматически выбирал бы диапазон данных для диаграммы вместе с шапкой таблицы основываясь на количестве ее строк. Заранее спасибо за ответы, бьюсь не могу написать макрос. Очень нужен по работе.
Изменено: Sanja - 28.06.2025 08:42:19
 
Предложите (тут, в сообщении) название для темы соответствующее Правилам форума (название должно отражать СУТЬ задачи) и Файл-пример (Excel) приложите. Как есть-Как надо
Согласие есть продукт при полном непротивлении сторон
 
Название темы: Нужен макрос выбора всего диапазона данных для выбранной диаграммы.
(не пойму как вставить картинку)
Изменено: Пользователь Google - 28.06.2025 07:50:10
 
Цитата
Пользователь Google написал: не пойму как вставить картинку
Цитата
Sanja написал: и Файл-пример (Excel) приложите
Чувствуете разницу?
Согласие есть продукт при полном непротивлении сторон
 
Ну а если по теме, без файла, то
Как определить последнюю ячейку на листе через VBA?
Или используйте в качестве источника данных для Сводной  - Умную таблицу и просто обновляйте Сводную при изменении количества с трок в таблице
Согласие есть продукт при полном непротивлении сторон
 
Название темы: Нужен макрос выбора всего диапазона данных для выбранной диаграммы.
 
Цитата
Нужен макрос который на этой (выделенной мной) диаграмме
В файле диаграмм нет. Что выделять?
Согласие есть продукт при полном непротивлении сторон
 
Нужен макрос который на выделенной мной диаграмме Power Point отрабатывал бы нажатия: Конструктор диаграмм - Выбрать данные - и далее автоматически выбирал бы диапазон данных для диаграммы вместе с шапкой таблицы основываясь на количестве ее строк. Эта таблица Excel находится внутри диаграммы.
 
Сайт не дает загрузить диаграмму Power Point
 
Вот этот макрос определит диапазон таблицы с данными в Excel
Код
Sub TblRange()
Dim tRng As Range
With Worksheets("Лист1")
  Set tRng = .Range("B3:D" & .Cells(.Rows.Count, "B").End(xlUp).Row)
End With
MsgBox "Адрес диапазона Таблицы - " & tRng.Address(0, 0)
End Sub

дальше, наверное, нужно задавать вопросы на форуме по PowerPoint
Справочник по VBA для PowerPoint
Согласие есть продукт при полном непротивлении сторон
 
Всем кому вдруг понадобится такой сценарий. Все таки осилил.
Код
Sub UpdateEmbeddedChartDataRangeAndRemoveEmptyRows()
    If Not ActiveWindow.Selection.Type = ppSelectionShapes Then
        MsgBox "Пожалуйста, выделите диаграмму на слайде."
        Exit Sub
    End If

    Dim shp As Shape
    Set shp = ActiveWindow.Selection.ShapeRange(1)

    If Not shp.HasChart Then
        MsgBox "Выделенный объект не является диаграммой."
        Exit Sub
    End If

    Dim cht As Chart
    Set cht = shp.Chart

    Dim wb As Object
    Set wb = cht.ChartData.Workbook
    Dim ws As Object
    Set ws = wb.Worksheets(1)

    Dim i As Long, lastRow As Long
    lastRow = ws.Cells(ws.Rows.Count, 2).End(-4162).Row

    ' Удаляем полностью пустые строки в диапазоне B3:DlastRow (с конца вверх)
    For i = lastRow To 3 Step -1
        If wb.Application.WorksheetFunction.CountA(ws.Range("B" & i & ":D" & i)) = 0 Then
            ws.Rows(i).Delete
        End If
    Next i

    ' Определяем новый lastRow
    lastRow = ws.Cells(ws.Rows.Count, 2).End(-4162).Row

    If lastRow < 3 Then
        MsgBox "Недостаточно данных."
        wb.Close False
        Exit Sub
    End If

    Dim dataRange As String
    dataRange = "B3:D" & lastRow
    Dim fullRangeAddress As String
    fullRangeAddress = "'" & ws.Name & "'!" & ws.Range(dataRange).Address(ReferenceStyle:=1)

    cht.SetSourceData Source:=fullRangeAddress

    wb.Close False

    MsgBox "Диаграмма обновлена: " & fullRangeAddress
End Sub
Страницы: 1
Читают тему
Наверх