Перейти к содержимому

Фотография

VBAсоветы начинающим


  • Авторизуйтесь для ответа в теме
Сообщений в теме: 5

#1
KOHAH-BAPBAP

KOHAH-BAPBAP
  • Свой человек
  • 554 сообщений
Народ помогите как в таблице Эксель автоматически вставлять строки через процедуру, которая будет привязана к кнопке на листе
  • 0

#2
Vaio

Vaio
  • В доску свой
  • 3 177 сообщений
Просто вставить пустую строку?
Выделяете строку, потом выполняете
Selection.Insert Shift:=xlDown
  • 0

#3
KOHAH-BAPBAP

KOHAH-BAPBAP
  • Свой человек
  • 554 сообщений
Спасибо, написал макрос привязал к кнопке.

Вопрос: Есть 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

и т.д.
  • 0

#4
ZeD

ZeD
  • Свой человек
  • 572 сообщений
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

  • 0

#5
KOHAH-BAPBAP

KOHAH-BAPBAP
  • Свой человек
  • 554 сообщений
Извини, не совсем разобрался:
как я понял создаются 2 переменные s и c и в диапазоне сравниваются друг с другом можно потом поподробнее. Спасибо!
  • 0

#6
ZeD

ZeD
  • Свой человек
  • 572 сообщений

Извини, не совсем разобрался:
как я понял создаются 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
...и цикл продолжается
  • 0


Количество пользователей, читающих эту тему: 1

пользователей: 0, неизвестных прохожих: 1, скрытых пользователей: 0

Размещение рекламы на сайте     Предложения о сотрудничестве     Служба поддержки пользователей

© 2011-2022 vse.kz. При любом использовании материалов Форума ссылка на vse.kz обязательна.