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

Вход

Регистрация

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

 

= Мир MS Excel/Копирование конкретных значений строк по условиям - Мир MS Excel

Старая форма входа
  • Страница 1 из 2
  • 1
  • 2
  • »
Модератор форума: китин, _Boroda_  
Мир MS Excel » Вопросы и решения » Вопросы по VBA » Копирование конкретных значений строк по условиям (Макросы/Sub)
Копирование конкретных значений строк по условиям
cmivadwot Дата: Суббота, 24.02.2024, 22:56 | Сообщение № 1
Группа: Проверенные
Ранг: Обитатель
Сообщений: 455
Репутация: 86 ±
Замечаний: 0% ±

365
Добрый вечер. Прошу помощи с задачей. Пример и желаемый результат прилагаю. Внутри макрос по копированию строк, указанное в ячейке количество раз.. но это не то...
К сообщению приложен файл: kopirovanie_strok_po_uslovijam.xlsm (28.3 Kb)
 
Ответить
СообщениеДобрый вечер. Прошу помощи с задачей. Пример и желаемый результат прилагаю. Внутри макрос по копированию строк, указанное в ячейке количество раз.. но это не то...

Автор - cmivadwot
Дата добавления - 24.02.2024 в 22:56
Nic70y Дата: Понедельник, 26.02.2024, 08:59 | Сообщение № 2
Группа: Друзья
Ранг: Экселист
Сообщений: 8761
Репутация: 2273 ±
Замечаний: 0% ±

Excel 2010
[vba]
Код
Sub u_74()
    Application.ScreenUpdating = False
    a = Range("a5").End(xlDown).Row
    For Each b In Range("am5:ap" & a)
        c = b.Value
        If c <> "" Then
            d = c & ","
            e = Len(d)
            f = Replace(d, ",", "")
            g = Len(f)
            h = e - g
            For i = 1 To h
                j = b.Row
                o = b.Column
                k = InStr(d, ",")
                l = Left(d, k - 1)
                m = l * 3 + 3
                n = l * 3 + 5
                p = Cells(Rows.Count, "a").End(xlUp).Row + 1
                r = Application.Max(p, a + 2)
                Range("a" & j & ":ap" & j).Copy Range("a" & r)
                Range("a" & r & ":ap" & r).ClearContents
                Range("a" & j & ":e" & j).Copy Range("a" & r)
                Range(Cells(j, m), Cells(j, n)).Copy Cells(r, m)
                Range("aj" & j & ":al" & j).Copy Range("aj" & r)
                Cells(r, o) = i
                Range("aq" & r) = Cells(3, o).Value
                Range("ar" & r) = i
                Range("aq" & r & ":ar" & r).Interior.Color = 65535
                d = Mid(d, k + 1, e)
            Next
        End If
    Next
    Application.ScreenUpdating = True
End Sub
[/vba]
К сообщению приложен файл: 12.xlsm (28.0 Kb)


ЮMoney 41001841029809
 
Ответить
Сообщение[vba]
Код
Sub u_74()
    Application.ScreenUpdating = False
    a = Range("a5").End(xlDown).Row
    For Each b In Range("am5:ap" & a)
        c = b.Value
        If c <> "" Then
            d = c & ","
            e = Len(d)
            f = Replace(d, ",", "")
            g = Len(f)
            h = e - g
            For i = 1 To h
                j = b.Row
                o = b.Column
                k = InStr(d, ",")
                l = Left(d, k - 1)
                m = l * 3 + 3
                n = l * 3 + 5
                p = Cells(Rows.Count, "a").End(xlUp).Row + 1
                r = Application.Max(p, a + 2)
                Range("a" & j & ":ap" & j).Copy Range("a" & r)
                Range("a" & r & ":ap" & r).ClearContents
                Range("a" & j & ":e" & j).Copy Range("a" & r)
                Range(Cells(j, m), Cells(j, n)).Copy Cells(r, m)
                Range("aj" & j & ":al" & j).Copy Range("aj" & r)
                Cells(r, o) = i
                Range("aq" & r) = Cells(3, o).Value
                Range("ar" & r) = i
                Range("aq" & r & ":ar" & r).Interior.Color = 65535
                d = Mid(d, k + 1, e)
            Next
        End If
    Next
    Application.ScreenUpdating = True
