|
|
Регистрация Восстановить пароль |
Регистрация | Задать вопрос |
Заплачу за решение |
Новые сообщения |
Сообщения за день |
Расширенный поиск |
Правила |
Всё прочитано |
|
|
Опции темы | Поиск в этой теме |
11.12.2009, 10:06 | #1 |
Пользователь
Регистрация: 09.12.2009
Сообщений: 22
|
Нестандартный перенос по словам в нижние ячейки с условиями
Добрый день! Помогите написать макрос...
Вчера Уважаемый SAS888 помог мне понять как можно отсортировать данные в таблице с использованием макроса, сейчас столкнулся с новой проблемой, и уже на основе макроса SAS888 записал свой. В прикрепленном файле пример в каком виде поступают данные (вкладка "Исходный" ) и конечный результат, который должен получить (вкладка "Конечный") я записал макрос, который сортирует данные по порядку, меняет шрифт, устанавливает ширину столбцов, ну и еще выполняет пару -тройку вспомогательных операций. Теперь суть вопроса: После применения макроса получается результат (вкладка "промежуточный") в котором в столбце "В" содержимое не умещается в некоторых ячейках, важно что бы ширина столбца "В" оставалась такой какой она стала после применения макроса, а все что не умещается в переполненную ячейку переносилось по словам в ячейку ниже от переполненной в том же столбце. соответственно для этого сначала нужно добавить пустую строку и в нее и записать то что не вместилось. Если же второй строки тоже окажется мало - добавить третью и перенести все что не вместилось во вторую и так далее. После выполнения всех операций строку содержащую текст "НОМЕР/ НАИМЕНОВАНИЕ/МАРКА/ АРТИКУЛ/ИЗГОТОВИТЕЛЬ/ЕДИЗМ/Количество/ МАССА" можно либо совсем удалить, либо переместить в самый верх таблицы. А перед каждой группой данных начинающихся с новой буквы добавить пустую строку. Все что должно получиться на вкладке "Конечный". обратите внимание на поз. А, Л-2, О-23, С-14. P/S/ Прошу прощения в коде макроса нужно заменить Range("A1:H62").Select на Range("A1:L10000").Select Последний раз редактировалось Sirius2w; 11.12.2009 в 11:40. Причина: уточнение |
11.12.2009, 11:10 | #2 |
Старожил
Регистрация: 05.12.2007
Сообщений: 4,180
|
Пример во вложении.
Чем шире угол зрения, тем он тупее.
|
11.12.2009, 11:21 | #3 |
Пользователь
Регистрация: 09.12.2009
Сообщений: 22
|
К сожалению основная проблема не решена.... перенос по строкам нужен не в одной ячейке а именно в другую - новую, созданную ниже исходной строки и так далее... текст может быть длинным заранее его длины я не знаю и сколько соответственно строк придется добавить ниже - неизвестно.
|
11.12.2009, 12:04 | #4 |
Старожил
Регистрация: 05.12.2007
Сообщений: 4,180
|
Зачем? По-моему, лучше, когда каждой записи соответствует одна строка. Ширина столбца, заданная Вами не изменяется. Данные переносятся по словам. Зачем "плодить" строки? А если Вы завтра захотите что-нибудь добавить к этому макросу, то в предложенном мной варианте все будет просто. А при добавленных строках нужно будет снова разбирать всю эту путаницу.
P.S. Совет на будущее: Чтобы не усложнять себе жизнь, также, без особой необходимости не используйте объединение ячеек.
Чем шире угол зрения, тем он тупее.
Последний раз редактировалось SAS888; 11.12.2009 в 12:06. Причина: Добавлено |
11.12.2009, 12:23 | #5 |
Пользователь
Регистрация: 09.12.2009
Сообщений: 22
|
Дело в том, что эти все данные выгружаются из файла автокада, обрабатяваются в экселе (что сейчас пытаемся сделать) и обратно возврящаются в автокад в сводную таблицу определенного формата. Многострочные ячейки сбивают форматирование сводной автокадовской таблицы, поэтому задача именно такая, что бы в ячейке была только одна строка, все что не помещается - продолжается в ячейке новоой строки ниже исходной.
В 2010 автокаде есть возможность сразу создать таблицу без использования экселя, но там тупая сортировка и редактировать длинную таблицу чревато... из-за большого размера файла комп начинает тупить (у меня оперативки 3,12гб и то не справляется ). Поэтому использование экселя значительно облегчает жизнь. А готовую автокадовскую таблицу просто печатаю и все. Всеравно спасибо Вам за помощь, но если это невозможно сделать буду мучаться дальше. П.С. Вы не ответили на счет магарыча ;-) Кстати я внимательно изучил Ваш макрос. Действительно все просто. понятно и функционально. (по сравнению с моим) вы в ручную его написали? |
11.12.2009, 12:28 | #6 |
Старожил
Регистрация: 05.12.2007
Сообщений: 4,180
|
Сегодня уже помочь не смогу. Убегаю. На форуме буду только в понедельник. Задача не сложная. Если Вам никто не поможет и если для Вас еще не будет поздно, то подождите.
P.S. магарычем "чокнемся" виртуально.
Чем шире угол зрения, тем он тупее.
|
11.12.2009, 13:39 | #7 | |
Пользователь
Регистрация: 09.12.2009
Сообщений: 22
|
Цитата:
Наш отдел, и я - благодарм Вас за оказанную помощь :-) 391-729-342 - моя Аська |
|
14.12.2009, 12:56 | #8 |
Старожил
Регистрация: 05.12.2007
Сообщений: 4,180
|
Посмотрите один из возможных вариантов. Устроит?
Чем шире угол зрения, тем он тупее.
|
14.12.2009, 13:23 | #9 |
Пользователь
Регистрация: 09.12.2009
Сообщений: 22
|
Я еще не все опробовал - но вроде бы все работает отлично ;-)
ОГРОМНОЕ СПАСИБО!!!! К вам еще можно будет если что обращаться? |
14.12.2009, 13:39 | #10 |
Старожил
Регистрация: 05.12.2007
Сообщений: 4,180
|
На форуме есть много компетентных программистов. Обращайтесь. Всегда поможем. для частных обращений есть ЛС (ICQ и e-mail см. в профиле).
Чем шире угол зрения, тем он тупее.
|
|
Похожие темы | ||||
Тема | Автор | Раздел | Ответов | Последнее сообщение |
Перенос по словам в ListBox | nikolai_P | Microsoft Office Excel | 2 | 25.01.2013 12:08 |
Перенос данных в нужные ячейки через VBA | Detockin | Microsoft Office Excel | 0 | 12.03.2009 12:04 |
Перенос данніх в зависимости от цвета ячейки | gavrylyuk | Microsoft Office Excel | 8 | 08.08.2008 19:11 |