Между ключ1 и ключ3 надо вывести: 1) Строки без ключ2 остаются в прежнем виде "лд фырфыл" и "лво фырдло". 2) В строках где найдены ключ2 дописать от верхней строки (которая находится до этой последовательности строк начинающихся на ключ2) ("лд фырфыл") то, что до первого пробела и получить "лд ключ2 лвофырдло", "лд ключ2 лв300дло". Аналогично со строкой "ключ2 лв312дло": в ней найден ключ2, значит надо вывести "лво ключ2 лв312дло" где начало берётся из строки перед этим ключем ключ2.
Между ключ3 и ключ5 надо вывести: 1) Объединение в одну строку каждой второй строки с первой (между ними я поставил символы "->") причём сначала вторую, разделительный знак, и потом уже предыдущую строку. 2) При нахождении ключ4 брать после него символы до первого пробела и ставить их в ячейку столбца А, остаток символов ставить в ячейку столбца В, так получаем: "1-дыв --- лоажы д" и "3-1234 --- укшу".
После ключ5: 1) После "ключ5" строки выводятся одной строкой.
Исходные данные: Столбец А - номера клиентов Столбец В - информация по клиентам. Чёткое соответствие: одна ячейка с номером - одна ячейка с информацией. Проблема: ячейка с информацией содержит очень много информации (порядка 20 строк)(есть ключевые слова по которым надо отформатировать, но это позже...). Научите, как сделать макрос, который будет создавать под первой строкой 20 новых строк, под бывшей второй строкой 17 новых строк, под бывшей третей строкой 19 новых строк... Как сделать счётчик строк (допустим считать "СИМВОЛ(10)") и создавать колличество строк равное значению счётчика? Обрабатывать строки, пока не наткнёмся на пустую.
Помогите разобраться, имею понятие что надо делать, что считать, не знаю как на язык понятный компьютеру перевести)
PerfectVam, спасибо Вам огромное за Ваш профессионализм. Вроде как работает) Многое надо руками делать, но зато по несколько десятков тысяч строк сортирует само. Спасибо ещё раз. Всем спасибо
Апостроф вставил для того, что бы номера телефонов начинающиеся на "+" не делали ячейку формулой (то-есть банально выскакивала ошибка).
Из исходной таблицы я буду перетаскивать столбцы в документ, в котором будут прописаны макросы-модули и формулы. Так я получу столбец №1 с ячейками, где будут один или несколько номеров в отформатированном виде с разделителем между ними " ". И получу столбец №2 с ячейками, где будут необходимые данные к этим номерам. Таким образом у меня будет 2 столбца с соблюдением соответствия НОМЕРА-ДАННЫЕ. Дальше я эти столбцы буду вкидывать в следующий файл, где лежит макрос "с яркой кнопкой " Там столбец №1 будет вставлен в столбец, где должны быть номера, а столбец №2 - в первый столбец из прикреплённого файла с макросом, т.к. я понял, что именно он является неким счётчиком... Планирую сделать так. Возможно, формулы-модули помещу в файл с макросом на отдельный лист.
Как переделать данный макрос (прикреплённый файл) что б номера вставлять не в 10 столбец, а в первый? (мне надо всего 2 столбца...)
Где-то встречал макрос с яркой кнопкой, который делал то, что мне нужно, но найти никак не могу. Там в 10 столбце проверялась каждая ячейка, и если обнаруживалось несколько телефонных номеров, то добавлялось снизу этой строки ещё несколько строк, что бы расписать эти номера по отдельным строкам...
Что я могу сам: отфильтровать всю нужную информацию в одну строку с любыми разделительными знаками. Знаком с функциями с помощью которых можно отделить это всё. Что у меня не получается: вставить 1 или 2 новых строки в зависимости от того, сколько номеров в ячейке.
В примере на "Лист1" желаемый результат. Строк в файле очень много. У меня время-от-времени появляются такие файлы, их необходимо упорядочить. Помогите, пожалуйста. Необходимый минимум: формулой при выполнении некоторого условия вставлять ниже определённое количество строк. Такой формулы не нашёл. Могу организовать столбец где будет выведено это количество.
Вот этот макрос добавляет. Как сделать, что бы ещё и вставлял второй номер из ячейки в строку ниже, третий номер из ячейки ещё ниже?
Код
Sub Duplicate_Rows()
Dim cell As Range
Set cell = Range("B2") 'первая ячейка в столбце с кол-вом билетов
Do While Not IsEmpty(cell)
If cell > 1 Then
cell.Offset(1, 0).Resize(cell.Value - 1, 1).EntireRow.Insert 'вставляем N пустых строк
cell.Resize(cell.Value, 1).EntireRow.FillDown 'заполняем вниз из первых ячеек
End If
Set cell = cell.Offset(cell.Value, 0)
Loop
End Sub