End Sub
[/vba]

Автор - Nic70y
Дата добавления - 26.02.2024 в 08:59
cmivadwot Дата: Понедельник, 26.02.2024, 13:30 | Сообщение № 3
Группа: Проверенные
Ранг: Обитатель
Сообщений: 455
Репутация: 86 ±
Замечаний: 0% ±

365
Nic70y, День добрый. Супер, но не совсем так (выделил красным) и если не затруднит, прокомментировать строки. Нет пока возможности оригинальный файл выложить. Придется адаптировать под него.
К сообщению приложен файл: 7939244.xlsm (28.0 Kb)
 
Ответить
СообщениеNic70y, День добрый. Супер, но не совсем так (выделил красным) и если не затруднит, прокомментировать строки. Нет пока возможности оригинальный файл выложить. Придется адаптировать под него.

Автор - cmivadwot
Дата добавления - 26.02.2024 в 13:30
Nic70y Дата: Понедельник, 26.02.2024, 14:22 | Сообщение № 4
Группа: Друзья
Ранг: Экселист
Сообщений: 8761
Репутация: 2273 ±
Замечаний: 0% ±

Excel 2010
cmivadwot, подправил, немного изменил, прокомментировал,
если что не понятно, спрашивайте
К сообщению приложен файл: 415.xlsm (25.5 Kb)


ЮMoney 41001841029809
 
Ответить
Сообщениеcmivadwot, подправил, немного изменил, прокомментировал,
если что не понятно, спрашивайте

Автор - Nic70y
Дата добавления - 26.02.2024 в 14:22
cmivadwot Дата: Среда, 28.02.2024, 14:31 | Сообщение № 5
Группа: Проверенные
Ранг: Обитатель
Сообщений: 455
Репутация: 86 ±
Замечаний: 0% ±

365
Nic70y, День добрый, спасибо.Как подправить макрос.. для копирования не 3 , а 2 столбиков? С диапазонами вроде как все понятно как править, а вот m = l * 3 + 3 'столбец копирования левый, n = l * 3 + 5 'столбец копирования правый, Range(Cells(j, m), Cells(j, n)).Copy Cells(r, m) 'копируем - вставляем три ячейки
я со своим французским никак не вкурю.
К сообщению приложен файл: 415_1.xlsm (24.3 Kb)
 
Ответить
СообщениеNic70y, День добрый, спасибо.Как подправить макрос.. для копирования не 3 , а 2 столбиков? С диапазонами вроде как все понятно как править, а вот m = l * 3 + 3 'столбец копирования левый, n = l * 3 + 5 'столбец копирования правый, Range(Cells(j, m), Cells(j, n)).Copy Cells(r, m) 'копируем - вставляем три ячейки
я со своим французским никак не вкурю.

Автор - cmivadwot
Дата добавления - 28.02.2024 в 14:31
Nic70y Дата: Среда, 28.02.2024, 14:36 | Сообщение № 6
Группа: Друзья
Ранг: Экселист
Сообщений: 8761
Репутация: 2273 ±
Замечаний: 0% ±

Excel 2010
cmivadwot, на 2 три столбца
это ошибка?

апдэйт
удалил столбец,
обозначил изменяемое в комментария: ////
К сообщению приложен файл: 627.xlsm (24.1 Kb)


ЮMoney 41001841029809

Сообщение отредактировал Nic70y - Среда, 28.02.2024, 14:53
 
Ответить
Сообщениеcmivadwot, на 2 три столбца
это ошибка?

апдэйт
удалил столбец,
обозначил изменяемое в комментария: ////

Автор - Nic70y
Дата добавления - 28.02.2024 в 14:36
cmivadwot Дата: Среда, 28.02.2024, 14:56 | Сообщение № 7
Группа: Проверенные
Ранг: Обитатель
Сообщений: 455
Репутация: 86 ±
Замечаний: 0% ±

365
Nic70y, оперативно. Спасибо. Не ошибка. Есть вариации на 2 и 3 столбца в оригинале.
 
Ответить
СообщениеNic70y, оперативно. Спасибо. Не ошибка. Есть вариации на 2 и 3 столбца в оригинале.

