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

Вход

Регистрация

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

 

= Мир MS Excel/Автоматическое добавление заданного количества строк. Макрос - Мир MS Excel

Регистрация · Логин: · Пароль: · · Забыли пароль?
Страница 1 из 11
Модератор форума: _Boroda_, Pelena, Manyasha, SLAVICK 
Мир MS Excel » Вопросы и решения » Вопросы по VBA » Автоматическое добавление заданного количества строк. Макрос (Макросы/Sub)
Автоматическое добавление заданного количества строк. Макрос
gipsy14 Дата: Понедельник, 19.06.2017, 15:59 | Сообщение № 1
Группа: Пользователи
Ранг: Прохожий
Сообщений: 8
Репутация: 0 ±
Замечаний: 0% ±

Excel 2013
Добрый день, сенсеи экселя.
Помогите решить задачу.
Необходимо сформировать автоматическое добавление строк в таблицу.
Во вкладке "данные" в поле "срок кредита" указывается значение (в данном случае 27).
Необходимо, чтобы в выделенный диапазон во вкладке "Расчет" добавлялось строк 25 строк (27-2): строки должны добавляться начиная с 13ой. Нижняя строка должна быть нетронута. Формулы во всех ячейках должны соответствовать формулам из строки 12 (то есть автоматически протягиваться).

Благодарю за помощь!
К сообщению приложен файл: 1456517.xlsx(34Kb)


Сообщение отредактировал gipsy14 - Понедельник, 19.06.2017, 17:40
 
Ответить
СообщениеДобрый день, сенсеи экселя.
Помогите решить задачу.
Необходимо сформировать автоматическое добавление строк в таблицу.
Во вкладке "данные" в поле "срок кредита" указывается значение (в данном случае 27).
Необходимо, чтобы в выделенный диапазон во вкладке "Расчет" добавлялось строк 25 строк (27-2): строки должны добавляться начиная с 13ой. Нижняя строка должна быть нетронута. Формулы во всех ячейках должны соответствовать формулам из строки 12 (то есть автоматически протягиваться).

Благодарю за помощь!

Автор - gipsy14
Дата добавления - 19.06.2017 в 15:59
ant6729 Дата: Понедельник, 19.06.2017, 23:50 | Сообщение № 2
Группа: Проверенные
Ранг: Обитатель
Сообщений: 322
Репутация: 2 ±
Замечаний: 40% ±

Excel 2010
Вроде, работает.Так нужно?
Если будете вводить разные цифры, то попробуйте этот
[vba]
Код
Private Sub Worksheet_Change(ByVal Target As Range)
If Target.Address = "$D$8" Then
n = Sheets("Данные").Cells(8, 4).Value - 2

Do While i < n
    Sheets("Расчет").Range("A13").EntireRow.Insert
    i = i + 1
Loop
End If

lr = Sheets("Расчет").Cells(Rows.Count, 1).End(xlUp).Row

    Sheets("Расчет").Select
    Sheets("Расчет").Range("A12:J12").Select
    Selection.AutoFill Destination:=Sheets("Расчет").Range("A12:J" & lr - 2), Type:=xlFillCopy
    
End Sub
[/vba]

Если там, где 27 какая -то постоянная цифра, тогда, возможно, этот.

[vba]
Код
Sub ввв()
Sheets("Расчет").Select
n = Sheets("Данные").Cells(8, 4).Value - 2

Do While I < n
    Sheets("Расчет").Range("A13").EntireRow.Insert
    I = I + 1
Loop

lr = Sheets("Расчет").Cells(Rows.Count, 1).End(xlUp).Row

    Sheets("Расчет").Select
    Sheets("Расчет").Range("A12:J12").Select
    Selection.AutoFill Destination:=Sheets("Расчет").Range("A12:J" & lr - 2), Type:=xlFillCopy
    
End Sub
[/vba]

Не уверен на счет xlFillCopy, проверьте правильность заполнения формул сами.


Сообщение отредактировал ant6729 - Вторник, 20.06.2017, 11:56
 
Ответить
СообщениеВроде, работает.Так нужно?
Если будете вводить разные цифры, то попробуйте этот
[vba]
Код
Private Sub Worksheet_Change(ByVal Target As Range)
If Target.Address = "$D$8" Then
n = Sheets("Данные").Cells(8, 4).Value - 2

Do While i < n
    Sheets("Расчет").Range("A13").EntireRow.Insert
    i = i + 1
Loop
End If

lr = Sheets("Расчет").Cells(Rows.Count, 1).End(xlUp).Row

    Sheets("Расчет").Select
    Sheets("Расчет").Range("A12:J12").Select
    Selection.AutoFill Destination:=Sheets("Расчет").Range("A12:J" & lr - 2), Type:=xlFillCopy
    
End Sub
[/vba]

Если там, где 27 какая -то постоянная цифра, тогда, возможно, этот.

