Домашняя страница Undo Do New Save Карта сайта Обратная связь Поиск по форуму
МИР MS EXCEL - Гость.xls

Вход

Регистрация

Напомнить пароль

 

= Мир MS Excel/Поиск значения и прибавления результате к текущему - Мир MS Excel

Старая форма входа
  • Страница 1 из 1
  • 1
Модератор форума: китин, _Boroda_  
Мир MS Excel » Вопросы и решения » Вопросы по VBA » Поиск значения и прибавления результате к текущему (Макросы/Sub)
Поиск значения и прибавления результате к текущему
Fantast2154 Дата: Понедельник, 10.08.2015, 11:17 | Сообщение № 1
Группа: Пользователи
Ранг: Прохожий
Сообщений: 2
Репутация: 0 ±
Замечаний: 0% ±

Excel 2013
Дорогие EXCELщики, я не силён в макросах, поэтому без вашей помощи пока не обойтись.
Пишу файл раскладки для похода в горы и есть вопрос:

Как со страницы "Походный лист" просуммировать все граммы требуемого продукта и вывести этот результат на странице "Итого" ?

Если кому пригодится файл для вашего туризма, буду только рад.
К сообщению приложен файл: 0188029.xlsm (28.0 Kb)
 
Ответить
СообщениеДорогие EXCELщики, я не силён в макросах, поэтому без вашей помощи пока не обойтись.
Пишу файл раскладки для похода в горы и есть вопрос:

Как со страницы "Походный лист" просуммировать все граммы требуемого продукта и вывести этот результат на странице "Итого" ?

Если кому пригодится файл для вашего туризма, буду только рад.

Автор - Fantast2154
Дата добавления - 10.08.2015 в 11:17
Roman777 Дата: Понедельник, 10.08.2015, 12:40 | Сообщение № 2
Группа: Проверенные
Ранг: Ветеран
Сообщений: 980
Репутация: 127 ±
Замечаний: 0% ±

Excel 2007, Excel 2013
Fantast2154,
Можно наверняка и попроще, но я реализовал так:

Код предполагает, что на листе "Итого" уже перечислены все виды продуктов... И что всё кол-во (в граммах) продукта, стоит в соседнем столбце от наименования (на листе "Походный лист").


Много чего не знаю!!!!

Сообщение отредактировал Roman777 - Понедельник, 10.08.2015, 12:40
 
Ответить
СообщениеFantast2154,
Можно наверняка и попроще, но я реализовал так:

Код предполагает, что на листе "Итого" уже перечислены все виды продуктов... И что всё кол-во (в граммах) продукта, стоит в соседнем столбце от наименования (на листе "Походный лист").

Автор - Roman777
Дата добавления - 10.08.2015 в 12:40
китин Дата: Понедельник, 10.08.2015, 12:56 | Сообщение № 3
Группа: Модераторы
Ранг: Экселист
Сообщений: 7015
Репутация: 1073 ±
Замечаний: 0% ±

Excel 2007;2010;2016
можно здесь посмотреть


Не судите очень строго:я пытаюсь научиться
ЯД 41001877306852
 
Ответить
Сообщениеможно здесь посмотреть

Автор - китин
Дата добавления - 10.08.2015 в 12:56
Fantast2154 Дата: Понедельник, 10.08.2015, 13:46 | Сообщение № 4
Группа: Пользователи
Ранг: Прохожий
Сообщений: 2
Репутация: 0 ±
Замечаний: 0% ±

Excel 2013
Можно наверняка и попроще, но я реализовал так:

Спасибо!
 
Ответить
Сообщение
Можно наверняка и попроще, но я реализовал так:

Спасибо!

Автор - Fantast2154
Дата добавления - 10.08.2015 в 13:46
Udik Дата: Понедельник, 10.08.2015, 17:49 | Сообщение № 5
Группа: Друзья
Ранг: Старожил
Сообщений: 1588
Репутация: 192 ±
Замечаний: 0% ±

