Дмитрий(The_Prist) Щербаков, идеальный сценарий в моем случае!
Мне по идее без разницы сколько там файлов будет, главное, чтобы проверка была! Спасибо!
Мне по идее без разницы сколько там файлов будет, главное, чтобы проверка была! Спасибо!
02.11.2023 12:24:46
Дмитрий(The_Prist) Щербаков, идеальный сценарий в моем случае!
Мне по идее без разницы сколько там файлов будет, главное, чтобы проверка была! Спасибо! |
|
|
02.11.2023 12:21:16
Изменено: |
|
|
02.11.2023 10:50:15
Всем здравствуйте!
Подскажите, пожалуйста, можно ли через VBA реализовать проверку добавленного файла перед запуском последующего макроса? Суть такова: запускаем первый макрос, добавляем файл (в примере это .txt файл). Далее перед запуском второго макроса происходит проверка о наличии файла: если есть - MsgBox "Файл есть", если нет, то MsgBox "Файла нет". Я ничего лучше не смог придумать, кроме как сделать переменную Public, которая меняется на 1, при добавлении файла. Но его большая проблема в том, что при удалении этого файла обратного изменения на 0 не происходит. Может быть стоит каким-то образом зашить на этот объект сценарий удаления? Или данное решение совсем не в духе правильного направления? Во вложении пример. Всем спасибо!
Изменено: |
|
|
02.11.2023 10:11:59
Дмитрий(The_Prist) Щербаков, спасибо за наводку, я попробую. Пример я добавил сразу после публикации, так как форум при создании сообщения не дает вложить файлы.
P.S. у меня через Join не получится, так как нужно в словаре брать соответствия рынком сбыта к конкретному поставщику. То есть поставщиков победителей может быть хоть 10, и мне получается нужно создавать на каждого победителя свой словарь только с его рынками сбыта? А как сделать так, чтобы словарь использовался только один? Или я не в том направлении рассуждаю?
Изменено: |
|
|
02.11.2023 09:57:47
Всем доброго дня!
Я снова за помощью к вам с массивами. Задача такая: есть массив на листе "Исходник", где мы выбираем определённого поставщика победителем на определенный товар и на определенный рынок сбыта и прописываем победителю % > 0 в колонке D. Далее, запуская макрос, на листе "Вывод" появляется список из поставщиков победителей и в ячейке справа их рынки сбыта через запятую (во вложении наглядный пример). Я со своей стороны написал код на извлечение двумерного массива, который при наличии в колонке D значения "> 0" записывает поставщика и рынок сбыта. Далее через Словарь вычленил оттуда уникальные значения, но так как у меня со словарями пока все плохо, дальше вообще не понимаю как действовать. Подскажите, пожалуйста, что можно сделать? Буду рад любой обратной связи! Спасибо!
Изменено: |
|
|
27.10.2023 15:04:19
МатросНаЗебре, отсутствующие данные все равно переносятся на новую книгу. Это неисправимо?
|
|
|
27.10.2023 14:47:36
МатросНаЗебре, нет слов, вы просто гений!
Один вопрос: как можно упростить код так, чтобы он обновленный Массив 2 выводил не на новую книгу, а изменял существующий Массив 2 на листе "Массив 2"? То есть, чтобы он удалял строки прямо там? |
|
|
27.10.2023 13:42:45
Всем здравствуйте!
Имею на руках два массива: 1. Первый: 3 столбца на n-строк 2. Второй: n-столбцов на n-строк (в примере 2 столбца) В первый массив товарищи заносят свои данные, а во второй вставляют выгрузку из источников. Нужно в Массиве 2 проверить по первому столбцу (A) есть ли то или иное значение ячейки в Массиве 1. Если нет - удалить всю строку; если есть - оставить. Далее после выполнения данной процедуры, проверить каких данных в Массиве 2 (столбец А) нет, которые заявлены в массиве 1, и вывести MsgBox с найденными несоответствиями. Подскажите, пожалуйста, как можно решить данную задачку? Буду благодарен за любой совет! Спасибо!
Изменено: |
|
|
24.10.2023 16:47:29
МатросНаЗебре, спасибо вам большое!
|
|
|
24.10.2023 16:23:42
Jack Famous, согласен, сам глаза чуть не сломал Обновленный пример во вложении.
МатросНаЗебре, попытался слить два кода в одну, не получилось... Как раз затык при выгрузке данных из словаря похоже (код во вложении файла). |
|
|
24.10.2023 16:06:53
Всем здравствуйте!
Передо мной стоит задачка: нужно из двух колонок с данными сделать двумерную таблицу, где данные первой колонки будут повторяться для каждого уникального значения второй колонки (визуально показал во вложении). Я со своей стороны создал Dictionary, который записал все уникальные значения второй колонки в массив, но я не могу понять как вычленить все эти Items из словаря и сделать из него обычный массив данных. И в целом я уже запутался... Подскажите, пожалуйста, как можно реализовать данный код в VBA? Спасибо всем заранее! P.S. похожую тему открывал ранее, но там не нужно было искать уникальные значения по колонке.
Изменено: |
|
|
19.10.2023 11:56:29
МатросНаЗебре, спасибо вам больше за подсказку! Я крутился вокруг да около с For Each, но не мог понять как
MikeVol, тоже спасибо за отклик! |
|
|
19.10.2023 11:02:52
Всем доброго дня!
У меня есть код на изменение данных листа (ниже представлен), который прекрасно обрабатывает при изменении данных одной ячейки. Однако при вставке "как значения" данных по диапазону (например, сразу 10 ячеек), то он обработает только ту ячейку, в которую мы вставляем диапазон (на картинке виден результат). Подскажите, пожалуйста, можно ли как-нибудь зарядить VBA отрабатывать код для всех ячеек куда были вставлены данные (а также удалять там, где диапазоном было сделано очищение)? Всем спасибо!
Изменено: |
|||
|
22.09.2023 10:58:07
Всем здравствуйте!
Появилась задача разделить данные определенных столбцов из исходной таблицы в разные таблицы на другом листе, исходя из критерия. По подсказкам на форуме и в интернете, решил попробовать через коллекции. Написав код (есть в примере и ниже), понял что он очень громоздкий и не совсем удобный. Можете, пожалуйста, подсказать, как лучше переделать код, чтобы я научился чему-то новому, и чтобы он был эффективнее...? Для наглядности привожу описание задачи ниже. Что имеем: 1. Исходная таблица имеет n столбцов, количество которых не изменяются (в примере для удобства сделал малое кол-во столбцов) 2. Количество строк в исходной таблице меняется (добавляется/убавляется) 3. В отдельном столбце считается критерий ("Категория") исходя из изменения данных год к году Что хотим получить: 1. На выходе есть три таблицы: уменьшение суммы, увеличение и без изменений 2. Запуская макрос, код пробегает по столбцу "Категория" и разносит данные из определенных столбцов по разным таблицам на листе "Вывод", исходя из критерия
Всем неравнодушным заранее спасибо!
Изменено: |
|||||
|
18.09.2023 18:00:08
Дмитрий(The_Prist) Щербаков, только хотел написать, что нашел решение
Спасибо за помощь! |
|
|
18.09.2023 17:25:17
Всем добрый день!
Очередной вопрос по VBA, на этот раз по UserForm. Подскажите, пожалуйста, можно ли как-либо сделать названия кнопок динамичными, которые будут меняться в зависимости от значения в ячейке на рабочем листе? Дело в том, что у меня есть файл, который будет жить не один год, и было бы здорово, если данные в UserForm обновлялись в зависимости от выбранного года (выпадающий список - выбираем нужный год, потом в скрытых листах формируются данные для кнопок). Попытался через следующий код при запуске формы, но он не работает...
Изменено: |
|||
|
15.09.2023 11:53:55
Всем привет!
Разбираюсь с переменными в VBA и появилась идея облегчить код вводом переменной для листов и с их последующей работой. Ниже код: я задал переменные на листы "sht(1 To 7)", но как объявлять сразу всю группу, чтобы с ней работать так и не понял. Через For Each тоже не догоняю (у нас же не может быть лист в листе уже). Подскажите, пожалуйста, как правильно?
Изменено: |
|||
|
28.07.2023 10:05:05
Поднимаю тему. Буду благодарен за ответ!
UPD. Ошибку нашел. Закрываю тему. Скорректированный код
Изменено: |
|||
|
27.07.2023 11:46:03
Всем снова здравствуйте!
После многочисленных тестов понял, что код, который ранее предложил МатросНаЗебре, не всегда отрабатывает корректно: если в одном из массивов 2 строки с данными, то код начинает вставлять данные в массив 3 до конца листа. А если данных либо 1 строка, либо 3 и более, то все хорошо. Помогите, пожалуйста, с проблемой! Спасибо.
Изменено: |
|
|
15.06.2023 14:56:17
МатросНаЗебре, Спасибо большое!
|
|
|
15.06.2023 14:27:24
Всем здравствуйте!
Приходится поднимать тему, так как столкнулся с проблемой в коде, который предложил Игорь. Если в рассматриваемых массивах приходится по одному значению, тогда макрос выделяет не диапазон в виде одной ячейки, а начинает идти вниз до конца листа, и, соответственно, размножает данные на более чем 1 млн. строк., хотя нужно было сделать массив 1Х1. Подскажите, пожалуйста, как поправить код или вставить ограничения, чтобы избежать такого множителя? Спасибо! |
|
|
15.06.2023 11:47:44
Спасибо большое, RAN, Jack Famous, за подсказку и разъяснения!
|
|
|