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

Страницы: 1 2 След.
Получить список файлов в папке по условию
 
БМВ,
Код
Set FSO = CreateObject("Scripting.FileSystemObject")
    Set SourceFolder = FSO.GetFolder(FolderPath)

Далее For Each FileItem In SourceFolder.Files и сравнение указанного свойства с переменной даты
Собственно так же как и в решении от ув.DANIKOLA

Единственное, возможно получиться ускорить цикл, предварительно "развернув" массив, т.к. с 99% вероятностью, искомые файлы будут в конце списка, соответственно сократится количество итераций...
Получить список файлов в папке по условию
 
БМВ, Переделал на FileSystemObject, проверил на одном из ПК (папка 24Гб, 600 000 файлов), время выросло с ~30 сек до ~3 минут, это конечно лучше чем ничего, но надежда все же есть что найдется еще какое либо решение.
Получить список файлов в папке по условию
 
Добрый день! Имеется папка с огромным количеством файлов (от 500 000 до 4 000 000) штук, задача: получить из этой папки список файлов которые были созданы либо изменены(одно из, что проще)в период начиная С указанной даты
На текущий момент решение такое:
Код
    FileList = ThisWorkbook.path & "\list.txt"
    Dim wsh As Object
    Set wsh = VBA.CreateObject("WScript.Shell")
    cmd = "cmd /c forfiles /P C:\folder /M *.xml_s /C ""cmd /c echo @path"" /D +28.10.2022>" & FileList
    wsh.Run cmd, 1, True

НО, с определенного времени почтовый антивирус начал блокировать файл. Причиной оказался этот фрагмент (если удалить строку "wsh.Run cmd, 1, True" то у антивируса вопросы отпадают)

Собственно вновь нахожусь в поиске решения. Power Query использовать нет возможности.
Как либо повлиять на настройки антивируса почтового сервера возможностей нет.

В одном или нескольких вложениях этого сообщения электронной почты обнаружены вредоносные программы.
Действие: Все вложения удалены.
Имя_файла.xlsm O97M/LolBinAbuse!ibt
Изменено: wlad1164 - 28.10.2022 12:08:10
"Убрать" подтверждение собственного запроса к БД
 
New, спасибо!
Сам бы не додумался искать окно параметров в секции "Получить данные"...
"Убрать" подтверждение собственного запроса к БД
 
Имеется файл Excel в котором с помощью PowerQuery выполняется запрос к БД MySQL, сам запрос "динамический" и все хорошо, НО для каждого нового запроса Excel запрашивает подтверждение


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

Цитата
Если вы впервые подключаетесь к этому серверу, появится запрос на выбор режима проверки подлинности для подключения к базе данных. Выберите соответствующий режим проверки подлинности и продолжайте работу.
https://learn.microsoft.com/ru-ru/power-query/native-database-query

Под "динамическим" запросом я подразумеваю то что условия Where в нем зависят от значений в ячейках листа.
Изменено: wlad1164 - 29.09.2022 16:56:48
Алгоритм для установления связи "Многие-ко-многим"
 
, спасибо! Буду разбираться
Алгоритм для установления связи "Многие-ко-многим"
 
Добрый день!
Имеется 2 таблицы, необходимо установить однозначную связь используя свойство "Оборот"  и Наименование товара

Пример набросан из головы, выглядит примерно как:
Имеется выгрузка, в которой указано какое количество какого товара было отгружено с каждого склада суммарно на все посты и окна.
Так же имеется выгрузка, в которой известно с какого поста, через какое окно и в каком количестве  товар был выдан клиенту.

Необходимо во второй таблице определить с какого склада это окно выдавало товар?
*Каждое окно каждого поста может выдавать товар только с одного склада.

В голову приходит мысль:
1. Для каждого товара выбрать все склады с ним (например Товар-Л, это склады 1 и 2)
2. Для каждого товара выбрать все окна через которые он выдавался (пост-окно: 5-4, 6-4, 9-1, 9,2, 11-1)
3. Получить N количество сумм (получается 31 значение(вроде бы))
4. Находим для каждого значения номер склада и возвращаем его

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

*Количества окон может иногда быть до 9, а это уже 500+ вариантов сумм (опять же, если я правильно предположил)
Аналог GoalSeek для Pivot, GoalSeek, Pover Pivot, DAX
 
Добрый день, вопрос скорее к знатокам.
Как в Pover Pivot реализовать функцию Excel  GoalSeek?
Скрытый текст