Автор - cmivadwot
Дата добавления - 28.02.2024 в 14:56
Nic70y Дата: Среда, 28.02.2024, 14:58 | Сообщение № 8
Группа: Друзья
Ранг: Экселист
Сообщений: 8761
Репутация: 2273 ±
Замечаний: 0% ±

Excel 2010
Есть вариации на 2 и 3
понятно, надо редактировать определение столбцов,
чуть позже посмотрю,
простая арифметика не подойдет

апдэйт, сделал
К сообщению приложен файл: 415_1_1.xlsm (25.5 Kb)


ЮMoney 41001841029809

Сообщение отредактировал Nic70y - Среда, 28.02.2024, 16:43
 
Ответить
Сообщение
Есть вариации на 2 и 3
понятно, надо редактировать определение столбцов,
чуть позже посмотрю,
простая арифметика не подойдет

апдэйт, сделал

Автор - Nic70y
Дата добавления - 28.02.2024 в 14:58
cmivadwot Дата: Среда, 28.02.2024, 18:48 | Сообщение № 9
Группа: Проверенные
Ранг: Обитатель
Сообщений: 455
Репутация: 86 ±
Замечаний: 0% ±

365
Nic70y, Спасибо. разобрался с предыдущим вариантом. в моем случае m = l * 2 + 21 'столбец копирования левый, n = l * 2 + 22, вроде так.. заработало как должно.. я закранил по незнанию, что такое +3 и +5
 
Ответить
СообщениеNic70y, Спасибо. разобрался с предыдущим вариантом. в моем случае m = l * 2 + 21 'столбец копирования левый, n = l * 2 + 22, вроде так.. заработало как должно.. я закранил по незнанию, что такое +3 и +5

Автор - cmivadwot
Дата добавления - 28.02.2024 в 18:48
Nic70y Дата: Четверг, 29.02.2024, 08:05 | Сообщение № 10
Группа: Друзья
Ранг: Экселист
Сообщений: 8761
Репутация: 2273 ±
Замечаний: 0% ±

Excel 2010
cmivadwot, а вариант из сообщения №8 не рассматривали?
единственное комментарий: 'записываем № блока в столбец AO
я не исправил, не AO конечно.

в этом варианте важно
[vba]
Код
    s = 3   'строка шапки таблицы
    t = 5   'верхняя строка таблицы
[/vba]остальное макрос рассчитает,
не важно сколько столбцов объединено в "блоке",
главное нумерация по порядку


ЮMoney 41001841029809

Сообщение отредактировал Nic70y - Четверг, 29.02.2024, 08:05
 
Ответить
Сообщениеcmivadwot, а вариант из сообщения №8 не рассматривали?
единственное комментарий: 'записываем № блока в столбец AO
я не исправил, не AO конечно.

в этом варианте важно
[vba]
Код
    s = 3   'строка шапки таблицы
    t = 5   'верхняя строка таблицы
[/vba]остальное макрос рассчитает,
не важно сколько столбцов объединено в "блоке",
главное нумерация по порядку

Автор - Nic70y
Дата добавления - 29.02.2024 в 08:05
cmivadwot Дата: Четверг, 29.02.2024, 10:33 | Сообщение № 11
Группа: Проверенные
Ранг: Обитатель
Сообщений: 455
Репутация: 86 ±
Замечаний: 0% ±

365
Nic70y, пока нет времени, позже возможно, пока старый вариант работает.затык был в +21 +22. Позже еще возможно будет вариация, где цифры записаны не через запятую, а каждая в отдельном столбце.т.е пп1.. в шапке в объединенных столбцах, а цифры под ним в отдельных столбцах. Либо перекрутить формулой сцепку через запятую и тем же макросом, либо новый алгоритм придумывать.
 
Ответить
СообщениеNic70y, пока нет времени, позже возможно, пока старый вариант работает.затык был в +21 +22. Позже еще возможно будет вариация, где цифры записаны не через запятую, а каждая в отдельном столбце.т.е пп1.. в шапке в объединенных столбцах, а цифры под ним в отдельных столбцах. Либо перекрутить формулой сцепку через запятую и тем же макросом, либо новый алгоритм придумывать.

Автор - cmivadwot
Дата добавления - 29.02.2024 в 10:33
cmivadwot Дата: Суббота, 02.03.2024, 02:18 | Сообщение № 12
Группа: Проверенные
Ранг: Обитатель
Сообщений: 455
Репутация: 86 ±
Замечаний: 0% ±

365
Nic70y, Доброй ночи. Я так понял в 8 сообщении вообще, кроме строка шапки таблицы и
верхняя строка таблицы указывать ничего не надо. На самом деле пп и не совсем пп((( и они там объединены по вертикали и не одинаково...... вручную корректится. А нет ли такой возможности, чтоб всплыло сообщение "Эй ты, кожаный мешок, укажи верхнюю строку таблицы и строку шапки таблицы (наверно ввод вручную, а не тыканьем в ячейку )" далее указать диапазон(столбцы) распедаливания (пп* или даже ткнуть выбор каждой, из 4, ячейки пп), и в какие столбцы сложить распедаленные пп* и номера. Вот я тут.... нафантазировал))))))) может еще есть нюансы.. Нашел.. один из очень близких к оригиналу файл...
К сообщению приложен файл: ro.xlsx (25.0 Kb)
 
Ответить
СообщениеNic70y, Доброй ночи. Я так понял в 8 сообщении вообще, кроме строка шапки таблицы и
верхняя строка таблицы указывать ничего не надо. На самом деле пп и не совсем пп((( и они там объединены по вертикали и не одинаково...... вручную корректится. А нет ли такой возможности, чтоб всплыло сообщение "Эй ты, кожаный мешок, укажи верхнюю строку таблицы и строку шапки таблицы (наверно ввод вручную, а не тыканьем в ячейку )" далее указать диапазон(столбцы) распедаливания (пп* или даже ткнуть выбор каждой, из 4, ячейки пп), и в какие столбцы сложить распедаленные пп* и номера. Вот я тут.... нафантазировал))))))) может еще есть нюансы.. Нашел.. один из очень близких к оригиналу файл...

Автор - cmivadwot
Дата добавления - 02.03.2024 в 02:18
Nic70y Дата: Суббота, 02.03.2024, 08:21 | Сообщение № 13
Группа: Друзья
Ранг: Экселист
Сообщений: 8761
Репутация: 2273 ±
Замечаний: 0% ±

Excel 2010
cmivadwot, приветствую.
смогу посмотреть только в понедельник,
дома экселем не пользуюсь)
А нет ли такой возможности
есть


ЮMoney 41001841029809
 
Ответить
Сообщениеcmivadwot, приветствую.
смогу посмотреть только в понедельник,
дома экселем не пользуюсь)
А нет ли такой возможности
есть

Автор - Nic70y
Дата добавления - 02.03.2024 в 08:21
cmivadwot Дата: Суббота, 02.03.2024, 09:46 | Сообщение № 14
Группа: Проверенные
Ранг: Обитатель
Сообщений: 455
Репутация: 86 ±
Замечаний: 0% ±

365
Nic70y, Добого утра! Без спешки. Спасибо.
 
Ответить
СообщениеNic70y, Добого утра! Без спешки. Спасибо.

Автор - cmivadwot
Дата добавления - 02.03.2024 в 09:46
Nic70y Дата: Понедельник, 04.03.2024, 11:07 | Сообщение № 15
Группа: Друзья
Ранг: Экселист
Сообщений: 8761
Репутация: 2273 ±
Замечаний: 0% ±

Excel 2010
для понимания, для данного файла
в InputBoxЫ выбрать диапазоны
1) $A$14:$AV$19
2) $Y$4:$AR$10
3) $AS$14:$AV$19

[p.s.]текст макроса не поместился, хотел приложить .txt файл - выбрасывает с сайта[/p.s.]
К сообщению приложен файл: 5255364.xlsm (33.0 Kb)


ЮMoney 41001841029809

Сообщение отредактировал Nic70y - Понедельник, 04.03.2024, 11:12
 
Ответить
Сообщениедля понимания, для данного файла
в InputBoxЫ выбрать диапазоны
1) $A$14:$AV$19
2) $Y$4:$AR$10
3) $AS$14:$AV$19

[p.s.]текст макроса не поместился, хотел приложить .txt файл - выбрасывает с сайта[/p.s.]

