Вставить 4 строки с формулами 4-х вышестоящих строк
den45444
Дата: Четверг, 06.08.2015, 09:51 |
Сообщение № 1
Группа: Проверенные
Ранг: Форумчанин
Сообщений: 225
Репутация:
0
±
Замечаний:
0% ±
Excel 2010
Добрый день. Помогите с решением макроса. Задача следующая: 1. Вставить 4 строки над строкой где будет находится ячейка с текстом "Накладные расходы". 2. Все четыре строки должны быть как вышестоящие 4 строки со всеми такими же формулами. 3. Если возможно, то хотелось бы, чтобы следующий этап уже был не "Этап №2", а "Этап №3". Прикрепляю пример.
Добрый день. Помогите с решением макроса. Задача следующая: 1. Вставить 4 строки над строкой где будет находится ячейка с текстом "Накладные расходы". 2. Все четыре строки должны быть как вышестоящие 4 строки со всеми такими же формулами. 3. Если возможно, то хотелось бы, чтобы следующий этап уже был не "Этап №2", а "Этап №3". Прикрепляю пример. den45444
Ответить
Сообщение Добрый день. Помогите с решением макроса. Задача следующая: 1. Вставить 4 строки над строкой где будет находится ячейка с текстом "Накладные расходы". 2. Все четыре строки должны быть как вышестоящие 4 строки со всеми такими же формулами. 3. Если возможно, то хотелось бы, чтобы следующий этап уже был не "Этап №2", а "Этап №3". Прикрепляю пример. Автор - den45444 Дата добавления - 06.08.2015 в 09:51
Manyasha
Дата: Четверг, 06.08.2015, 10:42 |
Сообщение № 2
Группа: Модераторы
Ранг: Старожил
Сообщений: 2198
Репутация:
898
±
Замечаний:
0% ±
Excel 2010, 2016
den45444 , Например так: [vba]Код
Sub Add_Stage() lSt = Cells.Find(What:="Накладные расходы").Row Rows(lSt - 4 & ":" & lSt - 1).Copy Rows(lSt).Insert Shift:=xlDown Range("a" & lSt + 1 & ":f" & lSt + 2).ClearContents numSt = Split(Range("a" & lSt - 4), "№") Range("a" & lSt) = "Этап №" & numSt(1) + 1 Range("a" & lSt + 2) = "Итого (этап №" & numSt(1) + 1 & "):" End Sub
[/vba]
den45444 , Например так: [vba]Код
Sub Add_Stage() lSt = Cells.Find(What:="Накладные расходы").Row Rows(lSt - 4 & ":" & lSt - 1).Copy Rows(lSt).Insert Shift:=xlDown Range("a" & lSt + 1 & ":f" & lSt + 2).ClearContents numSt = Split(Range("a" & lSt - 4), "№") Range("a" & lSt) = "Этап №" & numSt(1) + 1 Range("a" & lSt + 2) = "Итого (этап №" & numSt(1) + 1 & "):" End Sub
[/vba]Manyasha
ЯД: 410013299366744 WM: R193491431804
Ответить
Сообщение den45444 , Например так: [vba]Код
Sub Add_Stage() lSt = Cells.Find(What:="Накладные расходы").Row Rows(lSt - 4 & ":" & lSt - 1).Copy Rows(lSt).Insert Shift:=xlDown Range("a" & lSt + 1 & ":f" & lSt + 2).ClearContents numSt = Split(Range("a" & lSt - 4), "№") Range("a" & lSt) = "Этап №" & numSt(1) + 1 Range("a" & lSt + 2) = "Итого (этап №" & numSt(1) + 1 & "):" End Sub
[/vba]Автор - Manyasha Дата добавления - 06.08.2015 в 10:42
den45444
Дата: Четверг, 06.08.2015, 10:50 |
Сообщение № 3
Группа: Проверенные
Ранг: Форумчанин
Сообщений: 225
Репутация:
0
±
Замечаний:
0% ±
Excel 2010
Manyasha , Премного благодарен.
Ответить
Сообщение Manyasha , Премного благодарен.Автор - den45444 Дата добавления - 06.08.2015 в 10:50
den45444
Дата: Четверг, 06.08.2015, 13:44 |
Сообщение № 4
Группа: Проверенные
Ранг: Форумчанин
Сообщений: 225
Репутация:
0
±
Замечаний:
0% ±
Excel 2010
Manyasha , Можете немного поправить макрос? Оказывается мне нужно добавить не 4 строки, а столько сколько есть в предыдущем этапе, т.е. от начала этапа до итого. И как прописать макрос, чтобы можно было удалить добавленный этап? Выручайте:)
Manyasha , Можете немного поправить макрос? Оказывается мне нужно добавить не 4 строки, а столько сколько есть в предыдущем этапе, т.е. от начала этапа до итого. И как прописать макрос, чтобы можно было удалить добавленный этап? Выручайте:)den45444
Ответить
Сообщение Manyasha , Можете немного поправить макрос? Оказывается мне нужно добавить не 4 строки, а столько сколько есть в предыдущем этапе, т.е. от начала этапа до итого. И как прописать макрос, чтобы можно было удалить добавленный этап? Выручайте:)Автор - den45444 Дата добавления - 06.08.2015 в 13:44
roskoshenko
Дата: Четверг, 06.08.2015, 22:06 |
Сообщение № 5
Группа: Пользователи
Ранг: Новичок
Сообщений: 12
Репутация:
0
±
Замечаний:
0% ±
Excel 2010
примитива добавил, но вроде работает
Ответить
Сообщение примитива добавил, но вроде работает Автор - roskoshenko Дата добавления - 06.08.2015 в 22:06
den45444
Дата: Пятница, 07.08.2015, 09:54 |
Сообщение № 6
Группа: Проверенные
Ранг: Форумчанин
Сообщений: 225
Репутация:
0
±
Замечаний:
0% ±
Excel 2010
roskoshenko , Благодарю, но это не то. Вот пример. Нужно добавить только один полноценный этап со всеми формулами и строками предыдущего этапа. Строк предыдущего этапа может быть много. Жду помощь от кого-нибудь.
roskoshenko , Благодарю, но это не то. Вот пример. Нужно добавить только один полноценный этап со всеми формулами и строками предыдущего этапа. Строк предыдущего этапа может быть много. Жду помощь от кого-нибудь.den45444
Ответить
Сообщение roskoshenko , Благодарю, но это не то. Вот пример. Нужно добавить только один полноценный этап со всеми формулами и строками предыдущего этапа. Строк предыдущего этапа может быть много. Жду помощь от кого-нибудь.Автор - den45444 Дата добавления - 07.08.2015 в 09:54
Manyasha
Дата: Пятница, 07.08.2015, 18:06 |
Сообщение № 7
Группа: Модераторы
Ранг: Старожил
Сообщений: 2198
Репутация:
898
±
Замечаний:
0% ±
Excel 2010, 2016
den45444 , проверяйте: [vba]Код
Sub Add_Stage() Dim firstRow&, lastRow& firstRow = 0: lastRow = 0 lSt = Columns("A:A").Find(What:="Накладные расходы").Row lastRow = lSt - 1 For i = lSt To 1 Step -1 If InStr(Cells(i, 1), "Этап") Then firstRow = i: numSt = Split(Cells(i, 1), "№")(1) + 1: Exit For Next i If firstRow = 0 Then MsgBox "Добавьте 1-й этап": Exit Sub Rows(firstRow & ":" & lastRow).Copy Rows(lSt).Insert Shift:=xlDown Range("a" & lSt + 1 & ":f" & lSt + lastRow - firstRow - 2).ClearContents Range("a" & lSt) = "Этап №" & numSt + 1 Range("a" & lSt + lastRow - firstRow - 1) = "Итого (этап №" & numSt + 1 & "):" End Sub
[/vba]
den45444 , проверяйте: [vba]Код
Sub Add_Stage() Dim firstRow&, lastRow& firstRow = 0: lastRow = 0 lSt = Columns("A:A").Find(What:="Накладные расходы").Row lastRow = lSt - 1 For i = lSt To 1 Step -1 If InStr(Cells(i, 1), "Этап") Then firstRow = i: numSt = Split(Cells(i, 1), "№")(1) + 1: Exit For Next i If firstRow = 0 Then MsgBox "Добавьте 1-й этап": Exit Sub Rows(firstRow & ":" & lastRow).Copy Rows(lSt).Insert Shift:=xlDown Range("a" & lSt + 1 & ":f" & lSt + lastRow - firstRow - 2).ClearContents Range("a" & lSt) = "Этап №" & numSt + 1 Range("a" & lSt + lastRow - firstRow - 1) = "Итого (этап №" & numSt + 1 & "):" End Sub
[/vba]Manyasha
ЯД: 410013299366744 WM: R193491431804
Ответить
Сообщение den45444 , проверяйте: [vba]Код
Sub Add_Stage() Dim firstRow&, lastRow& firstRow = 0: lastRow = 0 lSt = Columns("A:A").Find(What:="Накладные расходы").Row lastRow = lSt - 1 For i = lSt To 1 Step -1 If InStr(Cells(i, 1), "Этап") Then firstRow = i: numSt = Split(Cells(i, 1), "№")(1) + 1: Exit For Next i If firstRow = 0 Then MsgBox "Добавьте 1-й этап": Exit Sub Rows(firstRow & ":" & lastRow).Copy Rows(lSt).Insert Shift:=xlDown Range("a" & lSt + 1 & ":f" & lSt + lastRow - firstRow - 2).ClearContents Range("a" & lSt) = "Этап №" & numSt + 1 Range("a" & lSt + lastRow - firstRow - 1) = "Итого (этап №" & numSt + 1 & "):" End Sub
[/vba]Автор - Manyasha Дата добавления - 07.08.2015 в 18:06
den45444
Дата: Суббота, 08.08.2015, 10:03 |
Сообщение № 8
Группа: Проверенные
Ранг: Форумчанин
Сообщений: 225
Репутация:
0
±
Замечаний:
0% ±
Excel 2010
Manyasha , То что надо:) Благодарю за помощь. Нагловато наверное будет, если я вас попрошу такой же смысл макроса написать, но только удалить последний этап.
Manyasha , То что надо:) Благодарю за помощь. Нагловато наверное будет, если я вас попрошу такой же смысл макроса написать, но только удалить последний этап.den45444
Ответить
Сообщение Manyasha , То что надо:) Благодарю за помощь. Нагловато наверное будет, если я вас попрошу такой же смысл макроса написать, но только удалить последний этап.Автор - den45444 Дата добавления - 08.08.2015 в 10:03
ShAM
Дата: Суббота, 08.08.2015, 10:52 |
Сообщение № 9
Группа: Друзья
Ранг: Старожил
Сообщений: 1347
Репутация:
249
±
Замечаний:
0% ±
Excel 2010
В этих строках: [vba]Код
Range("a" & lSt) = "Этап №" & numSt + 1 Range("a" & lSt + lastRow - firstRow - 1) = "Итого (этап №" & numSt + 1 & "):"
[/vba]нужно убрать + 1 после numSt, иначе к номеру этапа по 2 прибавляется. но только удалить последний этап
Удалять - не вставлять. Боюсь это совсем другая тема.
В этих строках: [vba]Код
Range("a" & lSt) = "Этап №" & numSt + 1 Range("a" & lSt + lastRow - firstRow - 1) = "Итого (этап №" & numSt + 1 & "):"
[/vba]нужно убрать + 1 после numSt, иначе к номеру этапа по 2 прибавляется. но только удалить последний этап
Удалять - не вставлять. Боюсь это совсем другая тема. ShAM
Ответить
Сообщение В этих строках: [vba]Код
Range("a" & lSt) = "Этап №" & numSt + 1 Range("a" & lSt + lastRow - firstRow - 1) = "Итого (этап №" & numSt + 1 & "):"
[/vba]нужно убрать + 1 после numSt, иначе к номеру этапа по 2 прибавляется. но только удалить последний этап
Удалять - не вставлять. Боюсь это совсем другая тема. Автор - ShAM Дата добавления - 08.08.2015 в 10:52
den45444
Дата: Суббота, 08.08.2015, 10:57 |
Сообщение № 10
Группа: Проверенные
Ранг: Форумчанин
Сообщений: 225
Репутация:
0
±
Замечаний:
0% ±
Excel 2010
В этих строках: Range("a" & lSt) = "Этап №" & numSt + 1 Range("a" & lSt + lastRow - firstRow - 1) = "Итого (этап №" & numSt + 1 & "):"
С этим разобрался. Благодарю. Удалять - не вставлять. Боюсь это совсем другая тема.
Можете помочь решить задачу?
В этих строках: Range("a" & lSt) = "Этап №" & numSt + 1 Range("a" & lSt + lastRow - firstRow - 1) = "Итого (этап №" & numSt + 1 & "):"
С этим разобрался. Благодарю. Удалять - не вставлять. Боюсь это совсем другая тема.
Можете помочь решить задачу?den45444
Ответить
Сообщение В этих строках: Range("a" & lSt) = "Этап №" & numSt + 1 Range("a" & lSt + lastRow - firstRow - 1) = "Итого (этап №" & numSt + 1 & "):"
С этим разобрался. Благодарю. Удалять - не вставлять. Боюсь это совсем другая тема.
Можете помочь решить задачу?Автор - den45444 Дата добавления - 08.08.2015 в 10:57
ShAM
Дата: Суббота, 08.08.2015, 11:02 |
Сообщение № 11
Группа: Друзья
Ранг: Старожил
Сообщений: 1347
Репутация:
249
±
Замечаний:
0% ±
Excel 2010
Так, намек не понят. Создайте другую тему.
Так, намек не понят. Создайте другую тему. ShAM
Ответить
Сообщение Так, намек не понят. Создайте другую тему. Автор - ShAM Дата добавления - 08.08.2015 в 11:02