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

Вход

Регистрация

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

 

= Мир MS Excel/Автодобавление строки с сохранением формул - Мир MS Excel

Старая форма входа
  • Страница 1 из 1
  • 1
Модератор форума: китин, _Boroda_  
Мир MS Excel » Вопросы и решения » Вопросы по Excel » Автодобавление строки с сохранением формул (Формулы/Formulas)
Автодобавление строки с сохранением формул
Leprotto Дата: Среда, 22.04.2015, 09:46 | Сообщение № 1
Группа: Проверенные
Ранг: Форумчанин
Сообщений: 145
Репутация: 2 ±
Замечаний: 0% ±

Excel 2016
Добрый день!
Задача следующая:
при заполнении яч. А6-D6 или А11-D11 (крайне неопытным пользователем !!!),
можно ли сделать автоматическое добавление строки ниже
с обязательным сохранением формул в столбцах E и F,
например, как только будет внесена фамилия с столбец А?
К сообщению приложен файл: 8854500.xlsx (9.5 Kb)
 
Ответить
СообщениеДобрый день!
Задача следующая:
при заполнении яч. А6-D6 или А11-D11 (крайне неопытным пользователем !!!),
можно ли сделать автоматическое добавление строки ниже
с обязательным сохранением формул в столбцах E и F,
например, как только будет внесена фамилия с столбец А?

Автор - Leprotto
Дата добавления - 22.04.2015 в 09:46
Manyasha Дата: Среда, 22.04.2015, 10:43 | Сообщение № 2
Группа: Модераторы
Ранг: Старожил
Сообщений: 2198
Репутация: 898 ±
Замечаний: 0% ±

Excel 2010, 2016
Leprotto, как-то так:[vba]
Код
Private Sub Worksheet_Change(ByVal Target As Range)
     If Target.Count > 1 Then Exit Sub
     nextR = Target.Row + 1
     Debug.Print InStr(Cells(nextR, 1), "отдел")
     If InStr(Cells(nextR, 1), "отдел") > 0 And Target.Value <> "" Then
         Rows(nextR).Insert Shift:=xlDown
             Range("e" & Target.Row - 1 & ":f" & Target.Row - 1).Copy Range("e" & Target.Row & ":f" & Target.Row)
     End If
End Sub
[/vba]
К сообщению приложен файл: 8854500_1.xlsm (16.6 Kb)


ЯД: 410013299366744 WM: R193491431804
 
Ответить
СообщениеLeprotto, как-то так:[vba]
Код
Private Sub Worksheet_Change(ByVal Target As Range)
     If Target.Count > 1 Then Exit Sub
     nextR = Target.Row + 1
     Debug.Print InStr(Cells(nextR, 1), "отдел")
     If InStr(Cells(nextR, 1), "отдел") > 0 And Target.Value <> "" Then
         Rows(nextR).Insert Shift:=xlDown
             Range("e" & Target.Row - 1 & ":f" & Target.Row - 1).Copy Range("e" & Target.Row & ":f" & Target.Row)
     End If
End Sub
[/vba]

Автор - Manyasha
Дата добавления - 22.04.2015 в 10:43
Leprotto Дата: Среда, 22.04.2015, 14:19 | Сообщение № 3
Группа: Проверенные
Ранг: Форумчанин
Сообщений: 145
Репутация: 2 ±
Замечаний: 0% ±

Excel 2016
Manyasha, спасибо большое! Все работает так как я и хотел.
Вот только я не настольно продвинут, чтобы интегрировать это в реальный документ ((
 
Ответить
СообщениеManyasha, спасибо большое! Все работает так как я и хотел.
Вот только я не настольно продвинут, чтобы интегрировать это в реальный документ ((

Автор - Leprotto
Дата добавления - 22.04.2015 в 14:19
Manyasha Дата: Среда, 22.04.2015, 15:12 | Сообщение № 4
Группа: Модераторы
Ранг: Старожил
Сообщений: 2198
Репутация: 898 ±
Замечаний: 0% ±

Excel 2010, 2016
Leprotto, тыкаете ПКМ по ярлычку листа, в котором нужно добавлять строки, выбираете "исходный текст", вставляете в открывшееся окно код из моего файла. Если структура Вашего листа сильно отличается от файла-примера, пишите в чем именно отличия, а лучше показывайте.


ЯД: 410013299366744 WM: R193491431804
 
Ответить
СообщениеLeprotto, тыкаете ПКМ по ярлычку листа, в котором нужно добавлять строки, выбираете "исходный текст", вставляете в открывшееся окно код из моего файла. Если структура Вашего листа сильно отличается от файла-примера, пишите в чем именно отличия, а лучше показывайте.

Автор - Manyasha
Дата добавления - 22.04.2015 в 15:12
Leprotto Дата: Среда, 22.04.2015, 17:00 | Сообщение № 5
Группа: Проверенные
Ранг: Форумчанин
Сообщений: 145
Репутация: 2 ±
Замечаний: 0% ±

Excel 2016
Manyasha, отличается сильно )) прикладываю.
- добавление строк необходимо при заполнении яч. Е24, 26,28...Е325;
- с сохранением формул с столбцах D,R,S,T,U
К сообщению приложен файл: -3-_-_-.xlsx (99.3 Kb)
 
Ответить
СообщениеManyasha, отличается сильно )) прикладываю.
- добавление строк необходимо при заполнении яч. Е24, 26,28...Е325;
- с сохранением формул с столбцах D,R,S,T,U

