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

Вход

Регистрация

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

 

= Мир MS Excel/Добавить 3 строки в каждый раздел - Мир MS Excel

  • Страница 1 из 1
  • 1
Модератор форума: китин, _Boroda_, DrMini  
Добавить 3 строки в каждый раздел
den45444 Дата: Четверг, 01.10.2015, 10:47 | Сообщение № 1
Группа: Проверенные
Ранг: Форумчанин
Сообщений: 225
Репутация: 0 ±
Замечаний: 0% ±

Excel 2010
Здравствуйте.
Прошу помочь в след.задаче.
Есть Смета с этапами. В каждый этап нужно добавить 3 строки и внести в эти строки значения и формулы. Внести их нужно перед строкой с ячейкой "Итого (этап №...)". Значения указаны в конце таблицы. Формулы только в столбцах G, H и I; берем от вышестоящей строки.
Спасибо.
К сообщению приложен файл: 8004464.xlsm (21.9 Kb)


Сообщение отредактировал den45444 - Четверг, 01.10.2015, 14:17
 
Ответить
СообщениеЗдравствуйте.
Прошу помочь в след.задаче.
Есть Смета с этапами. В каждый этап нужно добавить 3 строки и внести в эти строки значения и формулы. Внести их нужно перед строкой с ячейкой "Итого (этап №...)". Значения указаны в конце таблицы. Формулы только в столбцах G, H и I; берем от вышестоящей строки.
Спасибо.

Автор - den45444
Дата добавления - 01.10.2015 в 10:47
den45444 Дата: Четверг, 01.10.2015, 18:25 | Сообщение № 2
Группа: Проверенные
Ранг: Форумчанин
Сообщений: 225
Репутация: 0 ±
Замечаний: 0% ±

Excel 2010
Есть код на добавление одной строки:
[vba]
Код
Sub ДобавлениеСтроки()
     Dim ra As Range, delra As Range
     Application.ScreenUpdating = False    ' отключаем обновление экрана

     ' ищем строки, содержащие заданный текст
     ' (можно указать сколько угодно значений, и использовать подстановочные знаки)
     ДобавитьСтроку = Array("Итого (этап №*")
   
     ' перебираем все строки в используемом диапазоне листа
     For Each ra In ActiveSheet.UsedRange.Rows
         ' перебираем все фразы в массиве
         For Each word In ДобавитьСтроку
             ' если в очередной строке листа найден искомый текст
             If Not ra.Find(word, , xlValues, xlPart) Is Nothing Then
                 If delra Is Nothing Then Set delra = ra Else Set delra = Union(delra, ra)
             End If
         Next word
     Next

     If Not delra Is Nothing Then delra.EntireRow.Insert    ' добавляем строку
End Sub
[/vba]
 
Ответить
СообщениеЕсть код на добавление одной строки:
[vba]
Код
Sub ДобавлениеСтроки()
     Dim ra As Range, delra As Range
     Application.ScreenUpdating = False    ' отключаем обновление экрана

     ' ищем строки, содержащие заданный текст
     ' (можно указать сколько угодно значений, и использовать подстановочные знаки)
     ДобавитьСтроку = Array("Итого (этап №*")
   
     ' перебираем все строки в используемом диапазоне листа
     For Each ra In ActiveSheet.UsedRange.Rows
         ' перебираем все фразы в массиве
         For Each word In ДобавитьСтроку
             ' если в очередной строке листа найден искомый текст
             If Not ra.Find(word, , xlValues, xlPart) Is Nothing Then
                 If delra Is Nothing Then Set delra = ra Else Set delra = Union(delra, ra)
             End If
         Next word
     Next

     If Not delra Is Nothing Then delra.EntireRow.Insert    ' добавляем строку
End Sub
[/vba]

Автор - den45444
Дата добавления - 01.10.2015 в 18:25
KSV Дата: Четверг, 01.10.2015, 19:34 | Сообщение № 3
Группа: Друзья
Ранг: Ветеран
Сообщений: 770
Репутация: 255 ±
Замечаний: 0% ±

Excel 2013
Здравствуйте!
нужно добавить 3 строки
достаточно изменить одну строчку [vba]
Код
                If delra Is Nothing Then Set delra = ra.Resize(3) Else Set delra = Union(delra, ra.Resize(3))
[/vba]
и внести в эти строки значения и формулы
достаточно добавить одну строчку [vba]
Код
    Intersect(delra.Offset(-3, 6), Columns("G:H")).FormulaR1C1 = "=ROUND(RC3*RC[-2],0)"
[/vba]
UPD забыл про формулы в столбце I [vba]
Код
    With Intersect(delra.Offset(-3, 6), Columns("G:H"))
         .FormulaR1C1 = "=ROUND(RC3*RC[-2],0)"
         Intersect(.Offset(, 2), Columns(9)).FormulaR1C1 = "=SUM(RC[-2]:RC[-1])"
     End With
