Ничто не устоит на пути автоматизации )))
Перехват ПОЛУЧИТЬ.ДАННЫЕ.СВОДНОЙ.ТАБЛИЦЫ, пользователь сделал двойной клик на данных сводной таблицы, надо понять, какие данные он взял
Перехват ПОЛУЧИТЬ.ДАННЫЕ.СВОДНОЙ.ТАБЛИЦЫ, пользователь сделал двойной клик на данных сводной таблицы, надо понять, какие данные он взял
Разделение экрана на 2 независимые части
Перехват ПОЛУЧИТЬ.ДАННЫЕ.СВОДНОЙ.ТАБЛИЦЫ, пользователь сделал двойной клик на данных сводной таблицы, надо понять, какие данные он взял
Перехват ПОЛУЧИТЬ.ДАННЫЕ.СВОДНОЙ.ТАБЛИЦЫ, пользователь сделал двойной клик на данных сводной таблицы, надо понять, какие данные он взял
15.02.2018 19:39:50
Xapa6apga, приложил. Первый лист - то, как данные лежат в оракловой базе. Второй - сама сводная. Третий и четвертый - результаты клика пользователя на разных ячейках. Выборки получилось, что пересекаются. Соответственно, когда пользователь добавит что-то в первой выборке, хочется это представить и на второй выборке, т.к. оно должно туда подходить по фильтрам.
|
|
|
Перехват ПОЛУЧИТЬ.ДАННЫЕ.СВОДНОЙ.ТАБЛИЦЫ, пользователь сделал двойной клик на данных сводной таблицы, надо понять, какие данные он взял
15.02.2018 18:59:36
Сейчас в экселе на листе с выбранными данными 95% операций - это UPDATE. Эксель красит измененные значения, запускается макрос, по ключу находится запись в базе, запускается UPDATE для измененных полей. Новые строчки нужны, чтобы пользователь с ними мог работать. Система многопользовательская. Новые строчки могут быть внесены другими пользователями. А могут быть внесены и этим же пользователем, просто на другом листе он откроет эту же выборку и добавит строку. |
|
|
Перехват ПОЛУЧИТЬ.ДАННЫЕ.СВОДНОЙ.ТАБЛИЦЫ, пользователь сделал двойной клик на данных сводной таблицы, надо понять, какие данные он взял
Перехват ПОЛУЧИТЬ.ДАННЫЕ.СВОДНОЙ.ТАБЛИЦЫ, пользователь сделал двойной клик на данных сводной таблицы, надо понять, какие данные он взял
14.02.2018 13:06:10
PooHkrd,так меня функционал двойного клика полностью устраивает. Когда на сводной таблице стоишь - там как раз нет проблем. Можно обновить сводную, она подключена к базе, сразу обновится. Проблема когда пользователь работает на листе с вытащенными данными. Там штатной кнопки "обновить" нет. Приходится выкручиваться макросом.
Я как-то экспериментировал с не сводной, а умной таблицей, подключенной напрямую к базе, но мне не очень понравилось. Сейчас часть логики обновления строк прописана в эксель, не хотелось от этого отказываться. Там дополнительные проверки, чтобы в базу не тыкать откровенно кривые данные. |
|
|
Перехват ПОЛУЧИТЬ.ДАННЫЕ.СВОДНОЙ.ТАБЛИЦЫ, пользователь сделал двойной клик на данных сводной таблицы, надо понять, какие данные он взял
Поиск универсального способа проверки существования свойства у объекта.,
01.12.2017 13:13:22
Нет, проект не запаролен. Обычный модуль в файле, единственная особенность файла - "только чтение".
У меня 2010 эксель стоит. На виртуалке потестил с 2003 действительно кнопка DEBUG не пропадает. Хороший он был, этот 2003, но перейти обратно уже не вариант. UPD. Нашел 2013, там тоже кнопка есть. Только в 2010 такая лажа.
Изменено: |
|
|
Поиск универсального способа проверки существования свойства у объекта.,
01.12.2017 12:24:27
AAF,спасибо за подробный пример.
Дьявол как всегда оказался в деталях. Потестировал. On Error GoTo 0, оказалось не совсем к тому же возвращает состоянию - пропадает кнопка DEBUG, наглядно показывающая на каком месте программа дала сбой. Ради неё и не включался ON ERROR в основном коде. Не готов отказаться от такой фичи. В проекте постоянно что-то меняется. Необходимо оперативно править косяки. |
|
|
Поиск универсального способа проверки существования свойства у объекта.,
01.12.2017 12:17:07
Игорь, по вашей наводке попробовал typename(), но в случае с описанным примером - он что на ячейке сводной, что на обычной показывает один и тот же тип "range".
Была похожая проблема с необходимостью проверки существования второго столбца у комбобокса - там тоже typename(cboFactory) тип комбобокс выдаёт, что ничего не говорит и наличии в него свойства .column(1). Нет ли чего-то вроде Казанский, спасибо за ссылочки. Selection и Active - у нас, вроде, везде по прямому назначению и используются, для взаимодействия с пользователем и его выбором. А с ActiveSheet до этого не приходило в голову, что теоретически можно успеть переключить лист прямо во время выполнения макроса. А про обработку ошибок - пробовал, но отказался, т.к. в программе может быть много других ошибок - программа активно взаимодействует с пользовательским выбором, а это всегда источник возможных ошибок. |
|
|
Поиск универсального способа проверки существования свойства у объекта.,
01.12.2017 01:26:08
Игорь, спасибо, попробую проверку на тип объекта.
Ошибок то много может быть, не только в этом месте, а при resume next он дальше будет скрипт обрабатывать, а иногда это критично. Надо тогда будет все возможные проверять? Или это тоже как-то обходится? Казанский, а чем Selection плох? Есть какая-то замена, более правильная? |
|
|
Поиск универсального способа проверки существования свойства у объекта.,