Поиск  Пользователи  Правила 
Закрыть
Логин:
Пароль:
Забыли свой пароль?
Регистрация
Войти
 
Страницы: 1
RSS
Отображение желаемых значений на точечной диаграмме excel версии 2007
 
Всем доброго дня! Итак суть проблемы: есть три колонки, 1)наименование инструмента, 2) Доходность инструмента, 3) Срок инструмента. При построении точечной диаграммы не могу присвоить имена (label) точкам, которые нужны мне (а именно наименование инструмента). Выбор имен здесь лишь между 2 или 3. Знаю способ присвоения имен вручную - но процесс долгий, и риск ошибиться большой. Знаю, что функция присвоения имен, которые нужны, есть в версии 2013, но на работе, к сожалению, только 2007 версия стоит.




Заранее спасибо!
 
Добрый день
Применительно к вашему примеру, можно задать подписи таким макросом
Код
Public Sub DrawLabel()
    Dim chartPoint As Point
    Dim pChart As Chart, i As Long
    Dim pSheet As Worksheet
    Set pSheet = ThisWorkbook.Worksheets(1)
    Set pChart = ThisWorkbook.Charts(1)
    
    For i = 1 To pChart.SeriesCollection(1).Points.Count
     Set chartPoint = pChart.SeriesCollection(1).Points(i)
     chartPoint.DataLabel.Text = pSheet.Cells(i + 1, 1).Value
    Next
End Sub 
 
Большое спасибо! Работает на отлично!  ;)  
Только я не учел одной детали: предполагается, что диаграмм будет несколько, и все эти диаграммы будут снабжаться данными из одного листа (листов кстати множество, но с другими данными, не имеющих отношения к наших диаграммам - если важно для задачи). Попытавшись запустить макрос (думая, что применение будет для нескольких диаграмм) - вылетает ошибка.
Прикрепил файл для примера. (А было бы лучше если макрос работал в отношении конкретных диаграмм, потому как есть на в файле и другие графики, которым применение не нужно)
Изменено: Punter - 11 апр 2014 12:09:02
 
 Меняйте номер рабочего листа данных коллекции Worksheets и номер листа диаграммы коллекции  Charts,  ну, и освойте немного VBA - информация есть в приёмах. Все же форум для помощи, а не "стол заказов".  Успехов.
 
привет, в 2007 можно делать так - выделить ряд - правая кнопка - показывать подписи данных; выделяете подпись данных у одной точки, удаляете весь текст; щелкнуть в любом месте экрана. затем, ctr+z - опять возвращается фокус к надписи (уже пустой) - тыкаем в строку формул =адрес ячейки и нажать энтер. Готово. Теперь подпись данных будет нацелена на нужную ячейку.
Операция только в первый раз муторная. Сам для облигашек так же мучался. После оферты ил при новом выпуске, нужно будет лишь добавить формулку к новой точке.
Изменено: egonomist - 11 апр 2014 22:34:08
 
Цитата
egonomist пишет:
Операция только в первый раз муторная.
как уже писалось, на самом деле муторная. Проблема в том, что иногда требуется отобразить десятки этих инструментов, и они начинают друг друга перекрывать, и перетаскивая их от друг друга можно легко ошибиться. А данные по они еще и обновляются...

уважаемый, angv спасибо за помощь, но боюсь времени на это у меня нет
 
Доброе время суток.
egonomist,
Цитата
удаляете весь текст
не обязательно, достаточно
Цитата
выделяете подпись данных у одной точки, тыкаем в строку формул =адрес ячейки и нажать энтер. Готово.
Можно это же и программно

Код
'chartPoint.DataLabel.Text = pSheet.Cells(i + 1, 1).Value
chartPoint.DataLabel.Formula = "=" & pSheet.Cells(i + 1, 1).Address(, , xlA1, True) 
Успехов.
Punter,
Цитата
но боюсь времени на это у меня нет
Тогда может проще сделать заказ?
Изменено: anvg - 13 апр 2014 05:58:54 (Устранил описку)
Страницы: 1
Читают тему (гостей: 1)
Наверх