Имеем значение1, значение2, формулуGS:
Цитата
=F3*EXP(-(346,42278/(F3^2)+0,43884/F3)*(B3-15)*(1+0,8*(346,42278/(F3^2)+0,43884/F3)*(B3-15)))
Как реализовать аналогичное для языка DAX?
Пример во вложении.
Подписи категорий данных сводной таблицы
 
Доброго времени суток, имеется модель данных по которой строится сводный график
И все с ним хорошо, но в стиле на графике нужно убрать подписи для третьей ("нижней") строки, в примере: Категории=>ДатаС

Сейчас так:
Скрытый текст

Нужно вот так:

Скрытый текст

При необходимости подготовлю пример файла...

Настройки стиля категорий просмотрел, кроме опции "Многоуровневые подписи категорий" ничего не обнаружил (возможно не туда смотрел)
Но как скрыть отображение одного из уровня не выключая его не нашел
Изменено: wlad1164 - 16.02.2021 23:24:05
Оптимизация (сокращение кода) VBA
 
БМВ, спасибо! сделал все аналогично, все работает, только не понятно, где должен быть размещен макрос?
Если в модуле или классе то в нем недоступны значения UserForm.TextBox , если макрос расположен в UserForm то его запуск из Модуля либо класса не выполняется...
Оптимизация (сокращение кода) VBA
 
Добрый день!
Наверное не правильно подобрал название темы, суть вопроса:
имеется Userform в которой расположено 16 TextBox "р_ПкмВx" (x=0-15) при изменении любого из них необходимо вызывать макрос "ИзменениеРасстояний"
В данный момент это написано вот так
Код
Private Sub р_ПкмВ0_Change()
    ИзменениеРасстояний
End Sub
Private Sub р_ПкмВ1_Change()
    ИзменениеРасстояний
End Sub
Private Sub р_ПкмВ2_Change()
    ИзменениеРасстояний
End Sub
Private Sub р_ПкмВ3_Change()
    ИзменениеРасстояний
End Sub
Private Sub р_ПкмВ4_Change()
    ИзменениеРасстояний
End Sub
Private Sub р_ПкмВ5_Change()
    ИзменениеРасстояний
End Sub
Private Sub р_ПкмВ6_Change()
    ИзменениеРасстояний
End Sub
Private Sub р_ПкмВ7_Change()
    ИзменениеРасстояний
End Sub
Private Sub р_ПкмВ8_Change()
    ИзменениеРасстояний
End Sub
Private Sub р_ПкмВ9_Change()
    ИзменениеРасстояний
End Sub
Private Sub р_ПкмВ10_Change()
    ИзменениеРасстояний
End Sub
Private Sub р_ПкмВ11_Change()
    ИзменениеРасстояний
End Sub
Private Sub р_ПкмВ12_Change()
    ИзменениеРасстояний
End Sub
Private Sub р_ПкмВ13_Change()
    ИзменениеРасстояний
End Sub
Private Sub р_ПкмВ14_Change()
    ИзменениеРасстояний
End Sub
Private Sub р_ПкмВ15_Change()
    ИзменениеРасстояний
End Sub
Вопрос, возможно ли как то "упростить","урезать","сжать" этот код?

Интересуюсь в целях общего развития, может есть способ что то вроде
Код
Private Sub р_ПкмВ0_Change() or р_ПкмВ1_Change() or р_ПкмВ2_Change() or .....
    ИзменениеРасстояний
End Sub
P.s. файл примера не прикладываю т.к. в нем совершенно нет смысла)))
Закрыть текущую книгу и открыть другую макросом
 
Попробовал, выяснил что вот такая конструкция не работает
Код
                If res Then
                    Workbooks.Open (ActiveWorkbook.Path & "\" & CriticalFileName)
                    Workbooks(CurrentFileName).Close
                End If
При открытии Книга2 макрос из Книга1 прерывается и вторая строка (закрытие) не выполняется.
Закрыть текущую книгу и открыть другую макросом
 
Добрый вечер, в голову пришла дурная идея:
возможно ли макросом текущей книги закрыть её и открыть другую?

В наличии имеется:
1.Книга1 с макросом
2.Книга2 (с другими макросами/данными/измененными макросами из Книга1)

Суть задачи: при открытии Книга1 макрос проверяет "актуальность файла" и в случае, когда эту проверку не проходит получает полный путь Книга2
Задача для макроса в Книга1- закрыть текущую книгу без сохранения, открыть Книга2, бесследно исчезнуть)

