Доброго времени. Прошу о помощи в создании макроса со следующими функциями:
1. расставить данные как в примере. 2. сохранить это в новом файле в той же папке. 3. файл назвать как папку в котором он находится плюс добавить к названию "для ТР"
По поводу расстановки данных: работа идет по сотням записей, то есть каждая сотня берется отдельно и расставляется в нужном порядке. Если кол-во данных не кратно 10 то округляется до следующего десятка. Например: кол-во записей 411, в таком случает дописываются данные до 420 взяв не хватающие 9 записей сначала списка. Итого имеем 4 сотни раскиданные в нужном порядке и еще 20 записей раскиданных в том же порядке. Например: имея 120 записей с 1 по 120 должно получится в новом файле 1 51 2 52 3 53 ... 49 99 50 100 101 111 102 112 ... 110 120
Буду очень признателен!
Доброго времени. Прошу о помощи в создании макроса со следующими функциями:
1. расставить данные как в примере. 2. сохранить это в новом файле в той же папке. 3. файл назвать как папку в котором он находится плюс добавить к названию "для ТР"
По поводу расстановки данных: работа идет по сотням записей, то есть каждая сотня берется отдельно и расставляется в нужном порядке. Если кол-во данных не кратно 10 то округляется до следующего десятка. Например: кол-во записей 411, в таком случает дописываются данные до 420 взяв не хватающие 9 записей сначала списка. Итого имеем 4 сотни раскиданные в нужном порядке и еще 20 записей раскиданных в том же порядке. Например: имея 120 записей с 1 по 120 должно получится в новом файле 1 51 2 52 3 53 ... 49 99 50 100 101 111 102 112 ... 110 120
В приложенном файле пример как это реализовано формулами. Возможно поможет наглядностью. На листе 1 база, на листе 2 уже в нужном порядке. Бывает что строк по 60 000 и столбцов по 10, это бывает долго очень если десяток файлов. Можно без сохранения и переименовывания, просто перемешать данные в имеющейся уже базе или вновь созданной.
В приложенном файле пример как это реализовано формулами. Возможно поможет наглядностью. На листе 1 база, на листе 2 уже в нужном порядке. Бывает что строк по 60 000 и столбцов по 10, это бывает долго очень если десяток файлов. Можно без сохранения и переименовывания, просто перемешать данные в имеющейся уже базе или вновь созданной.Vetali
KSV, Доброе утро. Сергей, все отлично работает! Очень Вам благодарен! Проблемы возникают только с файлами как в приложенном примере. Есть 23 записи, 20 записей упорядочиваются по условию, а остаток из 3 записей дописываются в конце а к ним добавляются записи с начала списка до 30. На практике конечно все наглядней и появляются еще пожелания. Если возможно: чтоб макрос работал с первой строки, то есть не будет заголовков номер 1 и номер 2, назвать макрос, сделать кнопочку на каждом листе, если добавляется лист то уже с кнопочкой, если на других листах есть база то она сохранятся в вновь созданном файле на своем листе соответствующий листу в исходнике и его названию. А новый файл сохранить в 97-2003.
KSV, Доброе утро. Сергей, все отлично работает! Очень Вам благодарен! Проблемы возникают только с файлами как в приложенном примере. Есть 23 записи, 20 записей упорядочиваются по условию, а остаток из 3 записей дописываются в конце а к ним добавляются записи с начала списка до 30. На практике конечно все наглядней и появляются еще пожелания. Если возможно: чтоб макрос работал с первой строки, то есть не будет заголовков номер 1 и номер 2, назвать макрос, сделать кнопочку на каждом листе, если добавляется лист то уже с кнопочкой, если на других листах есть база то она сохранятся в вновь созданном файле на своем листе соответствующий листу в исходнике и его названию. А новый файл сохранить в 97-2003.Vetali
нужно убрать 2 строчки, и диапазон для формата поправить: [vba]
Код
With Лист1.[A1] ... ' x = .Resize(, c).Value'УБРАТЬ End With ... With Workbooks.Add With .ActiveSheet.[A1].Resize(r, c) 'A2 заменить на A1 ... ' .Rows(0).Value = x'УБРАТЬ End With ... End With
[/vba]
Остальные вопросы не относятся к исходному заданию.
нужно убрать 2 строчки, и диапазон для формата поправить: [vba]
Код
With Лист1.[A1] ... ' x = .Resize(, c).Value'УБРАТЬ End With ... With Workbooks.Add With .ActiveSheet.[A1].Resize(r, c) 'A2 заменить на A1 ... ' .Rows(0).Value = x'УБРАТЬ End With ... End With
[/vba]
Остальные вопросы не относятся к исходному заданию.Manyasha
Спасибо! Все сделал но, некорректно работает. В новом файле нумерация начинается с 0002, а последняя запись 0151 почему то..
Я понял в чем дело. Ваш вариант работает корректно если не удалять заголовок. Если у меня в первой ячейке 0001 то нет. Можно ли исправить под такой вид? Заголовков не будет.
Manyasha,
Спасибо! Все сделал но, некорректно работает. В новом файле нумерация начинается с 0002, а последняя запись 0151 почему то..
Я понял в чем дело. Ваш вариант работает корректно если не удалять заголовок. Если у меня в первой ячейке 0001 то нет. Можно ли исправить под такой вид? Заголовков не будет.Vetali
Сообщение отредактировал Vetali - Пятница, 13.11.2015, 14:57
KSV Доброе утро. Немного не то имел ввиду но у вас получилось лучше. Так что использую ваше решение!) Спасибо! Можно чтоб новый файл сохранялся в 97-2003?
KSV Доброе утро. Немного не то имел ввиду но у вас получилось лучше. Так что использую ваше решение!) Спасибо! Можно чтоб новый файл сохранялся в 97-2003?Vetali