Цитата |
---|
написал: Спасибо, что откликнулись так быстро! |
Всё работает замечательно!
Спасибо огромное ещё раз!
11.10.2024 09:54:21
New, приветствую Вас!
Спасибо, что откликнулись так быстро! На первый взгляд всё работает. В файле-образце работает прям отлично. Число строк (строчной части таблицы) переносится в лист результатов и суммы по столбцам строчных значений идентичны исходному отчёту. Проблемы возникают в оригинальном рабочем файле (а он довольно большой). В лист "Result" странным образом не выгружается часть данных. Я пока не могу понять, почему именно. Я готов оплатить Ваше участие в решении моей задачи и доведении её до логического завершения. Возьмётесь? В целом задача у меня состоит в следующем: Есть большой файл xls, по структуре идентичный файлу примера, но порядка 20 тысяч строк (он очень трудно открывается и после открытия ещё до пяти минут моргает, выстраивая иерархическую структуру). Конечно в исходном файле отчёта нет никаких макросов. В нём иерархия по менеджерам. Конечная задача -- получить в другой файл, в котором будет дальнейшая обработка данных, массив данных только по одному менеджеру, ФИО которого будет указано в ячейке итогового отчёта (условно "A1" листа Лист1). По-хорошему, исходный файл отчёта даже открывать не хочется. Но понятно, что при построении простого запроса (с чего и начинал) результат загружается без учёта иерархии, поэтому и пришлось в эту тему обращаться.
Изменено: |
|
|
10.10.2024 15:42:46
Приведённый код отлично работает, при разбивке в три поля. Как быть, если нужна разбивка на 10 полей?
Изменено: |
|||
|
20.03.2024 11:01:28
Приветствую всех!
Как должен выглядеть этот код, если вместо текста типа "апельсин", в таблице числовые данные (и целые и нецелые числа), а удалить (ну или переместить) нужно строки, значения в которых меньше (или больше) заданной величины. К примеру если по тому же столбцу "C" значения меньше 500 ? Спасибо ! |
|
|
31.08.2023 18:18:16
Вот сам код: Всем Спасибо ! |
|||
|
31.08.2023 18:17:09
Жители "планеты Excel "? приветствую Вас!
Есть работающий макрос. Составлен из кучи решений и подсказок разных авторов Планеты Excel из разных времён. Макрос работает. При загрузке небольших массивов данных всё было хорошо (терпимо). Но при загрузке больших объёмов данных (50-60 листов) макрос тормозит. Я никогда не занимался "оптимизацией кода" и предполагаю что специалистам на "мой" код смотреть будет больно. Тем не менее, передо мной задача стоит и решать её как-то надо. Файл примера (только один макрос и только шапка таблицы, которую собственно макрос заполняет, данными из файлов (прописан путь)) данный ресурс не принимает, поскольку видимо только текст макроса (там более нет ничего) весит 971 КБ. Готов выслать сам файл и при необходимости, пару файлов с данными, тому кто возьмётся за данную задачку. Не хочу обидеть специалистов низкой суммой, но но так, навскидку скажу, что мне не жалко будет заплатить 1 000 руб. за реальную помощь в существенном ускорении работы макроса (с комментариями по тексту кода). |
|
|
11.04.2023 08:03:10
Добрый день
Странное поведение проявил макрос: Исчезнувший на этапе тестирования недочёт вдруг появился опять, перед самым внедрением готового рабочего файла. на 1 странице всего 62 строки. Строка "Итого по странице" идёт следующей строкой, но она не последняя на странице. Следующая строка продолжает таблицу (за номером 63) на этой же странице. Начиная со следующей страницы (и до 16 включительно), к последней строке (после "Итого по странице) начинает прибавляться по одной строке, кратно числу страниц, а вставленная макросом строка с итогом соответственно смещается вверх. То есть на пятой странице, под строкой "Итого по странице", ещё пять строк продолжения таблицы и так до 16 страницы включительно. Интересно что после 16 страницы всё встало нормально (по строкам) и дальнейшая таблица нормально разбита постраничными итогами. Вот код, подскажите пожалуйста что исправить:
|
|||
|
31.03.2023 17:51:31
Я успешно нашёл причину смещения строк!
Ввиду того, что промежуточный итог заполнялся в столбец А, каждая новая " С2" прибавляла не до конца предыдущей таблицы, а до уже заполненной ранее ячейки "С2" Переместив заполняемую ячейку из столбца А в другой столбец, проблема решилась. С размещением и постраничным итогом вопрос полностью решился. С форматированием строк ( по п. 3 исходного запроса) так ничего и не получилось пока, буду думать! |
|
|
31.03.2023 15:44:05
|
|||||
|
31.03.2023 15:42:15
Спасибо огромное, что откликнулись!
Это уже многое. По работе макроса: запустил в массиве заполненных данных. наблюдение №1: на 1 странице всего 53 строки. Строка "Итого по странице" идёт следующей строкой, но она не последняя на странице. Следующая строка продолжает таблицу (за номером 54) и она является последней на этой странице. Начиная со следующей страницы (и до 17 включительно), к последней строке (после "Итого по странице) начинает прибавляться по одной строке, кратно числу страниц. То есть на пятой странице, под строкой "Итого по странице", ещё пять строк продолжения таблицы и так до 17 страницы включительно. Интересно что после 17 страницы всё встало нормально (по строкам). Наблюдение 2: в ячейке по стоблцу "A" действительно становится сумма промежуточных итогов, которая охватывает диапазон от "-1 строка до "следующего итога". Например на странице 17 она показывает 74 строки (из них 54 на своей странице и остальные на предыдущей странице, то строки Итого) Но необходимо чтобы в крайней левой ячейке (как вариант по столбцу "B") было указано "Число порядковых номеров на странице:" а справа от этой записи уже эта формула, которая посчитает промежуточные итоги по столбцу "A". С текстом который сейчас пишется макросом как "Итого по странице", я уже примерно понимаю как его сдвинуть вправо и полагаю что сам это сделаю.
Изменено: |
|
|
31.03.2023 10:40:26
Добавлю необходимые элементы "ТЗ"
1. После окончания формирования описи необходимо макросом внизу на каждой печатной странице (под нижней строкой таблицы но сразу над колонититулом) вставить строку в которой: слева на странице: "Число порядковых номеров на странице:" и в соседней справа ячейке значение (счёт по столбцу A в пределах этой страницы) Отформатировать по левому краю. справа на странице: "Общий итог фактического кол-ва штук на странице:" и в соседней справа ячейке значение (сумма по столбцу H в пределах этой страницы). Отформатировать по правому краю. 2. Всё это необходимо сделать на всех страницах, кроме самой последней страницы. 3. На последней странице будет строка "итого". Я сам её сделаю и обработаю. Необходимо отформатировать высоту всех строк (включая добавленные по п. 1) чтобы выше последней строки на последней странице было как минимум три строки таблицы описи. |
|
|
16.03.2023 15:44:31
Приветствую всех Жителей Планеты!
На форуме есть закрытая тема "автоматичский вывод постраничных итогов" (вот она: Попытался я его применить к своему файлу с другой структурой, но ничего не вышло, а проблема остаётся. Помогите пожалуйста, кто сможет: В таблице на последней строке каждой печатной страницы необходимо указать Число порядковых номеров на странице (счёт по столбцу A) и Общий итог фактического кол-ва штук на странице (сумма по столбцу H). Я пытался менять код, но не получил нужного результата. Прикладываю файл. Спасибо всем кто откликнется. |
|
|
16.03.2023 10:59:27
Добрый день!
В развитие темы вопрос: данный макрос (судя по примеру) отлично справляется с итогом по концу страницы. А как реализовать такай вариант: В примере 44 строка таблицы является последней на листе. После выполнения операции постраничного итога, вставить пустую строку между 44 и 45 и в данную строку записать итоги непосредственно в структуре таблицы, по графам этой таблицы, а не справа, как сейчас? |
|
|
16.02.2023 13:16:01
Ігор Гончаренко, приветствую Вас!
Вот крайний Ваш код прям почти то, что мне нужно, но я не смог прикрутить к нему Ваше решение, которое Вы ранее подсказали мне в другой теме. Мне надо в исходной папке все обработанные файлы удалить, и перенести их в папку "C:\test\Отработка" и как указать параметр "пропустить нужное число строк сверху листа" ?
Изменено: |
|
|
29.01.2023 10:06:46
Но Либре имеет значительно более скудный функционал приложения и не может соперничать с Excel. И события также работают, в том числе на открытие. И макросы там запущены. И да, уважаемый Дело в том, что для применения в Либре я делал подобие обфускации VBA кода. Но теперь рабочий файл будет работать в Excel и хочется обойтись стандартными для него методами. |
|||
|
27.01.2023 14:40:46
Приветствую всех жителей Планеты!
Разными путями многие пытаются зашифровать свои данные и макросы. Но известно, что открыв файл xlsm в Либре офисе, там в редакторе всё видно и никакие простые защиты тут не помогут. Отсюда появилась мысль: А что если макрос при открытии сможет получить наименование приложения и тем самым запустить удаление закрытых данных, если приложение не равно предназначенному MS Excel? Вопрос только в одном: Как получить наименование активного приложения, в котором открыт файл? |
|
|
27.01.2023 12:23:13
вот как раз по этой теме вопрос: Файл, где все макросы защищены паролем, листы, действия и прочее также защищены. Но достаточно открыть файл в Либре и зайти в редактирование макросов, там всё как на ладони... Неужели нет никакой возможности защиты от этого? Пусть сам файл откроется и листы станут беззащитными Но как защищённое содержимое проекта VBA не пустить в Либре? |
|||
|
27.01.2023 11:27:10
1. Имена у файлов заведомо неизвестны (их ручками формируют пользователи, кто во что горазд), именно поэтому мы берём все (!) файлы из папки и нет возможности прописать имя файла. 2. Допускаю что я впишу в код password:=password (известный пароль). но куда мне тогда вписать "password" ? куда ни пробую, везде ошибка компиляции выходит |
|||||
|