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

Вход

Регистрация

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

 

= Мир MS Excel/Автоматическая вставка строк с расчетом - Мир MS Excel

Старая форма входа
  • Страница 1 из 2
  • 1
  • 2
  • »
Модератор форума: китин, _Boroda_  
Мир MS Excel » Вопросы и решения » Вопросы по VBA » Автоматическая вставка строк с расчетом (Макросы/Sub)
Автоматическая вставка строк с расчетом
plohish Дата: Пятница, 20.02.2015, 13:47 | Сообщение № 1
Группа: Проверенные
Ранг: Форумчанин
Сообщений: 127
Репутация: 1 ±
Замечаний: 60% ±

Excel 2010
Добрый день. Ребят каким должен быть код на VBA если нужно чтоб при записи в ячейку C1 числа меньшего т.е C1<B1 то вставляется пустая строка ниже, ячейка в которой под значением 5000 т.е в ячейке B2 имела уже разность значений B1-С1 и так далее пока число в пустой ячейке не запишется отрицательным. И еще момент если B1=C2 то строка не вставляется. Средствами формул это не реализовать.... %) Заранее благодарю.
К сообщению приложен файл: 5426216.xlsx (17.4 Kb)


Спасибки
 
Ответить
СообщениеДобрый день. Ребят каким должен быть код на VBA если нужно чтоб при записи в ячейку C1 числа меньшего т.е C1<B1 то вставляется пустая строка ниже, ячейка в которой под значением 5000 т.е в ячейке B2 имела уже разность значений B1-С1 и так далее пока число в пустой ячейке не запишется отрицательным. И еще момент если B1=C2 то строка не вставляется. Средствами формул это не реализовать.... %) Заранее благодарю.

Автор - plohish
Дата добавления - 20.02.2015 в 13:47
Manyasha Дата: Пятница, 20.02.2015, 14:27 | Сообщение № 2
Группа: Модераторы
Ранг: Старожил
Сообщений: 2198
Репутация: 898 ±
Замечаний: 0% ±

Excel 2010, 2016
Так подойдет? (не знала что ставить в столбец С при вставке новой строчки - поставила "0", в коде можете поменять на нужное)
К сообщению приложен файл: 112233.xlsm (21.7 Kb)


ЯД: 410013299366744 WM: R193491431804
 
Ответить
СообщениеТак подойдет? (не знала что ставить в столбец С при вставке новой строчки - поставила "0", в коде можете поменять на нужное)

Автор - Manyasha
Дата добавления - 20.02.2015 в 14:27
plohish Дата: Пятница, 20.02.2015, 14:46 | Сообщение № 3
Группа: Проверенные
Ранг: Форумчанин
Сообщений: 127
Репутация: 1 ±
Замечаний: 60% ±

Excel 2010
Да похоже на правду. только в новой строке если число в B2 так же больше то снова вставляется строка, и так для всех строк. Возможно? hands


Спасибки
 
Ответить
СообщениеДа похоже на правду. только в новой строке если число в B2 так же больше то снова вставляется строка, и так для всех строк. Возможно? hands

Автор - plohish
Дата добавления - 20.02.2015 в 14:46
plohish Дата: Пятница, 20.02.2015, 15:17 | Сообщение № 4
Группа: Проверенные
Ранг: Форумчанин
Сообщений: 127
Репутация: 1 ±
Замечаний: 60% ±

Excel 2010
Вставка должна происходить из столбца J
К сообщению приложен файл: 0849978.xlsx (17.3 Kb)


Спасибки
 
Ответить
СообщениеВставка должна происходить из столбца J

Автор - plohish
Дата добавления - 20.02.2015 в 15:17
Manyasha Дата: Пятница, 20.02.2015, 15:29 | Сообщение № 5
Группа: Модераторы
Ранг: Старожил
Сообщений: 2198
Репутация: 898 ±
Замечаний: 0% ±

Excel 2010, 2016
Смотрите, так?

Ошиблась: верните вместо строчки
[vba]
Код
i = Target.Row + 1
[/vba]
i=2
К сообщению приложен файл: 112233_1.xlsm (24.1 Kb)