[vba]
Код
Sub ввв()
Sheets("Расчет").Select
n = Sheets("Данные").Cells(8, 4).Value - 2

Do While I < n
    Sheets("Расчет").Range("A13").EntireRow.Insert
    I = I + 1
Loop

lr = Sheets("Расчет").Cells(Rows.Count, 1).End(xlUp).Row

    Sheets("Расчет").Select
    Sheets("Расчет").Range("A12:J12").Select
    Selection.AutoFill Destination:=Sheets("Расчет").Range("A12:J" & lr - 2), Type:=xlFillCopy
    
End Sub
[/vba]

Не уверен на счет xlFillCopy, проверьте правильность заполнения формул сами.

Автор - ant6729
Дата добавления - 19.06.2017 в 23:50
gipsy14 Дата: Среда, 28.06.2017, 18:57 | Сообщение № 3
Группа: Пользователи
Ранг: Прохожий
Сообщений: 8
Репутация: 0 ±
Замечаний: 0% ±

Excel 2013
Благодарю!

Не по теме: я не программист. Подскажите, как правильно записать эти данные в VBA, чтобы макрос работал.

Благодарю!
 
Ответить
СообщениеБлагодарю!

Не по теме: я не программист. Подскажите, как правильно записать эти данные в VBA, чтобы макрос работал.

Благодарю!

Автор - gipsy14
Дата добавления - 28.06.2017 в 18:57
parovoznik Дата: Среда, 28.06.2017, 22:30 | Сообщение № 4
Группа: Проверенные
Ранг: Форумчанин
Сообщений: 161
Репутация: 12 ±
Замечаний: 0% ±

Excel 2007
 
Ответить
Сообщениеgipsy14, почитайте это :
http://www.excel-vba.ru/chto-um....o-iskat
http://www.excel-vba.ru/chto-um....-moduli
:D

Автор - parovoznik
Дата добавления - 28.06.2017 в 22:30
gipsy14 Дата: Четверг, 29.06.2017, 17:43 | Сообщение № 5
Группа: Пользователи
Ранг: Прохожий
Сообщений: 8
Репутация: 0 ±
Замечаний: 0% ±

Excel 2013
Нижний работает, но постоянно добавляет нужное количество строк.
Верхний не могу найти в списке макросов и применить его.
Как это сделать?
 
Ответить
СообщениеНижний работает, но постоянно добавляет нужное количество строк.
Верхний не могу найти в списке макросов и применить его.
Как это сделать?

Автор - gipsy14
Дата добавления - 29.06.2017 в 17:43
Pelena Дата: Четверг, 29.06.2017, 19:27 | Сообщение № 6
Группа: Модераторы
Ранг: Местный житель
Сообщений: 11467
Репутация: 2546 ±
Замечаний: 0% ±

Excel 2010, 2016 & Mac Excel
Верхний надо записать в модуль листа. Правой кнопкой мыши по ярлыку листа -- Исходный текст.
Срабатывает при изменении ячейки D8


"Черт возьми, Холмс! Но как??!!"
ЯД 41001765434816
 
Ответить
СообщениеВерхний надо записать в модуль листа. Правой кнопкой мыши по ярлыку листа -- Исходный текст.
Срабатывает при изменении ячейки D8

Автор - Pelena
Дата добавления - 29.06.2017 в 19:27
gipsy14 Дата: Пятница, 30.06.2017, 18:13 | Сообщение № 7
Группа: Пользователи
Ранг: Прохожий
Сообщений: 8
Репутация: 0 ±
Замечаний: 0% ±

Excel 2013
Благодарю!

Немного перефразирую первоначальный вопрос:

При замене значения в Данных количество строк в таблице должно автоматически меняться. То есть: если значение 27 должно быть 29 строк (3 выше желтого, 1 ниже), при вводе значения 30 должно быть 32 строки (3 выше, 1 ниже).
Данный макрос только добавляет строки.

Так же подскажите, пожалуйста, как по такому же алгоритму (ir-2) сделать автоматическое добавление строк в другие таблицы на листе "расчет"?
ir берется из той же ячейки на листе "Данные"

Благодарю!
 
Ответить
СообщениеБлагодарю!

Немного перефразирую первоначальный вопрос:

При замене значения в Данных количество строк в таблице должно автоматически меняться. То есть: если значение 27 должно быть 29 строк (3 выше желтого, 1 ниже), при вводе значения 30 должно быть 32 строки (3 выше, 1 ниже).
Данный макрос только добавляет строки.

Так же подскажите, пожалуйста, как по такому же алгоритму (ir-2) сделать автоматическое добавление строк в другие таблицы на листе "расчет"?
ir берется из той же ячейки на листе "Данные"

Благодарю!

Автор - gipsy14
Дата добавления - 30.06.2017 в 18:13
Мир MS Excel » Вопросы и решения » Вопросы по VBA » Автоматическое добавление заданного количества строк. Макрос (Макросы/Sub)
Страница 1 из 11
Поиск:

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