Перейти к содержанию
СофтФорум - всё о компьютерах и не только

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


Рекомендуемые сообщения

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

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

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

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

Вопрос:

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

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

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

Ссылка на комментарий
Поделиться на другие сайты

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

Ссылка на комментарий
Поделиться на другие сайты

matva

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

Ссылка на комментарий
Поделиться на другие сайты

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

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

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

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

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

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

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

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

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

Изменено пользователем lenich
Ссылка на комментарий
Поделиться на другие сайты

lenich

попробуй с помощью VBA

Ответ в стиле:

- В какой программе смотреть видео, кроме Media Player?

- Попробуй Media Player

Ссылка на комментарий
Поделиться на другие сайты

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

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

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

Ссылка на комментарий
Поделиться на другие сайты

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

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

Ссылка на комментарий
Поделиться на другие сайты

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

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

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

lenich

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

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

matva

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

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

Ссылка на комментарий
Поделиться на другие сайты

Для публикации сообщений создайте учётную запись или авторизуйтесь

Вы должны быть пользователем, чтобы оставить комментарий

Создать учетную запись

Зарегистрируйте новую учётную запись в нашем сообществе. Это очень просто!

Регистрация нового пользователя

Войти

Уже есть аккаунт? Войти в систему.

Войти
  • Последние посетители   0 пользователей онлайн

    • Ни одного зарегистрированного пользователя не просматривает данную страницу
×
×
  • Создать...