Jump to content

Умная диаграмма в Excel. Возможно ли?


Recommended Posts

Упрощенная задача такова:

1) На листе Excel есть таблица, состоящая из двух столбцов "Название продукта" и "Количество", данные для которой берутся из БД MSSQL посредством функции Excel "Данные->Импорт внешних данных" (используется сложный SQL-запрос к определенной таблице БД)

2) На основе этой таблицы создана круговая диаграмма.

3) Продукты в БД добавляются постоянно => их становится все больше.

Вопрос:

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

Изменять диапазон для одной диаграммы не составляет никакого труда, однако подобных таблиц и диаграмм крайне много и хотелось бы, чтобы диапазон для диаграммы напрямую зависел бы от количества заполненных строк в таблице или каким-либо образом автоматически изменялся бы, в зависимости от количества возвращенных SQL-сервером строк.

P.S. Хотелось бы знать, возможно ли это средствами Excel, т.к. написание макроса - крайний вариант. Если по-другому нельзя, тогда уж придется писать макрос.

Link to comment
Share on other sites

Сергей Плоткин Если информация не секретная, то скинь и файл Excel и БД (хотя она наверное размера нихилого, но повыкидывай что не нужно.)

Link to comment
Share on other sites

Не совсем понял, зачем?.. Мне нужна подсказка, а за меня делать ничего не надо.

Сергей Плоткин

Ну если только подсказка, то попробуй с помощью VBA :)

А если серьёзно, то порядок работы программы (которая запускается в екселе) я бы сделал следующим:

1. Импорт данных из БД

2. Сравнение с уже имеющимися

3. Добавление (или полная замена) записей в таблицу

4. Создание диаграммы.

Сергей Плоткин, если какой-то конкретный пункт не ясен пиши.

Edited by lenich
Link to comment
Share on other sites

Сергей Плоткин

Дык об этом и речь, что кроме как на VBA - никак!

А чтоб быстрее написать код нужны как раз файлы экселя и БД. :) о чем Вас и просил matva

Link to comment
Share on other sites

Сергей Плоткин Ну так? Бум слать файлы или нет? :sm(100):

Никто за тебя твою работу делать не собирается! (своей хватает) А вот принцип действий подсказать - всегда пжалста! :sm(100):

Link to comment
Share on other sites

Всем большое спасибо - я уже разобрался... Уже понял, что без написания макроса - никуда. Воспользовался свойством листа UsedRange.

Сделал примерно так:

ActiveChart.SetSourceData Source:=Sheets("Лист1").UsedRange

lenich

1) Когда я писал тебе иронический ответ, твое сообщение было несколько другим. Функция редактирования своих постов создана не для того, чтобы менять их после того, как был получен ответ собеседника.

2) Мне посоветовали более простой способ, нежели способ в дополненном тобой посте, однако все равно спасибо.

matva

Я разве просил делать работу за меня? Зачем валить с больной головы на здоровую? Я напротив просил дать мне устный совет или рекоммендацию (принцип действий).

Вот, именно выслав свой XLS-файл и файл БД, - это было бы как раз больше похоже на просьбу "сделать все за меня".

Link to comment
Share on other sites

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now
 Share

  • Recently Browsing   0 members

    • No registered users viewing this page.
×
×
  • Create New...