[/vba]
[p.s.]файл обновил[/p.s.]
К сообщению приложен файл: 8004464_.xlsm (26.6 Kb)


KSV.VBA@gmail.com
Яндекс.Деньги: 410011921213333


Сообщение отредактировал KSV - Четверг, 01.10.2015, 19:49
 
Ответить
СообщениеЗдравствуйте!
нужно добавить 3 строки
достаточно изменить одну строчку [vba]
Код
                If delra Is Nothing Then Set delra = ra.Resize(3) Else Set delra = Union(delra, ra.Resize(3))
[/vba]
и внести в эти строки значения и формулы
достаточно добавить одну строчку [vba]
Код
    Intersect(delra.Offset(-3, 6), Columns("G:H")).FormulaR1C1 = "=ROUND(RC3*RC[-2],0)"
[/vba]
UPD забыл про формулы в столбце I [vba]
Код
    With Intersect(delra.Offset(-3, 6), Columns("G:H"))
         .FormulaR1C1 = "=ROUND(RC3*RC[-2],0)"
         Intersect(.Offset(, 2), Columns(9)).FormulaR1C1 = "=SUM(RC[-2]:RC[-1])"
     End With
[/vba]
[p.s.]файл обновил[/p.s.]

Автор - KSV
Дата добавления - 01.10.2015 в 19:34
den45444 Дата: Четверг, 01.10.2015, 22:59 | Сообщение № 4
Группа: Проверенные
Ранг: Форумчанин
Сообщений: 225
Репутация: 0 ±
Замечаний: 0% ±

Excel 2010
KSV, Благодарю за помощь. Работает.
А как добавить в эти новые строки значения (см. ниже таблицы):
1. "Вынос мусора"
2. "Подъем"
3. Копия строки, которая находится в таблице: "Накладные расходы"

Посмотрите в конце таблицы. Там есть пример трех строк. Вот именно так (кроме формул последних 3-х столбцов) хотелось бы добавлять строки.
 
Ответить
СообщениеKSV, Благодарю за помощь. Работает.
А как добавить в эти новые строки значения (см. ниже таблицы):
1. "Вынос мусора"
2. "Подъем"
3. Копия строки, которая находится в таблице: "Накладные расходы"

Посмотрите в конце таблицы. Там есть пример трех строк. Вот именно так (кроме формул последних 3-х столбцов) хотелось бы добавлять строки.

Автор - den45444
Дата добавления - 01.10.2015 в 22:59
KSV Дата: Пятница, 02.10.2015, 04:33 | Сообщение № 5
Группа: Друзья
Ранг: Ветеран
Сообщений: 770
Репутация: 255 ±
Замечаний: 0% ±

Excel 2013
можно так: [vba]
Код
    ReDim ДобавитьСтроку(3)
     ДобавитьСтроку(1) = Array("Вынос мусора", Empty, 1, "компл.", 0, 0)
     ДобавитьСтроку(2) = Array("Подъем", Empty, 1, "компл.", 0, 0)
     ДобавитьСтроку(3) = Array("Накладные расходы", Empty, 0.2, "компл.", 0, 1000)
     ДобавитьСтроку = WorksheetFunction.Transpose(WorksheetFunction.Transpose(ДобавитьСтроку))
     With delra.Offset(-3)
         For Each ra In Intersect(.Cells, Columns("A:F")).Areas
             ra.Value = ДобавитьСтроку
         Next
         Intersect(.Cells, Columns("G:H")).FormulaR1C1 = "=ROUND(RC3*RC[-2],0)"
         Intersect(.Cells, Columns(9)).FormulaR1C1 = "=SUM(RC[-2]:RC[-1])"
     End With
[/vba]
К сообщению приложен файл: 2611651.xlsm (26.4 Kb)


KSV.VBA@gmail.com
Яндекс.Деньги: 410011921213333
 
Ответить
Сообщениеможно так: [vba]
Код
    ReDim ДобавитьСтроку(3)
     ДобавитьСтроку(1) = Array("Вынос мусора", Empty, 1, "компл.", 0, 0)
     ДобавитьСтроку(2) = Array("Подъем", Empty, 1, "компл.", 0, 0)
     ДобавитьСтроку(3) = Array("Накладные расходы", Empty, 0.2, "компл.", 0, 1000)
     ДобавитьСтроку = WorksheetFunction.Transpose(WorksheetFunction.Transpose(ДобавитьСтроку))
     With delra.Offset(-3)
         For Each ra In Intersect(.Cells, Columns("A:F")).Areas
             ra.Value = ДобавитьСтроку
         Next
         Intersect(.Cells, Columns("G:H")).FormulaR1C1 = "=ROUND(RC3*RC[-2],0)"
         Intersect(.Cells, Columns(9)).FormulaR1C1 = "=SUM(RC[-2]:RC[-1])"
     End With