Глупый вопрос: при закрытии книги макрос ведь тоже выгружается? (ДА) или есть триггер "после закрытия книги" ?
соответственно нужно сначала нужно открыть новую (Книга2) и затем закрыть текущую (Книга1), но при отктытии Книга2 начнут выполняться макросы из Книга2, как обойти этот момент?

И второй вопрос: при одновременно открытых нескольких книгах, как обращаться к необходимой? (в наличии имеется полный путь каждой из книг) спасибо Казанский
Изменено: wlad1164 - 04.03.2019 21:33:45
Обращение к элементам формы из цикла
 
Ігор Гончаренко, Дмитрий(The_Prist) Щербаков,
Спасибо! Все оказалось действительно очень просто)
Ігор Гончаренко,  это будет действительно очень сложный выбор)))
Еще раз спасибо)
Обращение к элементам формы из цикла
 
Добрый день!
Подскажите пожалуйста, имеется форма, на которой расположено 15 ComboBox
Имена полей CB1,CB2,CB3......CB15

Можно ли получить их значения циклом?
A2=CB1
A3=CB2
...
A16=CB15

Что то вроде
For Val=1 To 15
Sheets("Лист1").Range("A" & Val + 1) = Form1.<=Переменная=>.Value
Next

Как оформить код в месте выделенном жирным?
Как составить и решить линейное уравнение в Excel
 
Небольшие уточнения:
Положительно,Отрицательно, всего - всегда целые числа
Результат должен быть положительным или отрицательным целым числом
    Отрицательным в случае когда %стало <%было
    Положительным в случае когда %стало >%было
Если число НЕ целое, должно округляться ( 1.1=2 ; -1.1=-2)
Как составить и решить линейное уравнение в Excel
 
Помогите составить формулу для вычисления
В зеленой ячейке нужно получить число, на которое нужно увеличить(или уменьшить) положительно в оранжевой ячейке, чтобы процент в столбце стало был равен проценту в столбце было (красные ячейки)

Соответственно изменяя числа в оранжевой или желтой ячейке, получать это число
Изменено: wlad1164 - 12.01.2018 22:42:06
Сложный динамический список из двух таблиц по условим
 
Цитата
БМВ написал:
Поясните, куда в примере 1 пропало 10? Руками вот так выходит.
всего нужно вывести 22 значения (это сумма отсутствующих+последних присутствующих)

В примере 1 отсутствуют 7 значений (4,9,11,12,13,19,28)
т.е. нужно вывести 7 отсутствующих и 15 (22 минус 7) последних (14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,29,30)
но так как числа 2 числа из первого диапазона входят в список последних (19,28) то в отсутствующих
их показывать не нужно, получается 5 отсутствующих(4,9,11,12,13)
соответственно список последних тогда будет из (22-5=17) это (14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,29,30), соединив эти 2 списка получаем
4,9,11,12,13,14,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,29,30
Изменено: wlad1164 - 24.12.2017 23:40:32
Сложный динамический список из двух таблиц по условим
 
Цитата
Karataev написал:
Работает только с 22 числами,
Нужно выводить список Д1+Д2=22 значения проверять желательно как можно больше (в моем способе решения 150)
Цитата
Karataev написал:
В столбце "D" вверху числа, которых нет, внизу числа, которые есть.
В первом файле, которых нет выделены красным и они вперемешку с теми которые есть (в порядке возрастания) в принципе решается сортировкой....
Цитата
Karataev написал:
В столбцах B:C формулы массива

Судя по моему файлу думаю можно догадаться что я знаю о массивах, но все ровно спасибо =)
Сложный динамический список из двух таблиц по условим
 
Karataev, спасибо, но тоже немного не то, видимо я совсем не умею объяснять что мне нужно....
И да, есть небольшая проблема...
Нет проблемы, это я не туда гляжу
Изменено: wlad1164 - 24.12.2017 23:29:12
Сложный динамический список из двух таблиц по условим
 
БМВ, в примере 1 число 10 есть в таблице, его соответсвенно в результате быть и не должно, вы не поняли что мне нужно было получить
Сложный динамический список из двух таблиц по условим
 
Сам отвечу на свой вопрос, через дополнительный лист можно)

Решение на костылях в файле

Примечания:
формула ищет в диапазоне последних 150 значений (задается столбцом А1) можно увееличивать
есть столбцы от которых можно избавится (Е-не нужен, С-можно перенести в B) но это мелочи

