Народ помогите как в таблице Эксель автоматически вставлять строки через процедуру, которая будет привязана к кнопке на листе
VBAсоветы начинающим
Автор KOHAH-BAPBAP, 24.10.2007, 11:34
#3
Отправлено 31.10.2007, 11:18:37
Спасибо, написал макрос привязал к кнопке.
Вопрос: Есть 2 столбца: в 1 данные по деньгам, во 2 дата оплаты. Как сделать так, чтобы при нажатии кнопки формировался сводный отчет по датам, т.е. сколько всего надо оплатить в конкретную дату?
дата сумма
12.10.07 10
13.10.07 15
14.10.07 35
15.10.07 5
12.10.07 6
13.10.07 3
Итого: 74
Результат:
12.10.07 16
13.10.07 18
и т.д.
Вопрос: Есть 2 столбца: в 1 данные по деньгам, во 2 дата оплаты. Как сделать так, чтобы при нажатии кнопки формировался сводный отчет по датам, т.е. сколько всего надо оплатить в конкретную дату?
дата сумма
12.10.07 10
13.10.07 15
14.10.07 35
15.10.07 5
12.10.07 6
13.10.07 3
Итого: 74
Результат:
12.10.07 16
13.10.07 18
и т.д.
#4
Отправлено 31.10.2007, 15:51:30
Sub summ_com() Application.ScreenUpdating = False For Each c In [A2:A10000] If c.Value <> "" Then For Each s In [A2:A10000] If s.Value <> "" Then If c.Value = s.Value And c.Row <> s.Row Then Cells(c.Row, 3).Value = Cells(c.Row, 3).Value + Cells(s.Row, 3).Value ' сумирование Rows(s.Row).Delete End If Else Exit For End If Next s Else Exit For End If Next c Application.ScreenUpdating = True End Sub
#6
Отправлено 01.11.2007, 09:27:36
Извини, не совсем разобрался:
как я понял создаются 2 переменные s и c и в диапазоне сравниваются друг с другом можно потом поподробнее. Спасибо!
...при сравнении также проверяется не равны ли номера строк (.row) со значениями удовлетворяющие критериям (.Value) между первым и вторым циклом:
If c.Value = s.Value And c.Row <> s.Row Then
если не равны, то значение ячейки первого цикла (Cells(c.Row, 3).Value) суммируется со значением ячейки второго цикла Cells(s.Row, 3).Value и возвращается в в ячейку первого цикла (Cells(c.Row, 3).Value)
Cells(c.Row, 3).Value = Cells(c.Row, 3).Value + Cells(s.Row, 3).Value
после чего удаляется строка по второму циклу:
Rows(s.Row).Delete
End If
...и цикл продолжается
Количество пользователей, читающих эту тему: 1
пользователей: 0, неизвестных прохожих: 1, скрытых пользователей: 0