Выбрать дату в календареВыбрать дату в календаре

Страницы: 1 2 След.
Отключение автообновления сводной таблицы при сбросе фильтра
 
Вопрос снят.
Помогло следующее:
Код
pt.ManualUpdate = False ' отключение обновления данных таблицы по фильтрам

...

pt.ManualUpdate = True ' включение обновления данных таблицы по фильтрам
Отключение автообновления сводной таблицы при сбросе фильтра
 
Добрый день, коллеги!

Есть сводная таблица на модели данных Power Pivot из двух связанных таблиц.

Макросом в зависимости от выбора пользователя на кнопках ToggleButton применяю фильтр к значению
Код
Set pt = ThisWorkbook.Worksheets("Сводная таблица").PivotTables("Паспорт депо")
Set shFilter = ThisWorkbook.Worksheets("Фильтры")

With pt.PivotFields("[спрДепо].[ф7].[ф7]")
    .ClearAllFilters
         
    pok = "[Measures].[Безотказная работа (диап.)]"
    Select Case True
        Case shFilter.tb_BR1:
            .PivotFilters.Add2 _
                Type:=xlValueEquals, _
                DataField:=pt.CubeFields(pok), _
                Value1:=1
        Case shFilter.tb_BR2:
            .PivotFilters.Add2 _
                Type:=xlValueEquals, _
                DataField:=pt.CubeFields(pok), _
                Value1:=2
    End Select
End With

На команде ClearAllFilters эксель подвисает с надписью в баре "Идет чтение данных (для отмены нажмите клавишу ESC)..."

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

Банальный Application.ScreenUpdating = False не отключает это чтение...

Подскажите умные формчане, может кто то знает как можно отключить обновление на время выполнения команд снятия и установки фильтров, а в конце обновить сразу итог?
PQ Формула выдает null
 
Добрый день, коллеги!

Помогите разобраться...
простая формула в PQ в пользовательстом столбце
Код
= Date.ToText([#"АВР|Дата"],"yyyy-MM-dd")
& "_"
& [#"Счет фактура|Номера"]

Если в последнем столбце оказывается значение null, то вся формула выдает null. Как это побороть??? необходимо выводить просто "2020-02-13_" если второе поле пустое.
Если стиль сделать с заливкой, то строка при автоприменении становится черной
 
Добрый день

Столкнулся с такой проблемой... делаю несколько уровней группировки (макросом). На листе включена опция "Автоприменения стилей" для структуры.
При этом если в таблице стилей указана заливка, хотя бы для одного из уровней, то при обновлении листа:
1 (макросом) - все три уровня станут черной заливкой
2 (через кнопку Применить стили) - только того уровня где есть заливка в стилях
При этом если я просто выделив строку и нажму стиль на панели стилей то стиль применяется корректно.

Коллеги, помогите в чем проблема???? при этом когда я делал первый раз через 2 вариант - все было ОК... но потом в какой то момент после обновления 1 вариантом стало так...
Скрины и файл прилагаю.
Ошибка 1004 метода SaveAs при работе на сетевом ресурсе
 
Пробовал убирать подавление... проблема записи не уходит, сообщений (даже о перезаписи - как локально) не выходит тоже.
Проблем с доступом к сетевой папке у пользователя нет... чтение и запись проходит на ура во всех иных случая... только вот это исключение вышло...

Как доказательство строка выше отрабатывает нормально (хотя сохраняется в тот же самый путь):
ThisWorkbook.SaveAs ThisWorkbook.Path & "\arhive_RemontKP_" & Format(Now, "YYYY-MM-DD-HHMMSS") & ".xlsm"

явное указание формата тоже не помогло.
Ошибка 1004 метода SaveAs при работе на сетевом ресурсе
 
Через код VBA организована подмена файла новым с переносом исходных данных.
И все хорошо когда файл лежит локально... и проходит на ура! Только скрываю запрос на замену...

Вот кусок кода...
Код
old_FileName = ThisWorkbook.FullName
' сохраним в архив текущую книгу
ThisWorkbook.SaveAs ThisWorkbook.Path & "\arhive_RemontKP_" & Format(Now, "YYYY-MM-DD-HHMMSS") & ".xlsm"
            
' заменить старый файл новой версией
Application.DisplayAlerts = False
iBook.SaveAs old_FileName
Application.DisplayAlerts = True
Но как только файл перемещается на сетевую папку как метод iBook.SaveAs old_FileName пишет ошибку "method saveas of object workbook failed"
Как я понял в данной ситуации не выходит запрос на перезапись файла совсем... он просто не освобождается пересохранением...

Как обойти ситуацию??? в чем может быть проблема???
Динамическая трехмерная ссылка, Не работает динамическая трехмерная ссылка
 
Цитата
Сергей написал:
а так вообще любой вопрос на который дали ответ а потом опять мутный вопрос это издевательство
Сергей, прошу прощения если не очень развернуто написал.
Предложенный вами вариант был абсолютно правильным и решал проблему, но имел очень много костылей в реализации... - чем больше лишних имен и столбцов, тем проще пользователю, что либо сломать.

Хотя и формула массива для пользователя тоже не панацея, но если сломает восстановить будет куда проще... тупо скопировав из чистой книги.
Динамическая трехмерная ссылка, Не работает динамическая трехмерная ссылка
 
Цитата
БМВ написал:
Подумал, надо бы ввести проверку на ошибку, на случай если листа не окажется. Теперь массивная формула=SUM(IFERROR(N(INDIRECT(ADDRESS(ROW();COLUMN();4;;YEAR($C$2)&"-"&TEXT(ROW(INDEX(F:F;MONTH($C$2)):INDEX(F:F;MONTH($D$2)));"00")))))или .=SUM(IFERROR(N(INDIRECT(ADDRESS(ROW();COLUMN();4;;TEXT(EDATE($C$2;ROW(INDEX(G:G;1):INDEX(G:G;DATEDIF($C$2;$D$2;"M")+1))-1);"ГГГГ-ММ")))))
Да именно так!!!!
Вы гений :)
Динамическая трехмерная ссылка, Не работает динамическая трехмерная ссылка
 
Сергей,А без дополнительных столбцов никак?
Динамическая трехмерная ссылка, Не работает динамическая трехмерная ссылка
 
Добрый день, форумчане!

Создал Именной диапазон (имя - НарИтог) с формулой -
="'"&ТЕКСТ(нарастающим!$C$2;"ГГГГ-ММ")&"':'"&ТЕКСТ(нарастающим!$D$2;"ГГГГ-ММ")&"'!"&АДРЕС(СТРОКА();СТОЛБЕЦ();4)

Результатом получается текстовая строка -   '2018-01:2018-02'!G2
И все вроде в ней корректно... но Эксель отказывается считать сумму по такой ссылке...
если просто =СУММ(НарИтог) то вычисляет 0,00 хотя сумма должна быть несколько миллионов
если =СУММ(ДВССЫЛ(НарИтог)) то просто выводит ошибку - #ССЫЛКА!


Пример во вложении...

Цель предоставить пользователю сумму с указанного диапазона листов, имена которых определяются из дат введенных в ячейки листа Нарастающим.
Желательно без макросов...
Изменено: Леонид Коршак - 11.09.2018 19:34:57
У константы типа Double появилась запятая.
 
Цитата
sokol92 написал:
А #17 пробовали?
Да... никакого эффекта... так же как и от
Цитата
RAN написал:
А у вас, часом, не сидит птичка "Автоматическая вставка десятичной запятой"?
У константы типа Double появилась запятая.
 
Цитата
Hugo написал:
- тогда тоже явной связи не было, хотя через буфер обмена влияло.Это я к тому что может быть влияет какая-то совершенно другая программа, может какой менеджер памяти или ещё что... Ну как вариант.
Что еще можно проверить или протестить?
У константы типа Double появилась запятая.
 
Цитата
Юрий М написал:
Цитата RAN  написал:А у вас, часом, не сидит птичка "Автоматическая вставка десятичной запятой"?Цитата Леонид Коршак  написал:А где это посмотреть???Файл - Параметры - Дополнительно.
Галочки не стоит :(
У константы типа Double появилась запятая.
 
Не помню... а как это связано?

Цитата
RAN написал: А у вас, часом, не сидит птичка "Автоматическая вставка десятичной запятой"?
А где это посмотреть???
У константы типа Double появилась запятая.
 
Данная ошибка после проявляется во многих местах кода...
Вот очень типичный пример...

Дело явно в настройках региональных форматов для конкретного файла... Где такое есть в экселе?
У константы типа Double появилась запятая.
 
Речь о предложении sokol92в 7м посту...
Цитата
Попробуйте на проблемном компьютере на "чистом" Excel создать новую книгу. Вставьте в нее стандартный модуль и добавьте следующий код:... Во что превращается числовая константа?И еще проверьте, что на проблемном компьютере нет никаких других проектов, кроме новой книги, и есть только один пункт меню в Add-Ins
У константы типа Double появилась запятая.
 
Цитата
sokol92 написал:уточняю...
Да все абсолютно верно!

Цитата
sokol92 написал: Эта ситуация устойчиво повторяется на проблемном компьютере, в том числе, после перезагрузки.
А тут не совсем так... а наоборот...
Если я удаляю с диска проблемный файл.... и сохраняю на него новый файл без проблем, то даже после перезагрузки все нормально и никакой запятой нету! Пока так сказать я рядом )))))

