Ведется подсчет сумму масс материала. Значений очень много и вручную копировать каждое - долго Нужен макрос, суть которого: При изменении значения ячейки D9 (после ввода данных вручную в ячейки D4:D7) копировать это значение в строку I с переходом на следующую ячейку этой строки. Т.е. чтобы при вводе данных в D4:D7 3 раза, появилось 3 значения в I2, I3, I4, и в конечном итоге получилась сумма всех материалов. [moder]См. тут
Добрый день. Суть проблемы:
Ведется подсчет сумму масс материала. Значений очень много и вручную копировать каждое - долго Нужен макрос, суть которого: При изменении значения ячейки D9 (после ввода данных вручную в ячейки D4:D7) копировать это значение в строку I с переходом на следующую ячейку этой строки. Т.е. чтобы при вводе данных в D4:D7 3 раза, появилось 3 значения в I2, I3, I4, и в конечном итоге получилась сумма всех материалов. [moder]См. тутrever27
Private Sub Worksheet_Change(ByVal Target As Range) If Target.Cells.Count > 1 Then Exit Sub If Not Intersect(Range("D4:D7"), Target) Is Nothing Then If Evaluate("CountA(D4:D7)") < 4 Then Exit Sub iRow = Application.CountA(Columns(9)) + 1 If iRow = 11 Then Exit Sub Range("D9").Copy: Range("I" & iRow).PasteSpecial (xlPasteValues) Range("D4:D7").ClearContents Range("D4").Select End If End Sub
[/vba]
Код в модуле листа[vba]
Код
Private Sub Worksheet_Change(ByVal Target As Range) If Target.Cells.Count > 1 Then Exit Sub If Not Intersect(Range("D4:D7"), Target) Is Nothing Then If Evaluate("CountA(D4:D7)") < 4 Then Exit Sub iRow = Application.CountA(Columns(9)) + 1 If iRow = 11 Then Exit Sub Range("D9").Copy: Range("I" & iRow).PasteSpecial (xlPasteValues) Range("D4:D7").ClearContents Range("D4").Select End If End Sub
Вот только не разобрался, как сделать, чтобы значения D4:D7 не исчезали, после копирования значения. Очень часто они общие, и нет нужды заново все вбивать
Так же хотел поинтересоваться. У меня таких таблиц 6 штук на разный материал. Как мне сделать проще: 1)Вставить макрос в каждую таблицу, а потом суммировать их значения. 2)Изменить диапазон макроса на все таблицы?
Спасибо
AlexM Спасибо огромное!
Вот только не разобрался, как сделать, чтобы значения D4:D7 не исчезали, после копирования значения. Очень часто они общие, и нет нужды заново все вбивать
Так же хотел поинтересоваться. У меня таких таблиц 6 штук на разный материал. Как мне сделать проще: 1)Вставить макрос в каждую таблицу, а потом суммировать их значения. 2)Изменить диапазон макроса на все таблицы?
[/vba] закомментируйте ее, поставив в начале одинарный апостроф ' Макрос можно вставить в модуль листа. Выполняется только на листе и в модуль книги - будет выполняться на всех листах. Лучше пример, где и как расположено. Так проще дать совет.
Строка, которая очищает ячейки[vba]
Код
Range("D4:D7").ClearContents
[/vba] закомментируйте ее, поставив в начале одинарный апостроф ' Макрос можно вставить в модуль листа. Выполняется только на листе и в модуль книги - будет выполняться на всех листах. Лучше пример, где и как расположено. Так проще дать совет.AlexM
Номер мобильного модема (без голосовой связи) 9269171249 МегаФон, Московский регион.
При добавлении строки Range("D4:D7").ClearContents в коммент, макрос перестает работать корректно.
Прикрепляю общий файл с расчетом. Там 8 видов материала. Моя задача - посчитать общую массу изделий по проекту. Встречаются материалы по разному (иногда 2, иногда все 8). В каком виде будет конечная масса - не имеет значения. Может быть для каждого материала использовать свой столбец(для первого - I, для второго - J и т.д.) Либо, чтобы данные появлялись по порядку в столбце I не зависимо от материала.
Добрый день, AlexM
При добавлении строки Range("D4:D7").ClearContents в коммент, макрос перестает работать корректно.
Прикрепляю общий файл с расчетом. Там 8 видов материала. Моя задача - посчитать общую массу изделий по проекту. Встречаются материалы по разному (иногда 2, иногда все 8). В каком виде будет конечная масса - не имеет значения. Может быть для каждого материала использовать свой столбец(для первого - I, для второго - J и т.д.) Либо, чтобы данные появлялись по порядку в столбце I не зависимо от материала.rever27