VBA Фоновое открытие Книг в папке, кроме уже открытых, Макрос должен открывать все Книги в папке, кроме уже открытых
Пользователь
Сообщений: Регистрация: 17.09.2014
02.04.2026 15:54:30
МатросНаЗебре, возможно. Поскольку, я, к сожалению, вообще не понимаю текста вашего кода, я сильно начинающий, то и не могу судить о природе ошибки. Но она повторилась, на той же строчке и Вы правы файлы на которые есть связи могли быть открыты в это время другими сторудниками.
VBA Фоновое открытие Книг в папке, кроме уже открытых, Макрос должен открывать все Книги в папке, кроме уже открытых
VBA Фоновое открытие Книг в папке, кроме уже открытых, Макрос должен открывать все Книги в папке, кроме уже открытых
Пользователь
Сообщений: Регистрация: 17.09.2014
02.04.2026 15:23:15
МатросНаЗебре, вот это скорость написания кода Вы руками писали или всетаки ИИ помогал?
Второй вариант открыл кучу файлов и остановился на блоке, конкретно на второй строчке и на нее ругается
Код
Private Sub OpenLinkSources(wbInit As Workbook, doneBooks As Object)
doneBooks(wbInit.FullName) = wbInit.Name
Dim vLink As Variant, aLink As Variant, wbSource As Workbook
aLink = wbInit.LinkSources(xlExcelLinks)
If Not IsEmpty(aLink) Then
For Each vLink In aLink
If Not doneBooks.Exists(vLink) Then
Set wbSource = GetWb(vLink)
OpenLinkSources wbSource, doneBooks
End If
Next
End If
End Sub
VBA Фоновое открытие Книг в папке, кроме уже открытых, Макрос должен открывать все Книги в папке, кроме уже открытых
Пользователь
Сообщений: Регистрация: 17.09.2014
02.04.2026 14:36:55
Всем добрый день! Позвольте возродить ветку. Пытаюсь решить схожую задачу, но обновлять надо не файлы внутри папки, а выборочные файлы в определенной последовательности, которые при этом лежат в разных каталогах. Или обновить все файлы к которым есть связи (но я не придумал как выдернуть в VBA информацию о файлах к которым есть связи).
Дано: есть мастер файл у него есть связи к файлам-источникам, у файлов-источников есть перекрестные связи и связи на свои файлы источники. Не обсуждая зачем так, задача открыть все файлы-источники либо последовательно, либо одновременно, обновить их, обновить мастер-файл, сохранить и закрыть источники.
Реализовал следующее: 1. На отдельный лист мастер-файла вывел названия и пути хранения файлов-источников, поскольку они могут меняться.
2. Сделал макрос который последовательно открывает, обновляет, сохраняет и закрывает файлы-источники
Код
Sub TsetOpenFiles()
Dim i As Long
For i = 1 To 15 'Цикл с третьей по седьмую ячейку столбца В
Workbooks.Open Filename:=Cells(i, 3).Value
With ActiveWorkbook
Application.ScreenUpdating = False
Application.Calculation = xlCalculationAutomatic
Application.CalculateFull
ThisWorkbook.RefreshAll
ActiveWorkbook.Close SaveChanges:=True
End With
Next
End Sub
Столкнулся с проблемой, что файлы не обновляются автоматом, получаю сообщение "Не удалось обновить одну или несколько связей".
Хотелось бы автоматическое игнорирование ошибок и/или все-таки открывать не последовательно а все файлы сразу, чтобы они по кругу обновились. Буду рад предложениям по доработке макроса.
Изменено: - 02.04.2026 14:38:34
Power Query / Power BI: как подтянуть значения классификатора из одной таблицы в другую по нескольким критериям
Пользователь
Сообщений: Регистрация: 17.09.2014
07.12.2022 16:43:31
Цитата
написал: , А не могли бы поделиться результатом? Тем более как я понимаю условия для формирования "РазделПродаж" меняются (добавляются)
Или может я не совсем верно понял условие
Верно поняли. Проблема как раз в том для меня, что часть записей "РазделПродаж" определяются по сопоставлению 3 столбцов, часть по сопоставлению 2 столбцов, а все прочие по одному столбцу.
В чистом виде отправить не могу, напуган раскрытием конфиденциальной информации ))) Но я сделал для вас пример из готового.
Сразу оговорюсь - это был мой первый опыт, поэтому я ступил и не сделал обработку например на этапе загрузки данных из исходника в Power Query. Я сделал костыли: 1. В экселе 4 листа: - ОВП - исходная таблица - СправочникРазделов (2) - самые уникальные комбинации по типу Товар/Услуга, Номенклатуре и Клиенту - СправочникРазделов (3) - вторые по уникальности по типу Товар/Услуга и Номенклатуре (здесь те самые пересечения, одна номенклатура для клента из первого листа - это один Раздел продаж, а для всех прочих - другой раздел продаж) - СправочникРазделов - это самый верхний справочник для отнесения в Прочие продажи и Прочие Услуги.
2. Далее я перенес это все в модель данных Power Pivot и там игрался с формулами.
3. В модели Power Pivot на листе ОВП cмотрите добавленные столбцы РП1, РП2 и РазделПродаж: - РП1 - использовал LOOKUPVALUE для самых уникальных значений.
- РП 2 - использовал комбинацию IF + ISBLANK + LOOKUPVALUE. Условие простое, если в столбце РП1 пусто используй Лукап (и поиск по "СправочникРазделов (3)") , если не пусто, возьми из столбца РП1.
- РазделПродаж - как Вы наверняка догадались, аналогично РП2. Смотри, если РП2 непустой, бери из него, если пустой Лукап по последнему справочнику.
Power Query / Power BI: как подтянуть значения классификатора из одной таблицы в другую по нескольким критериям
Пользователь
Сообщений: Регистрация: 17.09.2014
07.12.2022 07:23:22
Цитата
написал: Используйте LOOKUPVALUE
И еще раз спасибо за совет!
Все получилось, собрал в три итерации
Power Query / Power BI: как подтянуть значения классификатора из одной таблицы в другую по нескольким критериям
Пользователь
Сообщений: Регистрация: 17.09.2014
06.12.2022 17:01:54
Цитата
написал: Справочник должен содержать четкие однозначные значения. У вас и товар и Услуга= Сидения. (прочие)- тоже на для справочника. Лист TDSheet(2) - это не отчет. PQ не вставляет данные в исходную таблицу, а формируют новую.
Спасибо Вам, за обратную связь. Я не пытаюсь сопоставить справочник с таблицей. Я пытаюсь придумать как сделать этот справочник "динамическим", собираемым по определенным критериям и отбрасывающим все лишнее в "прочее". Однократно я просто руками в экселе скопироую/вставлю. Видимо простых решений нет, для сложных у меня нет опыта, идея провалилась )) Пойду учить матчасть. Еще раз спасибо.
p.s. Для номенклатуры "Сиденья" у нас есть и Товар и Услуга, это не ошибка. как и все прочее указанное в примере.
Power Query / Power BI: как подтянуть значения классификатора из одной таблицы в другую по нескольким критериям
Пользователь
Сообщений: Регистрация: 17.09.2014
06.12.2022 16:29:18
Цитата
написал: Используйте LOOKUPVALUE
Спасибо большое за совет!
LOOKUPVALUE не сработал поскольку я пытаюсь не просто сопоставить три параметра к трем, Я пытаюсь сделать нечто подобное: Если критерий 1 + 2 + 3 выполняются = Результат 1 Если критерий 1 + 2 выполняются = Результат 2 Если критерий 1 + 2'' выполняются = Результат 3 Если только критерий 1 выполняется = Результат 4
Только условий в два раза больше. Бьюсь дальше.
Изменено: - 06.12.2022 16:30:26
Power Query / Power BI: как подтянуть значения классификатора из одной таблицы в другую по нескольким критериям
Пользователь
Сообщений: Регистрация: 17.09.2014
06.12.2022 11:15:57
Добрый день! Прошу помочь с направлением в решении следующей задачи:
1. Есть таблица выгруженная из 1С 'TDSheet' которая содержит данные о продажах в разрезе Видов номенклатур, Типа продаж (товар или услуга), Клиентов 2. Есть вспомогательная таблица подготовленная руками 'СправочникРазделов' - в котором создан отсутствующий в 1С, но необходимый для визуализации аналитики классификатор - РазделПродаж. Раздел продаж изменяется в зависимости от различных комбинаций трех параметров (вид номенклатуры, тип продаж, клиент). 3. Как перенести значение классификатора "РазделПродаж" в отчет по подажам?
Это мой первый практический опыт самостоятельной работы в PQ/PB. И, видимо, от недостатка знаний я третий час не могу толком сформулировать запрос для поиска примеров в интернете.
Не дайте, пожалуйста, умереть попытке приобщиться к новым инструментам ))
Как научить поискпоз искать по дате, представленной в виде формулы
Спасибо за ценные мысли и советы! Поскольку в искомой таблице даты в формате дат, а в таблице для подстановки даты в текстовом формате - помогло преобразование искомого параметра: =ПОИСКПОЗ(ДАТАЗНАЧ(ячейка с датой);где ищем;0)
p.s. в очередной раз восхищаюсь форумом и его завсегдатаями
Как научить поискпоз искать по дате, представленной в виде формулы
Пользователь
Сообщений: Регистрация: 17.09.2014
03.04.2018 17:43:22
a.i.mershik, пример приложить не могу к сожалению. Спасибо за попытку помочь.
Как научить поискпоз искать по дате, представленной в виде формулы
Пользователь
Сообщений: Регистрация: 17.09.2014
03.04.2018 17:42:23
Цитата
Дмитрий Щербаков написал: Какую ошибку? Если это НД - значит даты такой точно нет.
Да, ошибка НД. Искомая дата "сен.20" отображается в обеих таблицах одинаково, но
- В таблице 1 ячейка содержит собственно дату "01.09.2020"
Как научить поискпоз искать по дате, представленной в виде формулы
Пользователь
Сообщений: Регистрация: 17.09.2014
03.04.2018 17:31:28
Добрый день! Прошу помощи.
Исходные данные:
1) Таблица 1 содержит данные для таблицы 2 (перечень товаров, даты закупки, объем закупки - массив данных). 2) Данные вытягиваются комбинацией ИНДЕКС+ПОИСКПОЗ 3) В таблице 1 строка с датами содержит собственно сами даты в формате ДД.ММ.ГГГГ 4) В таблице 2 строка с датами содержит ссылку на другой лист (исправить нет возможности - не редактируемые поля финансовой модели) "=Параметры!A10"
Проблема:
Функция ПОИСКПОЗ не сопоставляет дату в таблице 1 и дату в таблице 2, выдает ошибку.
Вопрос: есть ль возможность подружить ПОИСКПОЗ и дату в формате ссылки?
Изменено: - 03.04.2018 17:32:14
Динамичеки изменяемые диапазоны суммирования, добавлять сумму данных с другого листа в зависимости от выбранного периода
Спасибо большое! И не меньшее восхищение ...ушел разбирать ваш пример по полочкам и прописывать имена диапазонам.
p.s. Вас не затруднит объяснить синтаксис функции ТЕКСТ(--(1&D2);"ММММ ГГГГ""г."""). Я не могу разобраться в частности в подходе к заданию значения --(1&D2)
Изменено: - 21.12.2016 08:19:54
Динамичеки изменяемые диапазоны суммирования, добавлять сумму данных с другого листа в зависимости от выбранного периода
Пользователь
Сообщений: Регистрация: 17.09.2014
21.12.2016 08:04:43
Цитата
Пытливый написал: И еще - интересно, что делать с фактическими затратами, которые относятся к декабрю, а фактически производятся в январе? Довольно частый случай.
Здесь в моем случае все просто: 1) тот файл что мы делали БДР (Бюджет доходов и расходов) заполняется по начислению (суммы попадают в те месяца, к которым они относятся) и не важно когда фактически было движение денег и было ли вообще. Как правило он выверяется при закрытии квартала, когда в большинстве своем все начисления уже сделаны. 2) второй файл БДДС (Бюджет движения денежных средств) - ему напротив не важно к какому периоду относятся платежи и поступления, он заполняется по факту движения денег.
БДР дает картину доходности бизнеса, БДДС позволяет контролировать кассовые разрывы.
Динамичеки изменяемые диапазоны суммирования, добавлять сумму данных с другого листа в зависимости от выбранного периода
Пользователь
Сообщений: Регистрация: 17.09.2014
20.12.2016 18:30:38
Благодарности нет предела, равно как и восхищению. Ведь на поверку все не сложно: СМЕЩ выдергивает диапазон, границы которому задает ПОИСКПОЗ. Не хватило опыта применения этих функций. @Пытливый спасибо за урок!
P.S. если месяцы забить как даты (проблем с этим нет) - каким тогда может быть решение, буду признателен за направление и сам попробую разобраться?
Динамичеки изменяемые диапазоны суммирования, добавлять сумму данных с другого листа в зависимости от выбранного периода
Пользователь
Сообщений: Регистрация: 17.09.2014
20.12.2016 17:27:37
Вариант "вау" - от произвольного где-то задаваемого месяца до выбранного текущего включительно Вариант "спасибо за то, что вообще помогаете" - от января до выбранного месяца включительно
Динамичеки изменяемые диапазоны суммирования, добавлять сумму данных с другого листа в зависимости от выбранного периода
Пользователь
Сообщений: Регистрация: 17.09.2014
20.12.2016 16:55:11
Коллеги, прошу помощи в решении следующей задачи:
Бюджет компании сформирован ввиде excel-файла. Файл содержит 3 листа: план на 12 месяцев, факт на 12 месяцев, план-факт за месяц. Структура доходов-расходов на листах идентичная. Лист план-факт за месяц содержит колонки "план нарастающим итогом" и "факт нарастающим итогом"
Задача: на листе "план-факт за месяц" при указании месяца, за который план составляется, в колонках "план нарастающим итогом" и "факт нарастающим итогом" тянуть суммы по статьям доходов/расходов с листов плана и факта соответственно с начала года по месяц за который формируется отчет.
Самый простой путь реализации - настроить суммы за 12 месяцев и добавлять на листы план и факт данные по мере заполнения, но это во-первых ручной ввод данных плана, которые уже есть на год, а во-вторых необходимость ручных правок, если надо будет переделать какой-нибудь архивный отчет.
Подозреваю, что решение задачи есть, буду признателен за подсказку, каким набором формул можно воспользоваться. Для выдергивания данных непосредственно за месяц думаю воспользоваться комбинацией ИНДЕКС + ПОИСКОЗ или СУММЕСЛИМН + СМЕЩ.
Пример во вложении.
Изменено: - 20.12.2016 17:00:51
Подтянуть значение в заданную ячейку из другого листа по активной строчке
Пользователь
Сообщений: Регистрация: 17.09.2014
17.09.2014 17:19:13
Юрий М, лучше и придумать сложно! Я восхищаюсь вашим мастерством переводить такие мечты в реальность. Спасибо Вам.
p/s/ Спасибо всем кто отозвался, хотел отозваться и помочь решить задачу.
Подтянуть значение в заданную ячейку из другого листа по активной строчке
Пользователь
Сообщений: Регистрация: 17.09.2014
17.09.2014 17:09:44
Цитата
qaqae пишет: Может ли быть что в столбце "Клиент", одна организация будет указана несколько раз?
Да, для разных типов операций по одному клиенту заводится новая строчка.
Подтянуть значение в заданную ячейку из другого листа по активной строчке
Пользователь
Сообщений: Регистрация: 17.09.2014
17.09.2014 10:50:11
Прикладываю пример
Подтянуть значение в заданную ячейку из другого листа по активной строчке
Пользователь
Сообщений: Регистрация: 17.09.2014
17.09.2014 09:52:04
Добрый день! Просьба о помощи к знатокам экселя. Стараюсь изложить максимально точно задачу
Дано 1. Большая таблица на листе 1 содержащая повторяющиеся данные по разным организациям (бизнес-план); 2. Маленькая таблица на листе 2 содержащая краткие описания деятельности организаций (так-как руководство не всех знает "в лицо" ; 3. Названия организаций на 1м и 2м листе идентичны, функция ВПР/vlookup работает.
Задача Поскольку таблица большая, выделить еще один большой столбец с повторяющимися описаниями деятельности компаний не желательно. Надо в заданную ячейку (которая будет зафиксирована в шапке) подтягивать описание деятельности компании с листа 2, соответствующее выделенной в настощий момент строке в таблице 1 (в идеале) или конкретной ячейке (например названию компании в таблице на листе 1).
P.S. Если я "ишь чего захотел дармоед паршивый, вконец обнаглел лентяй бессовестный" - прошу меня извинить. Я надеюсь, что это не очень сложная задача.