[excel] как макросами создать кнопку на чарте?

pitrik2

чарт естессно встроенный в лист, иначе точно не сработает
если руками создать button на чарте, то всё ок
если макросом то кнопка создается на листе а не на чарте
в результе 2 неприятных эффекта
1) если чарт сдвинуть в сторону то кнопка не двигается (остается в той же ячейке где была)
2) если на чарт кликнуть то кнопка прячется под чарт
запись макроса не помогает
макрос записывается с какими-то кривыми координатами и потом не работает

Tatiana09

Код макроса запости. Поправим так, чтобы работал.

pitrik2

Код макроса запости. Поправим так, чтобы работал.
странный вопрос
весь код всего одна строчка

ActiveSheet.Buttons.Add(500, 10, 80, 16)

или тебе тот код который эксель рекордит?

Sub Macro3
ActiveSheet.Buttons.Add(211980.6, 434879.4, 1306572.6, 169411.2).Select
Selection.OnAction = "UpdatePivot"
ActiveChart.Shapes("Button 2").Select
Selection.Characters.Text = "Select A New Department"
Selection.AutoScaleFont = False
With Selection.Characters(Start:=1, Length:=23).Font
.Name = "Arial"
.FontStyle = "Regular"
.Size = 10
.ColorIndex = xlAutomatic
End With
End Sub

вот эти ядреные цифры и не работают

Tatiana09

Нормальный вопрос. Я, например, кнопки создаю так:
ActiveSheet.Shapes.AddOLEObject Left:=500, Top:=10, Width:=80, Height:=16, ClassType:="Forms.CommandButton.1"

или

ActiveSheet.OLEObjects.Add ClassType:="Forms.CommandButton.1", Left:=500, Top:=10, Width:=80, Height:=16

Вот только добавить эту кнопку на график у меня не получается. Логичные конструкции
ActiveSheet.ChartObjects(1).Chart.OLEObjects.Add ClassType:="Forms.CommandButton.1"

или

ActiveSheet.ChartObjects(1).Chart.Shapes.AddOLEObject ClassType:="Forms.CommandButton.1"

почему-то не работают :(

SergZ495

или тебе тот код который эксель рекордит?
Я конечно точно не гарантирую, не занимался такой хней. Но мне кажется в макросе недостает в начале выбрать чарт.

pitrik2

Но мне кажется в макросе недостает в начале выбрать чарт.
ActiveChart установлен (ну тойсть прям перед добавлением кнопки вывожу на экран ActiveChart.Name и он правильный)
это не помогает :(

Andbar

А что если создать кнопку как получится, а потом сгруппировать её с чартом?
Оставить комментарий
Имя или ник:
Комментарий: