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

Вход

Регистрация

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

 

= Мир MS Excel/Макрос - Склеивание из нескольких ячеек + добавление текста - Мир MS Excel

Старая форма входа
  • Страница 1 из 1
  • 1
Модератор форума: китин, _Boroda_  
Мир MS Excel » Вопросы и решения » Вопросы по VBA » Макрос - Склеивание из нескольких ячеек + добавление текста (Макросы/Sub)
Макрос - Склеивание из нескольких ячеек + добавление текста
Sappheiros Дата: Четверг, 16.10.2014, 18:26 | Сообщение № 1
Группа: Пользователи
Ранг: Прохожий
Сообщений: 2
Репутация: 0 ±
Замечаний: 0% ±

Excel 2007
Доброго всем дня. Требуется Ваша помощь! За помощь готов отблагодарить ;).
Имеется прайс в excel с несколькими столбцами, необходимо объединить некоторые столбцы в один, но так что бы текст из каждого объединённого столбца начинался с новой строки.
Так же хотелось бы что бы он объединял к примеру столбец 1,2,3 со значения 10,20,30 таким образом что бы к нужному столбцу добавлял свой текст и так же начинал с новой строки.

например имеем значения в разных столбцах (разделитель между столбцами запятая):
10,20,30

получаем (всё в одной ячейке, и каждое значение с новой строки + добавленный текст):
ширина|10
профиль|20
диаметр|30

Что бы было понятно, прикладываю картинку, а так же сам прайс. - 1 строка как надо сделать, последующие как есть в прайсе на данный момент.


Сейчас приходится:
1) с помощью "поиск/замена" редактировать каждую из колонок что бы добавить дополнительный текст.
2) с помощью макроса объединять столбцы в один



3) опять с помощью "поиск/замена" в получившемся столбце менять пробелы на перенос строки.
К сообщению приложен файл: 1300136.xls (40.0 Kb)


Сообщение отредактировал Sappheiros - Четверг, 16.10.2014, 18:54
 
Ответить
СообщениеДоброго всем дня. Требуется Ваша помощь! За помощь готов отблагодарить ;).
Имеется прайс в excel с несколькими столбцами, необходимо объединить некоторые столбцы в один, но так что бы текст из каждого объединённого столбца начинался с новой строки.
Так же хотелось бы что бы он объединял к примеру столбец 1,2,3 со значения 10,20,30 таким образом что бы к нужному столбцу добавлял свой текст и так же начинал с новой строки.

например имеем значения в разных столбцах (разделитель между столбцами запятая):
10,20,30

получаем (всё в одной ячейке, и каждое значение с новой строки + добавленный текст):
ширина|10
профиль|20
диаметр|30

Что бы было понятно, прикладываю картинку, а так же сам прайс. - 1 строка как надо сделать, последующие как есть в прайсе на данный момент.


Сейчас приходится:
1) с помощью "поиск/замена" редактировать каждую из колонок что бы добавить дополнительный текст.
2) с помощью макроса объединять столбцы в один



3) опять с помощью "поиск/замена" в получившемся столбце менять пробелы на перенос строки.

Автор - Sappheiros
Дата добавления - 16.10.2014 в 18:26
nilem Дата: Четверг, 16.10.2014, 20:23 | Сообщение № 2
Группа: Авторы
Ранг: Старожил
Сообщений: 1613
Репутация: 563 ±
Замечаний: 0% ±

Excel 2013, 2016
Привет, Sappheiros
как-то так?:
[vba]
Код
Sub ertert()
Dim x, i&, j&, t$, arr
arr = Array(6, "Шины|Ширина|", 7, "Шины|Профиль|", 8, "Шины|Диаметр|", 9, "Шины|Сезонность|", _
             11, "Шины|Шип|", 12, "Шины|Скорость|", 13, "Шины|Нагрузка|")