Автор - Leprotto
Дата добавления - 22.04.2015 в 17:00
Manyasha Дата: Среда, 22.04.2015, 17:33 | Сообщение № 6
Группа: Модераторы
Ранг: Старожил
Сообщений: 2198
Репутация: 898 ±
Замечаний: 0% ±

Excel 2010, 2016
Проверяйте.
Вот код с комментариями:

В моем первом варианте не правильно копировались формулы, здесь поправила. Если где-то еще с логикой не догнала говорите)
[p.s.]Файл пришлось немного урезать[/p.s.]
К сообщению приложен файл: -3-.xlsm (90.0 Kb)


ЯД: 410013299366744 WM: R193491431804

Сообщение отредактировал Manyasha - Среда, 22.04.2015, 17:34
 
Ответить
СообщениеПроверяйте.
Вот код с комментариями:

В моем первом варианте не правильно копировались формулы, здесь поправила. Если где-то еще с логикой не догнала говорите)
[p.s.]Файл пришлось немного урезать[/p.s.]

Автор - Manyasha
Дата добавления - 22.04.2015 в 17:33
Leprotto Дата: Четверг, 23.04.2015, 10:05 | Сообщение № 7
Группа: Проверенные
Ранг: Форумчанин
Сообщений: 145
Репутация: 2 ±
Замечаний: 0% ±