Автор - Nic70y
Дата добавления - 04.03.2024 в 11:07
cmivadwot Дата: Понедельник, 04.03.2024, 11:27 | Сообщение № 16
Группа: Проверенные
Ранг: Обитатель
Сообщений: 455
Репутация: 86 ±
Замечаний: 0% ±

365
Nic70y, Огонь. Сегодня окончательно подтвердилось, что если в 3 семестре есть занятия, а промежуточного контроля в 3 семестре нет, то необходимо еще в 4 семестре отобразить цифры третьего. И сейчас еще заметил пп10. Пп всего 4 значения экзамен, зач, зач с оцен, и курсовой...
К сообщению приложен файл: 2784479.xlsm (34.0 Kb)


Сообщение отредактировал cmivadwot - Понедельник, 04.03.2024, 11:56
 
Ответить
СообщениеNic70y, Огонь. Сегодня окончательно подтвердилось, что если в 3 семестре есть занятия, а промежуточного контроля в 3 семестре нет, то необходимо еще в 4 семестре отобразить цифры третьего. И сейчас еще заметил пп10. Пп всего 4 значения экзамен, зач, зач с оцен, и курсовой...

Автор - cmivadwot
Дата добавления - 04.03.2024 в 11:27
Serge_007 Дата: Понедельник, 04.03.2024, 11:38 | Сообщение № 17
Группа: Админы
Ранг: Местный житель
Сообщений: 16475
Репутация: 2749 ±
Замечаний: ±

Excel 2016
текст макроса не поместился
В коде более 10 тыс знаков? %)


ЮMoney:41001419691823 | WMR:126292472390
 
Ответить
Сообщение
текст макроса не поместился
В коде более 10 тыс знаков? %)

Автор - Serge_007
Дата добавления - 04.03.2024 в 11:38
Nic70y Дата: Понедельник, 04.03.2024, 12:13 | Сообщение № 18
Группа: Друзья
Ранг: Экселист
Сообщений: 8761
Репутация: 2273 ±
Замечаний: 0% ±

Excel 2010
более 10 тыс
5186
cmivadwot, если я правильно понял, при пропущенном числе берем его
К сообщению приложен файл: 7214.xlsm (34.8 Kb)


ЮMoney 41001841029809
 
Ответить
Сообщение
более 10 тыс
5186
cmivadwot, если я правильно понял, при пропущенном числе берем его

Автор - Nic70y
Дата добавления - 04.03.2024 в 12:13
cmivadwot Дата: Понедельник, 04.03.2024, 12:18 | Сообщение № 19
Группа: Проверенные
Ранг: Обитатель
Сообщений: 455
Репутация: 86 ±
Замечаний: 0% ±

365
Nic70y, пк под рукой уже нет. Если цифры п пп. 1,2,4 . А в 3 семестре есть цифры то их записывать в 4 семестре. (Копировать в строку 4 семестра еще и цифры третьего. Как на приложенном ранее файле..выделено зеленым.
К сообщению приложен файл: 8586784.jpg (34.4 Kb)


Сообщение отредактировал cmivadwot - Понедельник, 04.03.2024, 12:21
 
Ответить
СообщениеNic70y, пк под рукой уже нет. Если цифры п пп. 1,2,4 . А в 3 семестре есть цифры то их записывать в 4 семестре. (Копировать в строку 4 семестра еще и цифры третьего. Как на приложенном ранее файле..выделено зеленым.

Автор - cmivadwot
Дата добавления - 04.03.2024 в 12:18
cmivadwot Дата: Понедельник, 04.03.2024, 15:28 | Сообщение № 20
Группа: Проверенные
Ранг: Обитатель
Сообщений: 455
Репутация: 86 ±
Замечаний: 0% ±

365
Nic70y, Всё супер, осталось с пп добить (пока поломалось, ранее нормально было).
К сообщению приложен файл: 6014907.xlsm (34.6 Kb)
 
Ответить
СообщениеNic70y, Всё супер, осталось с пп добить (пока поломалось, ранее нормально было).

Автор - cmivadwot
Дата добавления - 04.03.2024 в 15:28
Мир MS Excel » Вопросы и решения » Вопросы по VBA » Копирование конкретных значений строк по условиям (Макросы/Sub)
  • Страница 1 из 2
  • 1
  • 2
  • »
Поиск:

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