ЯД: 410013299366744 WM: R193491431804

Сообщение отредактировал Manyasha - Пятница, 20.02.2015, 15:30
 
Ответить
СообщениеСмотрите, так?

Ошиблась: верните вместо строчки
[vba]
Код
i = Target.Row + 1
[/vba]
i=2

Автор - Manyasha
Дата добавления - 20.02.2015 в 15:29
plohish Дата: Пятница, 20.02.2015, 15:37 | Сообщение № 6
Группа: Проверенные
Ранг: Форумчанин
Сообщений: 127
Репутация: 1 ±
Замечаний: 60% ±

Excel 2010
Да уже вырисовывается (Аленький цветок), но куда деваются цифры после вставки строки? И данные которые приходится вводить т.е в каждой ячейке появляющейся строки столбца C можно брать к примеру с другого листа скажем из столбца A:A Спасибо за помощь!!!!!!!!!!!!! hands
К сообщению приложен файл: 2473171.xlsx (17.5 Kb)


Спасибки
 
Ответить
СообщениеДа уже вырисовывается (Аленький цветок), но куда деваются цифры после вставки строки? И данные которые приходится вводить т.е в каждой ячейке появляющейся строки столбца C можно брать к примеру с другого листа скажем из столбца A:A Спасибо за помощь!!!!!!!!!!!!! hands

Автор - plohish
Дата добавления - 20.02.2015 в 15:37
plohish Дата: Пятница, 20.02.2015, 15:39 | Сообщение № 7
Группа: Проверенные
Ранг: Форумчанин
Сообщений: 127
Репутация: 1 ±
Замечаний: 60% ±

Excel 2010
Очень уж нужно, Впрочем как всегда и Всем, Да!?


Спасибки
 
Ответить
СообщениеОчень уж нужно, Впрочем как всегда и Всем, Да!?

Автор - plohish
Дата добавления - 20.02.2015 в 15:39
plohish Дата: Пятница, 20.02.2015, 15:50 | Сообщение № 8
Группа: Проверенные
Ранг: Форумчанин
Сообщений: 127
Репутация: 1 ±
Замечаний: 60% ±

Excel 2010
Нет вычисления заканчиваютя вместе со вставкой строк если значение разницы между числами будет отрицательным это контролирует пользователь или сделать так если оно отриц. то вставляется в пустую строку и все. Т. е это окончательный расчет, затем повторить все для других строк А:А в которых стоит дата


Спасибки
 
Ответить
СообщениеНет вычисления заканчиваютя вместе со вставкой строк если значение разницы между числами будет отрицательным это контролирует пользователь или сделать так если оно отриц. то вставляется в пустую строку и все. Т. е это окончательный расчет, затем повторить все для других строк А:А в которых стоит дата

Автор - plohish
Дата добавления - 20.02.2015 в 15:50
plohish Дата: Пятница, 20.02.2015, 15:52 | Сообщение № 9
Группа: Проверенные
Ранг: Форумчанин
Сообщений: 127
Репутация: 1 ±
Замечаний: 60% ±

Excel 2010
Получается что отриц. значение встает на строку Июня. А в этой строке будет проделыватся тоже самое.


Спасибки
 
Ответить
СообщениеПолучается что отриц. значение встает на строку Июня. А в этой строке будет проделыватся тоже самое.

Автор - plohish
Дата добавления - 20.02.2015 в 15:52
Manyasha Дата: Пятница, 20.02.2015, 16:27 | Сообщение № 10
Группа: Модераторы
Ранг: Старожил
Сообщений: 2198
Репутация: 898 ±
Замечаний: 0% ±

Excel 2010, 2016
Может тогда лучше не отслеживать изменения, а запускать макрос для пересчета? (кнопка Insert)
К сообщению приложен файл: 112233_2.xlsm (27.3 Kb)


ЯД: 410013299366744 WM: R193491431804
 
Ответить
СообщениеМожет тогда лучше не отслеживать изменения, а запускать макрос для пересчета? (кнопка Insert)

