Range("B3").Sort Key1:=Range("B4"), Order1:=xlAscending, Header:=xlYes
With Worksheets("CustOrders").Range("B4")
OrderSum = 0
Do While .Offset(i, 0) <> ""
If .Offset(i, 0) = "" Then
Exit Do
Else
Do While .Offset(i, 0) = .Offset(i + 1, 0)
If .Offset(i, 0) = .Offset(i + 1, 0) Then
OrderSum = OrderSum + .Offset(i, 1).Value
i = i + 1
If OrderSum > 2000 Then
Worksheets("CustOrders2").Range("A" & (4 + j)).Value = .Offset(i, 0)
Worksheets("CustOrders2").Range("B" & (4 + j)).Value = OrderSum
OrderSum = 0
j = j + 1
End If
Else
OrderSum = 0
i = i + 1
End If
Loop
i = i + 1
End If
Loop
End With
Вложенные циклы
код1 - 150 у.е.
код1 - 150 у.е.
код2 - 1500 у.е.
код2 - 2750 у.е.
код2 - 1000 у.е.
код3 - 1500 у.е.
код3 - 2750 у.е.
код4 - 1000 у.е.
тоисть клиенты делают по несколько покупок
Нужно на другой лист вывести всех клиентов с суммой покупки больше 2000
Написал код, немного коряво и в нем ошибка, помогите ее найти и если не трудно написать свой более понятный вариант. Спасибо
Код:
ttat01, Рекомендую использовать расширенный фильтр, используя в качестве критерия отбора - формулу. Это позволит вообще обойтись без применения циклов, а пример подобной фильтрации можно сказать
P.S. Даже не представляю, что бы я делал без помощи экспертов.
Цитата: ttat01
P.S. Даже не представляю, что бы я делал без помощи экспертов.
Читал бы книги, дерзал бы сам. "Эксперты" ведь тоже учились, а еще тогда форумов не было, только не всем доступное FIDO. Но были тогда (а сегодня - еще больше) много библиотек, книг.. А еще - было желание учить все самому. Без него - всегда придется бегать на форумы.
Уточнение : c помощью расширенного фильтра
[quote=ttat01]Может кому - то не будет сложно выполнить то же самое, но с помощью вложенных цыклов. Вы спросите зачем? Все ради обучения.[/quote]
Без обид, но решение задач подобным способом не лучший вид обучения. А если использование цикла действительно необходимо, то вполне достаточно использовать один цикл, например For Each Next.