With Range("A1:M" & Cells(Rows.Count, 1).End(xlUp).Row)
     x = .Value
     For i = 1 To UBound(x)
         If InStr(x(i, 6), Chr(10)) = 0 Then
             For j = 0 To UBound(arr) Step 2
                 t = t & arr(j + 1) & x(i, arr(j)) & Chr(10)
             Next j
             x(i, 6) = Mid(t, 1, Len(t) - 1): t = vbNullString
         End If
     Next i
     .ClearContents: .Resize(UBound(x), 6).Value = x
End With
End Sub
[/vba]


Яндекс.Деньги 4100159601573

Сообщение отредактировал nilem - Четверг, 16.10.2014, 20:25
 
Ответить
СообщениеПривет, Sappheiros
как-то так?:
[vba]
Код
Sub ertert()
Dim x, i&, j&, t$, arr
arr = Array(6, "Шины|Ширина|", 7, "Шины|Профиль|", 8, "Шины|Диаметр|", 9, "Шины|Сезонность|", _
             11, "Шины|Шип|", 12, "Шины|Скорость|", 13, "Шины|Нагрузка|")
With Range("A1:M" & Cells(Rows.Count, 1).End(xlUp).Row)
     x = .Value
     For i = 1 To UBound(x)
         If InStr(x(i, 6), Chr(10)) = 0 Then
             For j = 0 To UBound(arr) Step 2
                 t = t & arr(j + 1) & x(i, arr(j)) & Chr(10)
             Next j
             x(i, 6) = Mid(t, 1, Len(t) - 1): t = vbNullString
         End If
     Next i
     .ClearContents: .Resize(UBound(x), 6).Value = x
End With
End Sub
[/vba]

Автор - nilem
Дата добавления - 16.10.2014 в 20:23
Sappheiros Дата: Четверг, 16.10.2014, 22:16 | Сообщение № 3
Группа: Пользователи
Ранг: Прохожий
Сообщений: 2
Репутация: 0 ±
Замечаний: 0% ±

Excel 2007
nilem, Огромное спасибо!
А подскажите ещё такой момент.



Я так понимаю что указанные цифры в этой строке, это номера колонок, то есть если колонка сместится, то необходимо будет указать уже другой номер - всё верно?
p.s. к сожалению проверить смогу лишь завтра, если всё гуд, то с меня презент booze

p.p.s. а как можно вырезать артикул в отдельную колонку (первые цифры до пробела в 3 колонке)?


Сообщение отредактировал Sappheiros - Четверг, 16.10.2014, 22:24
 
Ответить
Сообщениеnilem, Огромное спасибо!
А подскажите ещё такой момент.



Я так понимаю что указанные цифры в этой строке, это номера колонок, то есть если колонка сместится, то необходимо будет указать уже другой номер - всё верно?
p.s. к сожалению проверить смогу лишь завтра, если всё гуд, то с меня презент booze

p.p.s. а как можно вырезать артикул в отдельную колонку (первые цифры до пробела в 3 колонке)?

Автор - Sappheiros
Дата добавления - 16.10.2014 в 22:16
nilem Дата: Четверг, 16.10.2014, 23:43 | Сообщение № 4
Группа: Авторы
Ранг: Старожил
Сообщений: 1613
Репутация: 563 ±
Замечаний: 0% ±

Excel 2013, 2016
указанные цифры в этой строке, это номера колонок

да
как можно вырезать артикул

что-то типа такого
[vba]
Код
x(i,3)=split(x(i,3))(0)
[/vba]


Яндекс.Деньги 4100159601573
 
Ответить
Сообщение
указанные цифры в этой строке, это номера колонок

да
как можно вырезать артикул

что-то типа такого
[vba]
Код
x(i,3)=split(x(i,3))(0)
[/vba]

Автор - nilem
Дата добавления - 16.10.2014 в 23:43
Мир MS Excel » Вопросы и решения » Вопросы по VBA » Макрос - Склеивание из нескольких ячеек + добавление текста (Макросы/Sub)
  • Страница 1 из 1
  • 1
Поиск:

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