Страницы: 1
RSS
перемещение\удаление текста по условию
 
Помогите, молю!!! Мучаюсь уже целый день.
Есть огроменная база по ключам от ящиков, там прописан макрос расширенной сортировки - вбиваем улицу, номер дома и база фильтруется. Также добавлен макрос, если нет совпадений меняет текст на красный. Обычно текст вбивается вручную, нужно его вводить вручную методом копировать-вставить(чтоб быстрее было), причём копируется это с другой книги охапкой вместе с пустыми строками(пример копируемого диапазона указал в файле). Проблема - копируемые адреса идут слитно в одной ячейки - (Гринкевича просп., д.3А, кв.37), а сортировка рассчитана только на простые адреса без "ул.","бульв.","просп.","пер.","пл." и в двух ячейках - (Гринкевича) (3А), а так же без кв.37(это вообще не нужно). Причём переименовать все ячейки на полноценный адрес нельзя т.к. база постоянно редактируется вручную(перемещаются ящики, места, адреса добавляются) и это будет неудобно, париться с "ул.","бульв.","просп.","пер.","пл."                
НЕОБХОДИМО:  
1.При изменении ячейки\диапазона ячеек(D2:D16)(методом вставки или в ручную) удаляло "ул.","бульв.","просп.","пер.","пл.", "кв. и то что после неё".
2.Переносить то что после последнего пробела(номер дома) в столбец E.
3.Если в диапазоне строк(2:16) одна строка пустая то переносить на её место нижнюю заполненную, если есть такая.(проблема в том что если есть пропуски то нижние строки оно уже не ищет)

3й пункт не особо важен, а вот 1й и 2й жизненно необходимы - ХЕЛП! кто что сможет - помогите.
 
Цитата
Проблема - копируемые адреса идут слитно в одной ячейки - (Гринкевича просп., д.3А, кв.37),
Еще одна проблема - в копируемых адресах есть улицы, которых нет в основной базе.
В копируемых адресах улица всегда первое слово?
Перед номером дома всегда стоит д. и он ограничен с обоих сторон запятыми?
Копируйте адреса в колонку J (как у вас в примере), макросом выделяйте улицу и номер дома
и переносите диапазон в столбцы D и E.
 
Это не проблема - это я специально для примера указал те адреса которых нет, чтоб показать как работает прописанный макрос по окрашиванию отсутствующих адресов(перекрашивает в красный).

В копируемых адресах улица всегда первая, но кстати бывает и тяжёлые улицы типа 50 лет СССР, 25 лет РККА, 50 Гвардейской Дивизии.

Перед номером всегда стоит дом и он ограничен запятыми.(например "ул., д.114, кв.6" эта часть всегда одинаковая, меняется только номер кв., номер дома и ул. на проспект, бульвар и т.п.)

И последнее с копированием в колонку J это хорошее решение, но пока не могу этого сделать - не сильно силён, надо покумекать, но по возможности прошу вашей помощи.
 
Цитата
с копированием в колонку J
Кликаете на кнопку Перенести диапазон
тяжёлые улицы не рассматривал
 
Великолепно! С тяжёлыми адресами я думаю сам разберусь. Благодарю!
 
Сори что беспокою так часто, но опять дилемма. Вставляя копируемый диапазон в столбец J, если в нём есть пустые ячейки(как и задумывалось) оно удаляет всю строку -  Cells(i, "J").Resize(, 3).Delete Shift:=xlUp , что приводит к постепенному исчезновению всех строк до общей базы D18:D, впоследствии и удаление самой базы адресов. Можно как то не удалять строки диапазона J2:J16, а если она будет пустой перемещать на её место текст нижней ячейки и так до J16.
Или может быть есть ещё какойто вариант, допустим когда макрос копирует итог с K2:K16  и вставляет его в D2:D16 задать условие чтоб копировало кроме пустых строк.
 
Цитата
если в нём есть пустые ячейки(как и задумывалось) оно удаляет всю строку -  Cells(i, "J").Resize(, 3).Delete Shift:=xlUp
Удаляется не вся строка, а только пустые ячейки в столбцах J,K и L со сдвигом ячеек вверх.
В сообщении #4 попробуйте в файле вставить диапазон в столбец J , где есть пустые строки,
и запустите макрос.
 
точно! так и есть - всё норм, чтото я вообще уже окосел - мерещица уже. Ещё раз спасибо!
 
Надо бы еще в макрос вставить очистку диапазона
Код
    Range("D2:E12").ClearContents
перед циклом
Код
 For i = iLastRow To 2 Step -1
Страницы: 1
Наверх