[/vba]

Автор - KSV
Дата добавления - 02.10.2015 в 04:33
den45444 Дата: Пятница, 02.10.2015, 05:04 | Сообщение № 6
Группа: Проверенные
Ранг: Форумчанин
Сообщений: 225
Репутация: 0 ±
Замечаний: 0% ±

Excel 2010
KSV, Все работает. Спасибо.
В строке "Накладные расходы" добавляет значение "1000". А нужно, чтобы вместо 1000 прописал именно ту цифру, которая стоит в строке таблицы со значением "Накладные расходы". А если прописать вместо "1000" Cells(Columns(A:A).Find("Накладные расходы"), 6)
 
Ответить
СообщениеKSV, Все работает. Спасибо.
В строке "Накладные расходы" добавляет значение "1000". А нужно, чтобы вместо 1000 прописал именно ту цифру, которая стоит в строке таблицы со значением "Накладные расходы". А если прописать вместо "1000" Cells(Columns(A:A).Find("Накладные расходы"), 6)

Автор - den45444
Дата добавления - 02.10.2015 в 05:04
den45444 Дата: Пятница, 02.10.2015, 05:14 | Сообщение № 7
Группа: Проверенные
Ранг: Форумчанин
Сообщений: 225
Репутация: 0 ±
Замечаний: 0% ±

Excel 2010
[vba]
Код
poisk = ActiveSheet.Columns("A:A").Find(What:="Накладные расходы").Row
[/vba]

Вот так добавил, но теперь нужно задать условие, чтобы не выдавал ошибку при след. нажатии.
 
Ответить
Сообщение[vba]
Код
poisk = ActiveSheet.Columns("A:A").Find(What:="Накладные расходы").Row
[/vba]

Вот так добавил, но теперь нужно задать условие, чтобы не выдавал ошибку при след. нажатии.

Автор - den45444
Дата добавления - 02.10.2015 в 05:14
KSV Дата: Суббота, 03.10.2015, 02:51 | Сообщение № 8
Группа: Друзья
Ранг: Ветеран
Сообщений: 770
Репутация: 255 ±
Замечаний: 0% ±

Excel 2013
зачем усложнять и заморачиваться с поиском, если можно просто добавить именованный диапазон (Ctrl+F3) и ссылаться на него?
К сообщению приложен файл: 4834350.xlsm (25.7 Kb)


KSV.VBA@gmail.com
Яндекс.Деньги: 410011921213333
 
Ответить
Сообщениезачем усложнять и заморачиваться с поиском, если можно просто добавить именованный диапазон (Ctrl+F3) и ссылаться на него?

Автор - KSV
Дата добавления - 03.10.2015 в 02:51
den45444 Дата: Понедельник, 05.10.2015, 09:44 | Сообщение № 9
Группа: Проверенные
Ранг: Форумчанин
Сообщений: 225
Репутация: 0 ±
Замечаний: 0% ±

Excel 2010
KSV, Благодарен за вашу помощь.
В этой теме я задавал вопрос на удаление строк по условию. Если в диапазоне от 6-й строки до строки "Итого на работу" в столбце "I" стоят "ноль или пусто", то удалить эти строки. Мне в этой теме помочь полностью не смогли. Прошу вас подключится, если не сложно.
 
Ответить
СообщениеKSV, Благодарен за вашу помощь.
В этой теме я задавал вопрос на удаление строк по условию. Если в диапазоне от 6-й строки до строки "Итого на работу" в столбце "I" стоят "ноль или пусто", то удалить эти строки. Мне в этой теме помочь полностью не смогли. Прошу вас подключится, если не сложно.

Автор - den45444
Дата добавления - 05.10.2015 в 09:44
KSV Дата: Понедельник, 05.10.2015, 23:42 | Сообщение № 10
Группа: Друзья
Ранг: Ветеран
Сообщений: 770
Репутация: 255 ±
Замечаний: 0% ±

Excel 2013
я задавал вопрос на удаление строк по условию

Manyasha, То что надо. Благодарю!!!

судя по всему, уже не актуально? :)


KSV.VBA@gmail.com
Яндекс.Деньги: 410011921213333
 
Ответить
Сообщение
я задавал вопрос на удаление строк по условию

Manyasha, То что надо. Благодарю!!!

судя по всему, уже не актуально? :)

Автор - KSV
Дата добавления - 05.10.2015 в 23:42
den45444 Дата: Вторник, 06.10.2015, 01:43 | Сообщение № 11
Группа: Проверенные
Ранг: Форумчанин
Сообщений: 225
Репутация: 0 ±
Замечаний: 0% ±

Excel 2010
KSV, Да :)
 
Ответить
СообщениеKSV, Да :)

Автор - den45444
Дата добавления - 06.10.2015 в 01:43
  • Страница 1 из 1
  • 1
Поиск:

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