Excel 2016 х 64
Вариант без макросов, еще добавил на "Походный лист" пару строк

Код
=СУММПРОИЗВ(--(nA=A4);nB)+СУММПРОИЗВ(--(nH=A4);nI)+СУММПРОИЗВ(--(nO=A4);nP)


[p.s.]nX - именованные диапазоны
К сообщению приложен файл: temp.xlsm (29.3 Kb)


вот вам барабан
яд 41001231307558 wm R419131876897
udik1968@gmail.com
 
Ответить
СообщениеВариант без макросов, еще добавил на "Походный лист" пару строк

Код
=СУММПРОИЗВ(--(nA=A4);nB)+СУММПРОИЗВ(--(nH=A4);nI)+СУММПРОИЗВ(--(nO=A4);nP)


[p.s.]nX - именованные диапазоны

Автор - Udik
Дата добавления - 10.08.2015 в 17:49
rosko Дата: Вторник, 11.08.2015, 11:39 | Сообщение № 6
Группа: Пользователи
Ранг: Участник
Сообщений: 58
Репутация: 0 ±
Замечаний: 0% ±

Excel 2010
Господа, пытался решить пролему Fantast2154
подскажите, пожалуйста, почему выскакивает ошибка "end if without block if"?
[vba]
Код
Sub ff()
Dim i As Integer
Dim b As String
Dim f As Integer
Dim d As Integer
Dim gr As Double
Dim summ As Long
summ = 0
For i = 4 To 25
ThisWorkbook.Sheets("Итого").Cells(i, 1).Value = b
ThisWorkbook.Sheets("Походный лист").Activate
For Each c In [A1:S50]
If c.Value = b Then f = c.Column + 1: summ = summ + Cells(c.Row, f).Value
Exit For
End If
Next
Next i
End Sub
[/vba]
[moder]Вроде не первый день на форуме, а Правила так и не прочитали. Код надо оформлять тегами (кнопка #). Исправила[/moder]


Сообщение отредактировал Pelena - Вторник, 11.08.2015, 11:55
 
Ответить
СообщениеГоспода, пытался решить пролему Fantast2154
подскажите, пожалуйста, почему выскакивает ошибка "end if without block if"?
[vba]
Код
Sub ff()
Dim i As Integer
Dim b As String
Dim f As Integer
Dim d As Integer
Dim gr As Double
Dim summ As Long
summ = 0
For i = 4 To 25
ThisWorkbook.Sheets("Итого").Cells(i, 1).Value = b
ThisWorkbook.Sheets("Походный лист").Activate
For Each c In [A1:S50]
If c.Value = b Then f = c.Column + 1: summ = summ + Cells(c.Row, f).Value
Exit For
End If
Next
Next i
End Sub
[/vba]
[moder]Вроде не первый день на форуме, а Правила так и не прочитали. Код надо оформлять тегами (кнопка #). Исправила[/moder]

Автор - rosko
Дата добавления - 11.08.2015 в 11:39
Manyasha Дата: Вторник, 11.08.2015, 12:14 | Сообщение № 7
Группа: Модераторы
Ранг: Старожил
Сообщений: 2198
Репутация: 898 ±
Замечаний: 0% ±

Excel 2010, 2016
rosko, когда Вы записываете оператор If в одну строку, End If уже не нужен.
Кстати Exit For у Вас записан уже после конструкции If, т.е. он выполнится на первом шаге цикла, в задачу не вникала, но подозреваю, что так не должно быть.
Правильно будет так:
[vba]
Код
If c.Value = b Then   
f = c.Column + 1: summ = summ + Cells(c.Row, f).Value
Exit For
End If
[/vba]
или так:
[vba]
Код
If c.Value = b Then f = c.Column + 1: summ = summ + Cells(c.Row, f).Value: Exit For
[/vba]


ЯД: 410013299366744 WM: R193491431804
 
Ответить
Сообщениеrosko, когда Вы записываете оператор If в одну строку, End If уже не нужен.
Кстати Exit For у Вас записан уже после конструкции If, т.е. он выполнится на первом шаге цикла, в задачу не вникала, но подозреваю, что так не должно быть.
Правильно будет так:
[vba]
Код
If c.Value = b Then   
f = c.Column + 1: summ = summ + Cells(c.Row, f).Value
Exit For
End If
[/vba]
или так:
[vba]
Код
If c.Value = b Then f = c.Column + 1: summ = summ + Cells(c.Row, f).Value: Exit For
[/vba]

Автор - Manyasha
Дата добавления - 11.08.2015 в 12:14
rosko Дата: Вторник, 11.08.2015, 12:16 | Сообщение № 8
Группа: Пользователи
Ранг: Участник
Сообщений: 58
Репутация: 0 ±
Замечаний: 0% ±

Excel 2010
Модератор, прошу прощения!
В правилах форума про теги вроде бы не написано

ReDim Eda(i2_n)
ReDim Kolvo(i2_n)

Скажите, пожалуйста, что выполняют эти строки?
[moder]Как это не написано?
Прочитайте внимательно пункт 3 (особенно то, что синим)![/moder]


Сообщение отредактировал Manyasha - Вторник, 11.08.2015, 12:29
 
Ответить
СообщениеМодератор, прошу прощения!
В правилах форума про теги вроде бы не написано

ReDim Eda(i2_n)
ReDim Kolvo(i2_n)

Скажите, пожалуйста, что выполняют эти строки?
[moder]Как это не написано?
Прочитайте внимательно пункт 3 (особенно то, что синим)![/moder]

Автор - rosko
Дата добавления - 11.08.2015 в 12:16
rosko Дата: Вторник, 11.08.2015, 14:55 | Сообщение № 9
Группа: Пользователи
Ранг: Участник
Сообщений: 58
Репутация: 0 ±
Замечаний: 0% ±

Excel 2010
Manyasha, спасибо за ответ)
касательно правил оформления, еще раз прошу прощения, теперь нашел их в 3 пункте
 
Ответить
СообщениеManyasha, спасибо за ответ)
касательно правил оформления, еще раз прошу прощения, теперь нашел их в 3 пункте

