Описание ситуации. Есть куб olap, собирающий ежедневные обороты по партнерам. Партнеров много, есть необходимость отсматривать глазами графики по топ 200. На основе этих данных строю 4 графика (по 1 долго просматривать), стоящих в 2 ряда по 2. Тут все стандартно, динамические диапазоны+смещ+полоса прокрутки для красоты.
Есть 2 проблемы: 1. Т.к. среди партнеров много внутренних и иных, которые не нужно смотреть, приходится вначале глазами отсматриривать список и потом через фильтр+"Добавить выделенный фрагмент в фильтр" по одному добавляю только нужные, что отнимает много времени. Приходится раз в месяц-два руками пробегаться по всему списку и удалять ненужное\добавлять новое. Можно макросом вставить список? Пробовал записать, получилось:
Имена магазинов имеют вид "[12345] Нечто". Удобно было бы в диалоговое тесктовое окошко копировать список цифровых айдишников для фильтрации. Пробовал макрос погуглить, к примеу тут, но как-то не вышло для моего случая.
2. Графики есть необходимость раздать по отделу, но у всех разные мониторы, а иногда ноутбуки в 13-14 дюймов и хочется, чтобы размеры графиков (ширина\высота или масштаб? не знаю что в данном случае правильней) подстраивать под экран. Такое возможно? Попутно сделаю макрос скрывающий все меню при открытии файла, чтобы места свободного побольше было.
Привести пример к сожалению не могу, т.к. там фин. показатели.
по второму пункту "получить разрешение монитора" (не моё):
Код
Declare Function GetSystemMetrics Lib "user32" (ByVal nIndex As Long) As Long 'Объявление API-функции
' Константы, которые передаются в функцию для определения горизонтального и вертикального размеров изображения:
Const SM_CXSCREEN = 0
Const SM_CYSCREEN = 1
Sub GetMonitorResolution()
Dim lngHorzRes As Long
Dim lngVertRes As Long
lngHorzRes = GetSystemMetrics(SM_CXSCREEN)
lngVertRes = GetSystemMetrics(SM_CYSCREEN)
MsgBox "Текущее разрешение: " & lngHorzRes & " x " & lngVertRes
End Sub
Затем у графиков .ScaleWidth и .ScaleHeight подгонять под полученное разрешение