Как только проходит какое то время и пользователь работает за компом - случается какое то чудо... и нормальный файл снова превращается в "кривой".
У константы типа Double появилась запятая.
 
Цитата
sokol92 написал:
Похоже, в "кривом" файле есть какая-то тайна.
Очевидно проблема не в конкретном файле, так как я пробовал убить его на компе заменив нормальной версией.
И перезагружал комп и несколько раз переоткрывал Эксель, чтобы проверить, что запятая не появилась...

И все было норм... но ровно спустя сутки меня зовет пользователь с той же проблемой :(
То есть конкретный комп в какой то момент (как бы узнать что это за момент) делает файл кривым...  
У константы типа Double появилась запятая.
 
На чисто открытом экселе (запущенном через меню пуск) картина следующая... просто к числу автоматом добавилась решетка (скрин во вложении)

sokol92, а вот если эксель открываю не через пуск а через старый кривой файл, потом его закрываю (но не завершаю сам эксель) и создаю новый документ, то кроме решетки еще и запятая прилипает...
У константы типа Double появилась запятая.
 
А вот если вместо формулы сразу вписать 86400000 то ошибки переполнения не возникло...
Сейчас попробую потестить...
У константы типа Double появилась запятая.
 
Кнопка цитирования не для ответа [МОДЕРАТОР]

Сделал... Все как и говорилось скомпилировалось на ура...
Во вложении файл...

Причем заметил... если я открываю на кривом компе чистый файл (где у меня еще нет запятых), то он работает тоже нормально и они не появляются... А вот если паралельно открываю уже испорченый файл то тут же запятые появляются и в нем... несмотря на то что только что их на том же самом компе в этом файле не было...
Как будто  в месте с загрузкой этого файла меняется какой то стандарт ввода чисел...

а решетка после числа что значит? если без нее то вроде не ругается и там и там... сейчас попробую...

Зато не компилируется с ошибкой Overflow на второй строке где число получаем из умножения и деления
Изменено: Леонид Коршак - 07.08.2018 18:49:07
У константы типа Double появилась запятая.
 
Добрый день, формучане!

Прошу простить мне мой колхозный язык... в первые вижу такой глюк.

На моем компе все нормально... есть следующий код в начале модуля...
Код
Private Const rDayZeroBias As Double = 109205#   ' Abs(CDbl(#01-01-1601#))
Private Const rMillisecondPerDay As Double = 10000000# * 60# * 60# * 24# / 10000#

А вот на одном из рабочих мест пользователя после цифр в константе типа Double появляются после числа запятые. Причем код на том рабочем месте работает нормально.... а вот когда пользователь поработав сохраняет и отправляет другому, то на нормальной машине VBA ругается на лишние запятые в коде (скриншот приложен). Если их убрать, то все норм... но вот когда пробовал их убрать на косячном рабочем месте они тупо при переходе на строку ниже VBA дописывает их сам.

Грешил на региональные настройки системы, но все аналогично как и на других компах.

Причем если я открою свой файл на этом компе, то запятые сами собой не появляются... то есть может быть открыто одновременно два одинковых по коду файла, но в одном будет глюк с запятой, а в другом нет...

Попробовал удалить глючный файл и оставить только нормальный... но через буквально день - запятые опять на месте... не пойму от чего это зависит :((((

Посоветуйте что можно еще порыть... в интернете не нашел даже похожих вопросов... может я как то не так формулирую и проблема известна.???. Помогите, знатоки и гении Excel'я... а то пользователи уже начинают на меня факельной шествие :(

Не срабатывает деструктор класса, Не срабатывает деструктор класса
 
Андрей VG, спасибо огромное за отличный пример!!!

Родитель бы мне нужен только для того чтобы взять переменную у него, так как в стандартную процедуру инициализации нельзя переменную засунуть...
А ваш пример натолкнул на мысль - уйти от автоматической инициализации, и все встало на свои места!!!
Даже решило пару проблем!!!

Спасибо еще раз!
Не срабатывает деструктор класса, Не срабатывает деструктор класса
 
Андрей VG, в вашем примере даже если возникает процедура terminate у дочерних объектов даже если их явно не уничтожать...

Каким тогда образом можно обратиться из дочернего элемента к родителю???
У меня проблема именно от этой связи появилась...
Не срабатывает деструктор класса, Не срабатывает деструктор класса
 
Добрый день!
Подскажи пожалуйста столкнулся с проблемой, что не срабатывает деструктор класса при команде set class_name = nothing

Опытным путем было выявлено, что он не срабатывает если у класса есть дочерние элементы являющиеся также пользовательскими классами...

В чем проблема и как ее обойти???
Файл с примером во вложении - авава.xlsm
VBA Количество дней между двумя датами в Excel без учета празников, VBA Количество дней между двумя датами в Excel без учета празников
 
Цитата
Sanja написал:
А Вы пробовали? См сообщение #2. Результат 29 дней. Или что-то недоговариваете?
Великодушно прошу прощения...
Просто пока сегодня рылся в формулах уже пробовал подобную функцию но вариант с "0000000" она не принимала... Видать это как раз =РАБДЕНЬ.МЕЖД()

и тогда я и на VBA смогу ее вызвать через worksheetfunction.NetworkDays_Intl
VBA Количество дней между двумя датами в Excel без учета празников, VBA Количество дней между двумя датами в Excel без учета празников
 
Ни один вариант не подходит.

Чисторабдни считает за минусом выходных, а тут календарные, а не рабочие нужно...



Так как есть два условия
1- это надо сделать в коде VBA (без участия листа)
2- мне нужна не просто разница между датами, а за минусом празничных дней...

формулой я нашел как это решить:
считаем количество праздничных дней входящих в период так - =СУММПРОИЗВ((ПраздникиРФ>=42887)*(ПраздникиРФ<=42916))
ПраздникиРФ - это именнованный массив с празничными датами
затем просто из одной даты отнимаем другую плюс 1 (так как конец не берет эксель) и отнимаем количество праздничных.

Но как это количество праздничных посчитать на VBA без листа?
Изменено: Леонид Коршак - 16.06.2017 19:30:49
VBA Количество дней между двумя датами в Excel без учета празников, VBA Количество дней между двумя датами в Excel без учета празников
 
Добрый вечер всем!

Наверное глупый вопрос, но как посчитать количество календарных дней между двумя датами в коде VBA без учета празничных?

Пример между датами 01.06.2017 и 30.06.2017 - должно быть не 30, а 29 дней (так как 12.06.2017 - праздник)
событие beforesave при отправке по почте
 
Цитата
The_Prist написал:
Поэтому выход один - сохранять перед отправкой. Или отправлять кодом, где перед вставкой вложения делать с копией файла все, что угодно.
Пишу макрос не для себя а для других пользователей... поэтому объяснять, что файл нужно сохранить а потом открыв почту вложить документ в письмо - сложно так как из экселя можно просто нажать одну кнопку...
Макрос сделан так что на событие beforesave скрываются два листа, а на событие aftersave и wb_open они обратно открываются если имя компьютера соответствует определенным условиям, дабы один и тот же файл без лишних манипуляций пользователя на разных компах содержал разное количество видимых листов...

Как иначе можно это сделать? прятать листы при открытии - тоже не вариант, ведь компов на которых их надо прятать сотни... и настройки безопасности на них разные и макрос может тупо не отработать
событие beforesave при отправке по почте
 
Цитата
The_Prist написал:
Сохранение ДРУГОГО файла происходит
Ну так я именно об этом... сохранение происходит и макросы в этом ДРУГОМ файле также есть...
Так почему не срабатывает событие, ведь на сохранить как оно запускается.

А самый главный вопрос - как это обойти и все равно выполнить макрос!?
Страницы: 1 2 След.
Наверх