Автор - Manyasha
Дата добавления - 20.02.2015 в 16:27
plohish Дата: Пятница, 20.02.2015, 16:39 | Сообщение № 11
Группа: Проверенные
Ранг: Форумчанин
Сообщений: 127
Репутация: 1 ±
Замечаний: 60% ±

Excel 2010
нет вот как должно быть!
К сообщению приложен файл: 5482820.xlsm (27.4 Kb)


Спасибки
 
Ответить
Сообщениенет вот как должно быть!

Автор - plohish
Дата добавления - 20.02.2015 в 16:39
Manyasha Дата: Пятница, 20.02.2015, 17:13 | Сообщение № 12
Группа: Модераторы
Ранг: Старожил
Сообщений: 2198
Репутация: 898 ±
Замечаний: 0% ±

Excel 2010, 2016
См. файл. При ручной вставке значений в столбец С все работает. Если нужно, чтобы значения вставлялись автоматически, то напишите от куда брать данные для "первых" значений столбца В (напротив строчек июнь, июль и тд) и как должны быть расположены значения для столбца С (в один столбик или для каждого месяца отдельный столбик)
К сообщению приложен файл: 112233_3.xlsm (27.7 Kb)


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

Автор - Manyasha
Дата добавления - 20.02.2015 в 17:13
plohish Дата: Пятница, 20.02.2015, 18:09 | Сообщение № 13
Группа: Проверенные
Ранг: Форумчанин
Сообщений: 127
Репутация: 1 ±
Замечаний: 60% ±

Excel 2010
вот теперь все так как надо, единственное если суммы в столбцах B b c одинаковые то строка не вставляется, но и так вроде хорошо. Буду тестировать. СПАСИБО ОГРОМНОЕ. hands :D


Спасибки
 
Ответить
Сообщениевот теперь все так как надо, единственное если суммы в столбцах B b c одинаковые то строка не вставляется, но и так вроде хорошо. Буду тестировать. СПАСИБО ОГРОМНОЕ. hands :D

Автор - plohish
Дата добавления - 20.02.2015 в 18:09
Manyasha Дата: Пятница, 20.02.2015, 19:05 | Сообщение № 14
Группа: Модераторы
Ранг: Старожил
Сообщений: 2198
Репутация: 898 ±
Замечаний: 0% ±

Excel 2010, 2016
Забыла комментарии убрать в
[vba]
Код
'If Cells(Target.Row, 3).Value < Cells(Target.Row, 2).Value Then
[/vba]Верните это условие, тогда строка не будет вставляться, если С>=B.

Или так (c выводом первым отрицательным числом):
[vba]
Код
'If Cells(Target.Row, 3).Value <> Cells(Target.Row, 2).Value Then
[/vba]
[p.s.]И про [vba]
Код
'End If
[/vba]не забудьте!


ЯД: 410013299366744 WM: R193491431804

Сообщение отредактировал Manyasha - Пятница, 20.02.2015, 19:05
 
Ответить
СообщениеЗабыла комментарии убрать в
[vba]
Код
'If Cells(Target.Row, 3).Value < Cells(Target.Row, 2).Value Then
[/vba]Верните это условие, тогда строка не будет вставляться, если С>=B.

Или так (c выводом первым отрицательным числом):
[vba]
Код
'If Cells(Target.Row, 3).Value <> Cells(Target.Row, 2).Value Then
[/vba]
[p.s.]И про [vba]
Код
'End If
[/vba]не забудьте!

Автор - Manyasha
Дата добавления - 20.02.2015 в 19:05
plohish Дата: Суббота, 21.02.2015, 09:28 | Сообщение № 15
Группа: Проверенные
Ранг: Форумчанин
Сообщений: 127
Репутация: 1 ±
Замечаний: 60% ±

Excel 2010
Что нужно изменить в коде чтоб адаптировать его к столбцам G и H соответственно B и C, запись начинается с 5 строки?


Спасибки
 
Ответить
СообщениеЧто нужно изменить в коде чтоб адаптировать его к столбцам G и H соответственно B и C, запись начинается с 5 строки?

Автор - plohish
Дата добавления - 21.02.2015 в 09:28
Manyasha Дата: Воскресенье, 22.02.2015, 11:10 | Сообщение № 16
Группа: Модераторы
Ранг: Старожил
Сообщений: 2198
Репутация: 898 ±
Замечаний: 0% ±

Excel 2010, 2016
plohish, здравствуйте. Извините за долгий ответ.
Смотрите в модуле листа на строчку
[vba]
Код
If Target.Column = 3 Then
[/vba]3 - номер колонки, в которой отслеживаем изменения, соответственно, если, вместо колонки С будет Н, то 3 нужно изменить на 8.
Для номера строки (.Row) аналогично условие, у Вас будет что-то типа:
[vba]
Код
If Target.Column = 3 And Target.Row > 4 then
[/vba]


ЯД: 410013299366744 WM: R193491431804

Сообщение отредактировал Manyasha - Воскресенье, 22.02.2015, 11:13
 
Ответить
Сообщениеplohish, здравствуйте. Извините за долгий ответ.
Смотрите в модуле листа на строчку
[vba]
Код
If Target.Column = 3 Then
[/vba]3 - номер колонки, в которой отслеживаем изменения, соответственно, если, вместо колонки С будет Н, то 3 нужно изменить на 8.
Для номера строки (.Row) аналогично условие, у Вас будет что-то типа:
[vba]
Код
If Target.Column = 3 And Target.Row > 4 then
[/vba]

Автор - Manyasha
Дата добавления - 22.02.2015 в 11:10
plohish Дата: Воскресенье, 22.02.2015, 12:04 | Сообщение № 17
Группа: Проверенные
Ранг: Форумчанин
Сообщений: 127
Репутация: 1 ±
Замечаний: 60% ±

Excel 2010
Большое Спасибо. не дождавшись ответа, это к лучшему !!! Я разобрался сам. ОГРОМНОЕ СПАСИБО за все и за ответ в том числе с Уважением PLOHISH


Спасибки
 
Ответить
СообщениеБольшое Спасибо. не дождавшись ответа, это к лучшему !!! Я разобрался сам. ОГРОМНОЕ СПАСИБО за все и за ответ в том числе с Уважением PLOHISH

Автор - plohish
Дата добавления - 22.02.2015 в 12:04
plohish Дата: Воскресенье, 22.02.2015, 12:46 | Сообщение № 18
Группа: Проверенные
Ранг: Форумчанин
Сообщений: 127
Репутация: 1 ±
Замечаний: 60% ±

Excel 2010
If Target.Column = 3 Then
If Target.Row > 4 Then
Вот так должно быть и End If еще раз


Спасибки
 
Ответить
СообщениеIf Target.Column = 3 Then
If Target.Row > 4 Then
Вот так должно быть и End If еще раз

Автор - plohish
Дата добавления - 22.02.2015 в 12:46
Manyasha Дата: Воскресенье, 22.02.2015, 13:14 | Сообщение № 19
Группа: Модераторы
Ранг: Старожил
Сообщений: 2198
Репутация: 898 ±
Замечаний: 0% ±

Excel 2010, 2016
Да, или можно одной строчкой, как я выше написала
[vba]
Код
If Target.Column = 3 And Target.Row > 4 then
...
End If
[/vba]


ЯД: 410013299366744 WM: R193491431804
 
Ответить
СообщениеДа, или можно одной строчкой, как я выше написала
[vba]
Код
If Target.Column = 3 And Target.Row > 4 then
...
End If
[/vba]

Автор - Manyasha
Дата добавления - 22.02.2015 в 13:14
plohish Дата: Воскресенье, 22.02.2015, 16:36 | Сообщение № 20
Группа: Проверенные
Ранг: Форумчанин
Сообщений: 127
Репутация: 1 ±
Замечаний: 60% ±

Excel 2010
СПАСИБО


Спасибки
 
Ответить
СообщениеСПАСИБО

Автор - plohish
Дата добавления - 22.02.2015 в 16:36
Мир MS Excel » Вопросы и решения » Вопросы по VBA » Автоматическая вставка строк с расчетом (Макросы/Sub)
  • Страница 1 из 2
  • 1
  • 2
  • »
Поиск:

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