, большое спасибо за решение и за такую оперативность!
Ничто не устоит на пути автоматизации )))
Ничто не устоит на пути автоматизации )))
|
15.02.2018 19:39:50
Xapa6apga, приложил. Первый лист - то, как данные лежат в оракловой базе. Второй - сама сводная. Третий и четвертый - результаты клика пользователя на разных ячейках. Выборки получилось, что пересекаются. Соответственно, когда пользователь добавит что-то в первой выборке, хочется это представить и на второй выборке, т.к. оно должно туда подходить по фильтрам.
|
|
|
|
|
|
14.02.2018 13:06:10
PooHkrd,так меня функционал двойного клика полностью устраивает. Когда на сводной таблице стоишь - там как раз нет проблем. Можно обновить сводную, она подключена к базе, сразу обновится. Проблема когда пользователь работает на листе с вытащенными данными. Там штатной кнопки "обновить" нет. Приходится выкручиваться макросом.
Я как-то экспериментировал с не сводной, а умной таблицей, подключенной напрямую к базе, но мне не очень понравилось. Сейчас часть логики обновления строк прописана в эксель, не хотелось от этого отказываться. Там дополнительные проверки, чтобы в базу не тыкать откровенно кривые данные. |
|
|
|
|
|
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 плох? Есть какая-то замена, более правильная? |
|
|
|
|