И опять же вопрос у Гуру форума, как еще сократить "каскады" вычислений ?  
Сложный динамический список из двух таблиц по условим
 
Доброй ночи!
Подскажите, как реализовать нечто подобное и вообще, возможно ли?

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

в кратце, нужно выводить список (жестко заданное число строк, в примере 22) который будет если можно так сказать одновременно начинаться:
список1=>снизу=макс значние-1 и т.д.
список2=>сверху=список отсутствующих значений в таблице исключая значения из списка 1

Простите за то что не могу четко сформулировать то что нужно....
***
На Лист1 ничего изменять нельзя
Все должно остаться работоспособным при добавлении/удалении строк из таблицы на Лист1
Крайне желательно это все сделать формулой
На лист2 (или доп листе) можно создавать промежуточные столбцы/таблицы
Изменено: wlad1164 - 23.12.2017 00:10:17
Автоматическое заполнение матрицы расстояний
 
Еще предложу вариант: отказаться от матрицы и получать нужное расстояние непосредственно указав в запросе маршрут (Город1&Город2&......&Город10) в ответ на который получите длину маршрута и время в пути (данные маршрута и времени на основе Google Maps (время с учетом пробок))
Автоматическое заполнение матрицы расстояний
 
Тоже сталкивался с проблемой, решал с помощью гугл API
К сожалению сходу файлик не нашел (чуть позже попытаюсь найти свой вариант исполнения)

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

Примечание: у гугла есть ограничение на кол-во запросов в день для одного API ключа, поэтому если городов много то придется растянуть на несколько дней)
И еще одно, т.к. Вам нужны расстояния между городами а не конкретными точками городов (подразумевается что они большие) то в запросе можно указывать просто название города)
Поиск значений из таблицы, которые соответствуют условиям заданным в ячейках
 
И снова прошу помощи у Вас.
Возможно ли изменить формулу для тех случаев когда в один день авто выезжало дважды(трижды, более 3х раз не бывает), в примере  2.11.17 авто М002ЕМ 32RUS, соответственно на Лист2 нужно вывести "Т ДО" - самого первого выезда за этот день(первое найденое сверху, т.к. таблица всегда отсортирована) "Т П" - самого последнего выезда за этот день, и "1+2" - сумма значений всех выездов в этот день

В примере:
фиолетовым - данные на основании которых нужно искать значение на Лист1
оранжевым - то где эти данные нужно получить
зеленым - то что получается при использовании предложенных ранее вариантов (все идеально если все авто выезжают 1 раз в день)
бирюзовым - то что нужно получить

Соответственно новый пример прилагаю)
Поиск значений из таблицы, которые соответствуют условиям заданным в ячейках
 
a.i.mershik, Wanschh, Karataev, спасибо за ответы!
Все предложенные варианты работают так как нужно.

Для себя использую вариант от a.i.mershik, единственное убрал $ перед $N$4 чтобы можно было скопировать формулу в ячейки справа и не нужно было каждый раз менять адрес ячейки с датой.
Поиск значений из таблицы, которые соответствуют условиям заданным в ячейках
 
Добрый день! Прошу помощи с созданием формулы поиска

Имеется Лист-1 (на нем все данные)
Лист-2 то куда эти данные должны добавляться

В примере:
ячейки выделенные фиолетовым - данные на основании которых нужно искать значение на Лист1
ячейки выделенные оранжевым - то где эти данные нужно получить
ячейки выделенные зеленым -пример того что должно получится

Самое простое что пришло в голову это на Лист1 добавить столбец (сцепить B1+F1) и на Лист2 через ИНДЕКС/ПОИСКПОЗ получать нужные значения, но хотелось бы обойтись без добавления этого столбца.
К сожалению с формулами массива не очень дружу...
Получить данные с XML страницы, с множеством однотипных параметров
 
Спасибо! Вроде именно то что нужно)
Получить данные с XML страницы, с множеством однотипных параметров
 
Медленно пытаюсь разобраться с этим пока что успехов не достиг значимых успехов не достиг
 ID = xmlDoc.SelectSingleNode("//Details/parameter[name='workorderid']").Text
 Requester = xmlDoc.SelectSingleNode("//Details/parameter[name='requester']").Text
Результат :
 ID = workorderid 258
 Requester = requester Name

Осталось как то избавится от того что ДО пробела (включая пробел)  
Изменено: wlad1164 - 31.10.2017 00:37:46
Страницы: 1 2 След.
Наверх