Новости:

Новая редакция правил форума: 2.4. Если вопрос или ответ содержится во вложенном файле, все-равно кратко описывайте в сообщении вопрос или суть решения. Это необходимо, чтобы тему можно было найти через поиск.

Главное меню

Цикл VBA, Excel

Автор Гоанец, 21.05.2012, 17:28

« назад - далее »

Гоанец

здравствуйте :)

столкнулся с задачкой- нужно используя VBA выташить данные из массива, если присутствует слово "дебет", если слова нет, проставить 0.

нужно обязательно сделать циклом в вба. буду очень благодарен за помощь :)

Poltava

#1
Посмотрите здесь аналогичная задача Перенос ячеек на новый лист по содержанию Ну уж если совсем никак ниже переделал под ваш случай. Надеюсь Ув. Wasilic не обидеться что я переделал а не он :)
Не пытайтесь спорить с дебилом. Иначе вы опуститесь до его уровня. Где он задавит вас своим опытом.

Wasilic

Цитата: Poltava от 21.05.2012, 18:05
Надеюсь Ув. Wasilic не обидеться что я переделал а не он :)
;D Ради бога! Просто дальше сам будешь расхлебываться!
Переделал то не до конца, кнопку не вывел!
Может и я на что сгожусь ... Если сгодился, можете меня по+благодарить+.

Гоанец

#3
ОГРОМНОЕ ВАМ СПАСИБО! Можно и без кнопки, с этим уж как-нибудь сам справлюсь :)

Вдогонку хотел еще один вопрос задать- как с помощью цикла просуммировать значения в колонке B, для тех строчек в колонке А, которые равны, скажем, ячейке с1?

Эксель знаю, с вба уже похуже, а вот с циклами в вба, совсем пфф)

Wasilic

Цитата: Гоанец от 21.05.2012, 18:22
Вдогонку хотел еще один вопрос задать- как с помощью цикла просуммировать значения в колонке B, для тех строчек в колонке А, которые равны, скажем, ячейке с1?
Вот что бы не гулять в догонялки, задачу надо изначально описывать до конца, тем более не зная ВБА.

Цитата: Гоанец от 21.05.2012, 18:22
и еще вопрос- как начинать не с первой ячейки в колонке, а с заданной?
PS = Range("A" & Rows.Count).End(xlUp).Row
попробовал Range(cells(4,1) & Rows.Count).End(xlUp).Row, не получилось
PS = Range("A" & Rows.Count).End(xlUp).Row - определяет последнюю заполненную строку в колонке А.
А цикл: For I=1 to PS   - начнется с единицы и будет повторяться PS раз. И каждый раз переменная I будет увеличиваться на 1-цу, пока не достигнет значения PS.
В переборе строк, используем переменную I, а колонку обозначаем конкретную - 1 и получаем  Cells(I, 1), это значит что перебор строк начнется с 1-й строки. Если в цикле For I=1 to PS поставить I=5, то и перебор строк начнется с 5-й строки. Понятно?  :)
Успехов!
Может и я на что сгожусь ... Если сгодился, можете меня по+благодарить+.

Гоанец

Wasilic, огромное человеческое спасибо! Хорошего вечера -))

Гоанец

#6
нет, немножко не то- как быть, если я хочу суммировать не по отобранным значениям (=0), а по произвольному текстовому значению?
вот есть у нас две колонки, в первой текст (покупатель1, 2, 3) а во второй суммы. нам нужно, скажем, получить сумму по покупатель1 и вывести ее куда-нибудь?

вот что-то такое у меня получается, но нэ работает(

Sub fdf()
  PS = Range("A" & Rows.Count).End(xlUp).Row
  X = 0
  For I = 1 To PS
    If Cells(I, 1) Like Range("c5") Then
       X = X + Cells(I, 2)
    End If
  Next I
  Cells(1, 3) = X
End Sub

Гоанец

Спасибо, сам дошел :)

ребята, огромное спасибо за такой ресурс, где можно задать вопрос и очень быстро получить компетентный ответ!