Здравствуйте! Подскажите есть ли способ как собрать данные из нескольких строк в столбец. Есть бирка: Заказ 214 Марка Г 172А Профиль L 63х5 Длина 1816 Кол-во 4 Вес 34.96
Таких бирок много (скажем 90), и они расположены, три в ряд и вниз более 30 штук Мне нужно собрать строку например "Марка" и/или "Профиль" в столбец по порядку сверху вниз. В приложении образец таблицы. Желтым выделил столбец куда нужно поместить. P.S. Нужно именно понять как это работает, ближайший месяц это надо будет делать через день да каждый день... Заранее благодарю.
Здравствуйте! Подскажите есть ли способ как собрать данные из нескольких строк в столбец. Есть бирка: Заказ 214 Марка Г 172А Профиль L 63х5 Длина 1816 Кол-во 4 Вес 34.96
Таких бирок много (скажем 90), и они расположены, три в ряд и вниз более 30 штук Мне нужно собрать строку например "Марка" и/или "Профиль" в столбец по порядку сверху вниз. В приложении образец таблицы. Желтым выделил столбец куда нужно поместить. P.S. Нужно именно понять как это работает, ближайший месяц это надо будет делать через день да каждый день... Заранее благодарю.SchwarzerKaiser
Расстояние по вертикали между бирками различно. Это так всегда будет или просто косяк? Пример: пустые строки 8-11 - всего 4 строки и пустые строки 18-22 - всего 5 строк
Расстояние по вертикали между бирками различно. Это так всегда будет или просто косяк? Пример: пустые строки 8-11 - всего 4 строки и пустые строки 18-22 - всего 5 строк_Boroda_
Удобнее выводить результат на другой лист, т.к. на листе 1 есть строки с маленькой высотой и не видно текста. Макрос двигается по листу 1, если в столбце "C" есть слово "Марка", то копирует данные из этой строки, из столбцов D, K, R на лист 2. В самом файле макроса нет, файлом я показываю, в каком файле будет работать макрос.
[vba]
Код
Sub Собрать()
Dim shSrc As Worksheet, shRes As Worksheet Dim arr(), arrRes(), lr As Long, i As Long, j As Long, r As Long
Application.ScreenUpdating = False
Set shSrc = Worksheets("Лист1") Set shRes = Worksheets("Лист2")
lr = shRes.Cells(shRes.Rows.Count, "A").End(xlUp).Row shRes.Range("A1:A" & lr).ClearContents
lr = shSrc.Columns("A:U").Find(What:="*", LookIn:=xlFormulas, LookAt:= _ xlPart, SearchOrder:=xlByRows, SearchDirection:=xlPrevious, MatchCase:=False _ , SearchFormat:=False).Row arr() = shSrc.Range("A1:U" & lr).Value ReDim arrRes(1 To UBound(arr) * 3, 1 To 1)
For i = 1 To UBound(arr) If arr(i, 3) = "Марка" Then For j = 4 To 18 Step 7 r = r + 1 arrRes(r, 1) = arr(i, j) Next j End If Next i
Удобнее выводить результат на другой лист, т.к. на листе 1 есть строки с маленькой высотой и не видно текста. Макрос двигается по листу 1, если в столбце "C" есть слово "Марка", то копирует данные из этой строки, из столбцов D, K, R на лист 2. В самом файле макроса нет, файлом я показываю, в каком файле будет работать макрос.
[vba]
Код
Sub Собрать()
Dim shSrc As Worksheet, shRes As Worksheet Dim arr(), arrRes(), lr As Long, i As Long, j As Long, r As Long
Application.ScreenUpdating = False
Set shSrc = Worksheets("Лист1") Set shRes = Worksheets("Лист2")
lr = shRes.Cells(shRes.Rows.Count, "A").End(xlUp).Row shRes.Range("A1:A" & lr).ClearContents
lr = shSrc.Columns("A:U").Find(What:="*", LookIn:=xlFormulas, LookAt:= _ xlPart, SearchOrder:=xlByRows, SearchDirection:=xlPrevious, MatchCase:=False _ , SearchFormat:=False).Row arr() = shSrc.Range("A1:U" & lr).Value ReDim arrRes(1 To UBound(arr) * 3, 1 To 1)
For i = 1 To UBound(arr) If arr(i, 3) = "Марка" Then For j = 4 To 18 Step 7 r = r + 1 arrRes(r, 1) = arr(i, j) Next j End If Next i
_Boroda_, автор таблицы не я, и да, там люди с excel ещё хуже чем я, поэтому, даже если я им сделаю на следующий раз они при копировании ( когда будет больше бирок) все равно сделают "как получилось" Karataev, на другой лист я и планировал как раз по этой причине. Макрос попробовал, работает. Остался только один вопрос тогда - есть ли возможность сделать ещё макросы? Когда по коду создал и открываю макросы - кнопка создать уже неактивна. Хотя, думаю, проще воткнуть все нужные поля в один макрос. Подскажете как поправить его ещё на "профиль". Я не очень понимаю пока какую часть копировать.
_Boroda_, автор таблицы не я, и да, там люди с excel ещё хуже чем я, поэтому, даже если я им сделаю на следующий раз они при копировании ( когда будет больше бирок) все равно сделают "как получилось" Karataev, на другой лист я и планировал как раз по этой причине. Макрос попробовал, работает. Остался только один вопрос тогда - есть ли возможность сделать ещё макросы? Когда по коду создал и открываю макросы - кнопка создать уже неактивна. Хотя, думаю, проще воткнуть все нужные поля в один макрос. Подскажете как поправить его ещё на "профиль". Я не очень понимаю пока какую часть копировать.SchwarzerKaiser
Сделал Вам стандартизированную форму, выпадающий список показателей в бирках и далее формулой (конечно, я с Олегом полностью солидарен - нужно делать на другом листе)
А по поводу заполнения - просто заранее сделайте 1000 строк уже готового шаблона и заблокируйте все, кроме ввода нужных данных
Сделал Вам стандартизированную форму, выпадающий список показателей в бирках и далее формулой (конечно, я с Олегом полностью солидарен - нужно делать на другом листе)
Благодарю всех за помощь! _Boroda_, с формулой попробую разобраться, но не очень пока понял куда её вставлять. В вашем примере все работает, но массив данных может измениться. Но я попробую разобраться. Karataev, С последним макросом пока не изучу основы создания, видимо, разобраться не выйдет, но у меня получилось сделать 5 макросов из первого сообщения вашего и в шестом собрать их в один, через оператор "CALL"... Наверняка "костыли" но работает и это, пока, главное. Единственное, что если где должна быть первая бирка пусто он этот ряд пропускает. Вчера надо было из массива выбирать и пришлось в первую строчку добавлять копии "бирки", чтобы он все нужные зацепил и отработал. Тоже "костыли", но когда-нибудь я разберусь с этим.
Благодарю всех за помощь! _Boroda_, с формулой попробую разобраться, но не очень пока понял куда её вставлять. В вашем примере все работает, но массив данных может измениться. Но я попробую разобраться. Karataev, С последним макросом пока не изучу основы создания, видимо, разобраться не выйдет, но у меня получилось сделать 5 макросов из первого сообщения вашего и в шестом собрать их в один, через оператор "CALL"... Наверняка "костыли" но работает и это, пока, главное. Единственное, что если где должна быть первая бирка пусто он этот ряд пропускает. Вчера надо было из массива выбирать и пришлось в первую строчку добавлять копии "бирки", чтобы он все нужные зацепил и отработал. Тоже "костыли", но когда-нибудь я разберусь с этим.SchwarzerKaiser
У меня нет средств содержать совесть
Сообщение отредактировал SchwarzerKaiser - Суббота, 28.04.2018, 06:54
InExSu, выглядит здорово. Но при изменении количества бирок (два ряда, например всего) он прежние значения не убирает. Замена этих строк идет (новых), но ниже предыдущие значения остаются. Пустые он пропускает и по порядку дальше пишет - удобно. И возможно сделать чтобы цветовое форматирование дублировалось в "накопителе"?
InExSu, выглядит здорово. Но при изменении количества бирок (два ряда, например всего) он прежние значения не убирает. Замена этих строк идет (новых), но ниже предыдущие значения остаются. Пустые он пропускает и по порядку дальше пишет - удобно. И возможно сделать чтобы цветовое форматирование дублировалось в "накопителе"?SchwarzerKaiser