Домашняя страница Undo Do New Save Карта сайта Обратная связь Поиск по форуму
МИР MS EXCEL - Гость.xls

Вход

Регистрация

Напомнить пароль

 

= Мир MS Excel/Расставить данные в определенном порядке. - Мир MS Excel

Старая форма входа
  • Страница 1 из 1
  • 1
Модератор форума: китин, _Boroda_  
Мир MS Excel » Вопросы и решения » Вопросы по VBA » Расставить данные в определенном порядке. (Макросы/Sub)
Расставить данные в определенном порядке.
Vetali Дата: Среда, 07.10.2015, 13:39 | Сообщение № 1
Группа: Пользователи
Ранг: Участник
Сообщений: 88
Репутация: 1 ±
Замечаний: 0% ±

Доброго времени.
Прошу о помощи в создании макроса со следующими функциями:

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

Буду очень признателен!
К сообщению приложен файл: 1737980.xls (29.5 Kb)


Сообщение отредактировал Vetali - Среда, 07.10.2015, 13:41
 
Ответить
СообщениеДоброго времени.
Прошу о помощи в создании макроса со следующими функциями:

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

Буду очень признателен!

Автор - Vetali
Дата добавления - 07.10.2015 в 13:39
Vetali Дата: Четверг, 12.11.2015, 16:37 | Сообщение № 2
Группа: Пользователи
Ранг: Участник
Сообщений: 88
Репутация: 1 ±
Замечаний: 0% ±

В приложенном файле пример как это реализовано формулами. Возможно поможет наглядностью.
На листе 1 база, на листе 2 уже в нужном порядке. Бывает что строк по 60 000 и столбцов по 10, это бывает долго очень если десяток файлов.
Можно без сохранения и переименовывания, просто перемешать данные в имеющейся уже базе или вновь созданной.
К сообщению приложен файл: 8913522.xls (57.0 Kb)
 
Ответить
СообщениеВ приложенном файле пример как это реализовано формулами. Возможно поможет наглядностью.
На листе 1 база, на листе 2 уже в нужном порядке. Бывает что строк по 60 000 и столбцов по 10, это бывает долго очень если десяток файлов.
Можно без сохранения и переименовывания, просто перемешать данные в имеющейся уже базе или вновь созданной.

Автор - Vetali
Дата добавления - 12.11.2015 в 16:37
KSV Дата: Пятница, 13.11.2015, 04:15 | Сообщение № 3
Группа: Друзья
Ранг: Ветеран
Сообщений: 770
Репутация: 255 ±
Замечаний: 0% ±

Excel 2013
Доброе утро!
Так надо?
К сообщению приложен файл: 0632466.xls (77.5 Kb)


KSV.VBA@gmail.com
Яндекс.Деньги: 410011921213333
 
Ответить
СообщениеДоброе утро!
Так надо?

Автор - KSV
Дата добавления - 13.11.2015 в 04:15
Vetali Дата: Пятница, 13.11.2015, 10:05 | Сообщение № 4
Группа: Пользователи
Ранг: Участник
Сообщений: 88
Репутация: 1 ±
Замечаний: 0% ±

KSV,
Доброе утро.
Сергей, все отлично работает! Очень Вам благодарен!
Проблемы возникают только с файлами как в приложенном примере.
Есть 23 записи, 20 записей упорядочиваются по условию, а остаток из 3 записей дописываются в конце а к ним добавляются записи с начала списка до 30.
На практике конечно все наглядней и появляются еще пожелания. Если возможно: чтоб макрос работал с первой строки, то есть не будет заголовков номер 1 и номер 2, назвать макрос, сделать кнопочку на каждом листе, если добавляется лист то уже с кнопочкой, если на других листах есть база то она сохранятся в вновь созданном файле на своем листе соответствующий листу в исходнике и его названию. А новый файл сохранить в 97-2003.
К сообщению приложен файл: 2424.xls (54.5 Kb)


Сообщение отредактировал Vetali - Пятница, 13.11.2015, 10:39
 
Ответить
СообщениеKSV,
Доброе утро.
Сергей, все отлично работает! Очень Вам благодарен!
Проблемы возникают только с файлами как в приложенном примере.
Есть 23 записи, 20 записей упорядочиваются по условию, а остаток из 3 записей дописываются в конце а к ним добавляются записи с начала списка до 30.
На практике конечно все наглядней и появляются еще пожелания. Если возможно: чтоб макрос работал с первой строки, то есть не будет заголовков номер 1 и номер 2, назвать макрос, сделать кнопочку на каждом листе, если добавляется лист то уже с кнопочкой, если на других листах есть база то она сохранятся в вновь созданном файле на своем листе соответствующий листу в исходнике и его названию. А новый файл сохранить в 97-2003.