Автор - rosko
Дата добавления - 11.08.2015 в 14:55
Udik Дата: Вторник, 11.08.2015, 17:15 | Сообщение № 10
Группа: Друзья
Ранг: Старожил
Сообщений: 1588
Репутация: 192 ±
Замечаний: 0% ±

Excel 2016 х 64
Скажите, пожалуйста, что выполняют эти строки

Переопределяют динамические массивы, т.е. указывают сколько ячеек создавать.


вот вам барабан
яд 41001231307558 wm R419131876897
udik1968@gmail.com


Сообщение отредактировал Udik - Вторник, 11.08.2015, 17:16
 
Ответить
Сообщение
Скажите, пожалуйста, что выполняют эти строки

Переопределяют динамические массивы, т.е. указывают сколько ячеек создавать.

Автор - Udik
Дата добавления - 11.08.2015 в 17:15
rosko Дата: Среда, 12.08.2015, 09:44 | Сообщение № 11
Группа: Пользователи
Ранг: Участник
Сообщений: 58
Репутация: 0 ±
Замечаний: 0% ±

Excel 2010
Udik, благодарю!
 
Ответить
СообщениеUdik, благодарю!

Автор - rosko
Дата добавления - 12.08.2015 в 09:44
Мир MS Excel » Вопросы и решения » Вопросы по VBA » Поиск значения и прибавления результате к текущему (Макросы/Sub)
  • Страница 1 из 1
  • 1
Поиск:

Яндекс.Метрика Яндекс цитирования
© 2010-2024 · Дизайн: MichaelCH · Хостинг от uCoz · При использовании материалов сайта, ссылка на www.excelworld.ru обязательна!