Excel 2016
Manyasha, с формулами все ОК!
Мне лучше бы добавление строк при внеснии в столбец Е, чем в С.
Попробовал сам переделать - все перестало работать :-(
И можно ли сделать сохранение формата ячеек? (вертикальные границы пропадают)
 
Ответить
СообщениеManyasha, с формулами все ОК!
Мне лучше бы добавление строк при внеснии в столбец Е, чем в С.
Попробовал сам переделать - все перестало работать :-(
И можно ли сделать сохранение формата ячеек? (вертикальные границы пропадают)

Автор - Leprotto
Дата добавления - 23.04.2015 в 10:05
Manyasha Дата: Четверг, 23.04.2015, 10:56 | Сообщение № 8
Группа: Модераторы
Ранг: Старожил
Сообщений: 2198
Репутация: 898 ±
Замечаний: 0% ±

Excel 2010, 2016
Leprotto,
при внесении в столбец Е, чем в С
замените в строке 3 на 5[vba]
Код
If Target.Column <> 5 Then Exit Sub
[/vba]
Оформление в примере.
К сообщению приложен файл: -3-1.xlsm (93.2 Kb)


ЯД: 410013299366744 WM: R193491431804
 
Ответить
СообщениеLeprotto,
при внесении в столбец Е, чем в С
замените в строке 3 на 5[vba]
Код
If Target.Column <> 5 Then Exit Sub
[/vba]
Оформление в примере.

Автор - Manyasha
Дата добавления - 23.04.2015 в 10:56
Leprotto Дата: Четверг, 23.04.2015, 11:13 | Сообщение № 9
Группа: Проверенные
Ранг: Форумчанин
Сообщений: 145
Репутация: 2 ±
Замечаний: 0% ±

Excel 2016
Manyasha, СПАСИБО ОГРОМНОЕ!
Просто неоценимая помощь!!!
 
Ответить
СообщениеManyasha, СПАСИБО ОГРОМНОЕ!
Просто неоценимая помощь!!!

Автор - Leprotto
Дата добавления - 23.04.2015 в 11:13
Leprotto Дата: Среда, 29.04.2015, 11:30 | Сообщение № 10
Группа: Проверенные
Ранг: Форумчанин
Сообщений: 145
Репутация: 2 ±
Замечаний: 0% ±

Excel 2016
Manyasha, посмотрите, пожалуйста, приложенный файл.
Яч. Е127 и Е216 (последние строки в "блоке") не реагируют на макрос, т.е. при внесении даты не добавляется новая строка.
При копировании блока та же проблема.
К сообщению приложен файл: 8517791.xlsm (93.2 Kb)
 
Ответить
СообщениеManyasha, посмотрите, пожалуйста, приложенный файл.
Яч. Е127 и Е216 (последние строки в "блоке") не реагируют на макрос, т.е. при внесении даты не добавляется новая строка.
При копировании блока та же проблема.

Автор - Leprotto
Дата добавления - 29.04.2015 в 11:30
Manyasha Дата: Среда, 29.04.2015, 12:26 | Сообщение № 11
Группа: Модераторы
Ранг: Старожил
Сообщений: 2198
Репутация: 898 ±
Замечаний: 0% ±

Excel 2010, 2016
Leprotto, здравствуйте.
Из макроса:[vba]
Код
    'Если содержит текст "филиал" или "ДЗО ", вставляем еще одну строчку
       If (InStr(Cells(nextR, 3), "филиал") > 0 Or InStr(Cells(nextR, 3), "ДЗО ")) And Target.Value <> "" Then
[/vba]
На содержание в строке текста "Итого" нет проверки, нужно добавить:[vba]
Код
If (InStr(Cells(nextR, 3), "филиал") > 0 Or InStr(Cells(nextR, 3), "ДЗО ") Or InStr(Cells(nextR, 3), "Итого ") > 0) And Target.Value <> "" Then
[/vba]
Вообще, если будет много таких критериев, то возможно излишнее добавление строк, например, если в НЕ итоговой строчке текст будет содержать "филиал", то при редактировании строчки выше, макрос будет добавлять строку. (Привела пример в файле в 1-м блоке после строки "филиал 2"). Так что, может Вам лучше придумать другой критерий добавление строки, например, цвет заливки следующей ячейки (в файле под комментами)[vba]
Код
If Cells(nextR, 3).Interior.ColorIndex <> -4142 And Target.Value <> "" Then
[/vba]
К сообщению приложен файл: 8517791_1.xlsm (93.6 Kb)


ЯД: 410013299366744 WM: R193491431804
 
Ответить
СообщениеLeprotto, здравствуйте.
Из макроса:[vba]
Код
    'Если содержит текст "филиал" или "ДЗО ", вставляем еще одну строчку
       If (InStr(Cells(nextR, 3), "филиал") > 0 Or InStr(Cells(nextR, 3), "ДЗО ")) And Target.Value <> "" Then
[/vba]
На содержание в строке текста "Итого" нет проверки, нужно добавить:[vba]
Код
If (InStr(Cells(nextR, 3), "филиал") > 0 Or InStr(Cells(nextR, 3), "ДЗО ") Or InStr(Cells(nextR, 3), "Итого ") > 0) And Target.Value <> "" Then
[/vba]
Вообще, если будет много таких критериев, то возможно излишнее добавление строк, например, если в НЕ итоговой строчке текст будет содержать "филиал", то при редактировании строчки выше, макрос будет добавлять строку. (Привела пример в файле в 1-м блоке после строки "филиал 2"). Так что, может Вам лучше придумать другой критерий добавление строки, например, цвет заливки следующей ячейки (в файле под комментами)[vba]
Код
If Cells(nextR, 3).Interior.ColorIndex <> -4142 And Target.Value <> "" Then
[/vba]

Автор - Manyasha
Дата добавления - 29.04.2015 в 12:26
Leprotto Дата: Среда, 29.04.2015, 13:46 | Сообщение № 12
Группа: Проверенные
Ранг: Форумчанин
Сообщений: 145
Репутация: 2 ±
Замечаний: 0% ±

Excel 2016
Manyasha, да, действительно критериев будет много. Поэтому идея с цветом отлично работает.
Еще раз очень благодарен за изящное решение!
 
Ответить
СообщениеManyasha, да, действительно критериев будет много. Поэтому идея с цветом отлично работает.
Еще раз очень благодарен за изящное решение!

Автор - Leprotto
Дата добавления - 29.04.2015 в 13:46
izbushevgraf Дата: Четверг, 15.07.2021, 16:36 | Сообщение № 13
Группа: Пользователи
Ранг: Прохожий
Сообщений: 1
Репутация: 0 ±
Замечаний: 0% ±

Manyasha, Добрый день подскажите как сделать что бы добавлялась новая строка в каждом месяце
К сообщению приложен файл: ___.xlsm (86.5 Kb)
 
Ответить
СообщениеManyasha, Добрый день подскажите как сделать что бы добавлялась новая строка в каждом месяце

Автор - izbushevgraf
Дата добавления - 15.07.2021 в 16:36
Мир MS Excel » Вопросы и решения » Вопросы по Excel » Автодобавление строки с сохранением формул (Формулы/Formulas)
  • Страница 1 из 1
  • 1
Поиск:

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