Автор - Vetali
Дата добавления - 13.11.2015 в 10:05
Manyasha Дата: Пятница, 13.11.2015, 13:53 | Сообщение № 5
Группа: Модераторы
Ранг: Старожил
Сообщений: 2198
Репутация: 898 ±
Замечаний: 0% ±

Excel 2010, 2016
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]

Остальные вопросы не относятся к исходному заданию.


ЯД: 410013299366744 WM: R193491431804
 
Ответить
Сообщение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]

Остальные вопросы не относятся к исходному заданию.

Автор - Manyasha
Дата добавления - 13.11.2015 в 13:53
Vetali Дата: Пятница, 13.11.2015, 14:22 | Сообщение № 6
Группа: Пользователи
Ранг: Участник
Сообщений: 88
Репутация: 1 ±
Замечаний: 0% ±

Manyasha,

Спасибо!
Все сделал но, некорректно работает. В новом файле нумерация начинается с 0002, а последняя запись 0151 почему то..

Я понял в чем дело.
Ваш вариант работает корректно если не удалять заголовок. Если у меня в первой ячейке 0001 то нет.
Можно ли исправить под такой вид? Заголовков не будет.


Сообщение отредактировал Vetali - Пятница, 13.11.2015, 14:57
 
Ответить
СообщениеManyasha,

Спасибо!
Все сделал но, некорректно работает. В новом файле нумерация начинается с 0002, а последняя запись 0151 почему то..

Я понял в чем дело.
Ваш вариант работает корректно если не удалять заголовок. Если у меня в первой ячейке 0001 то нет.
Можно ли исправить под такой вид? Заголовков не будет.

Автор - Vetali
Дата добавления - 13.11.2015 в 14:22
KSV Дата: Пятница, 13.11.2015, 19:14 | Сообщение № 7
Группа: Друзья
Ранг: Ветеран
Сообщений: 770
Репутация: 255 ±
Замечаний: 0% ±

Excel 2013
а к ним добавляются записи с начала списка
не совсем понимаю, как это должно выглядеть, поэтому сделал, как понял - добавляется так:
0021
0022
0023
0001
0002
0003
...
0007
К сообщению приложен файл: 1427611.xls (55.5 Kb)


KSV.VBA@gmail.com
Яндекс.Деньги: 410011921213333
 
Ответить
Сообщение
а к ним добавляются записи с начала списка
не совсем понимаю, как это должно выглядеть, поэтому сделал, как понял - добавляется так:
0021
0022
0023
0001
0002
0003
...
0007

Автор - KSV
Дата добавления - 13.11.2015 в 19:14
Vetali Дата: Понедельник, 16.11.2015, 09:29 | Сообщение № 8
Группа: Пользователи
Ранг: Участник
Сообщений: 88
Репутация: 1 ±
Замечаний: 0% ±

KSV
Доброе утро.
Немного не то имел ввиду но у вас получилось лучше. Так что использую ваше решение!) Спасибо!
Можно чтоб новый файл сохранялся в 97-2003?
 
Ответить
СообщениеKSV
Доброе утро.
Немного не то имел ввиду но у вас получилось лучше. Так что использую ваше решение!) Спасибо!
Можно чтоб новый файл сохранялся в 97-2003?

Автор - Vetali
Дата добавления - 16.11.2015 в 09:29
devilkurs Дата: Понедельник, 16.11.2015, 10:43 | Сообщение № 9
Группа: Проверенные
Ранг: Форумчанин
Сообщений: 167
Репутация: 43 ±
Замечаний: 0% ±

Excel 2007, 2010
В макросе добавить в третью строку сницу FileFormat:=xlExcel8

т.е получится

[vba]
Код
        .SaveAs d & "\" & f & " для ТР", FileFormat:=xlExcel8
[/vba]


 
Ответить
СообщениеВ макросе добавить в третью строку сницу FileFormat:=xlExcel8

т.е получится

[vba]
Код
        .SaveAs d & "\" & f & " для ТР", FileFormat:=xlExcel8
[/vba]

Автор - devilkurs
Дата добавления - 16.11.2015 в 10:43
Vetali Дата: Понедельник, 16.11.2015, 11:09 | Сообщение № 10
Группа: Пользователи
Ранг: Участник
Сообщений: 88
Репутация: 1 ±
Замечаний: 0% ±

devilkurs,
спасибо!
 
Ответить
Сообщениеdevilkurs,
спасибо!

Автор - Vetali
Дата добавления - 16.11.2015 в 11:09
Мир MS Excel » Вопросы и решения » Вопросы по VBA » Расставить данные в определенном порядке. (Макросы/Sub)
  • Страница 1 из 1
  • 1
Поиск:

Яндекс.Метрика Яндекс цитирования
© 2010-2024 · Дизайн: MichaelCH · Хостинг от uCoz · При использовании материалов сайта, ссылка на www.excelworld.ru обязательна!